Temuan kueri di konsol Google Cloud

Halaman ini menjelaskan cara membuat dan mengedit kueri temuan Security Command Center menggunakan panel Query editor pada halaman Findings di Konsol Google Cloud.

Gunakan kueri untuk mengambil temuan tertentu dan memfilter temuan yang ditampilkan di panel Hasil kueri temuan.

Edit kueri temuan

Di panel Query editor, Anda dapat menambahkan dan mengedit filter ke kueri untuk memilih temuan berdasarkan nilai properti atau atributnya. Anda dapat memfilter hal-hal seperti keberadaan nilai, tidak adanya nilai, atau kecocokan string sebagian.

Saat Anda mengedit kueri, editor akan menandai setiap error dalam kueri agar Anda dapat memperbaiki error tersebut sebelum mengirimkan kueri.

Untuk mengedit kueri menggunakan panel Query editor, ikuti langkah-langkah ini:

  1. Buka halaman Findings di konsol Google Cloud:

    Buka Temuan

  2. Jika perlu, pilih organisasi atau project Google Cloud Anda.

    Pemilih project

    Halaman Findings dimuat dengan kueri default yang ditampilkan di kolom Query preview.

  3. Di sebelah kanan bagian Query preview, klik Edit Query atau ikon panel luaskan untuk membuka panel Query editor.

  4. Pilih Add filter untuk membuka, menelusuri, dan menambahkan filter atribut yang telah ditentukan ke kueri.

    Dialog Select filter memungkinkan Anda memilih atribut dan nilai temuan yang didukung. Dialog filter kueri

    1. Pilih atribut temuan atau ketik namanya di kotak Telusuri atribut temuan. Daftar sub-atribut yang tersedia akan ditampilkan.
    2. Pilih sub-atribut. Kolom pilihan untuk opsi evaluasi Anda ditampilkan di atas daftar nilai sub-atribut yang ditemukan dalam temuan di panel Hasil kueri temuan.
    3. Pilih opsi evaluasi untuk nilai sub-atribut yang dipilih. Untuk mengetahui informasi selengkapnya tentang opsi evaluasi serta operator dan fungsi yang digunakannya, lihat Operator kueri di menu Tambahkan filter.
    4. Pilih Apply.

      Dialog akan ditutup dan kueri Anda akan diperbarui.

    5. Ulangi sampai kueri temuan berisi semua atribut yang Anda inginkan.

Atau, Anda dapat membuat kueri temuan secara manual dengan cara yang sama seperti membuat filter temuan menggunakan Security Command Center API. Saat mengetik kueri, menu pelengkapan otomatis akan muncul, tempat Anda dapat memilih nama dan fungsi filter.

Saat Anda menggunakan builder kueri di halaman Findings, bagian Quick filters dinonaktifkan untuk menghindari konflik di antara keduanya.

Operator kueri

Pernyataan kueri untuk temuan Security Command Center mendukung operator yang didukung oleh sebagian besar Google Cloud API.

Daftar berikut menunjukkan penggunaan berbagai operator:

  • state="ACTIVE" AND NOT mute="MUTED"
  • create_time>"2023-08-15T19:05:32.428Z"
  • resource.parent_name:"prod"
  • severity="CRITICAL" OR severity="HIGH"

Daftar berikut menunjukkan semua operator dan fungsi yang didukung dalam pernyataan kueri untuk temuan:

  • Untuk string:
    • = untuk kesetaraan penuh
    • : untuk pencocokan string sebagian
  • Untuk angka:
    • <, >, <=, >= untuk pertidaksamaan
    • =, != untuk kesetaraan
  • Untuk boolean:
    • = untuk kesetaraan
  • Untuk hubungan logis:
    • AND
    • OR
    • NOT atau -
  • Untuk mengelompokkan ekspresi:
    • (, ) (tanda kurung)
  • Untuk array:
    • contains(), fungsi untuk membuat kueri temuan dengan kolom array yang berisi setidaknya satu elemen yang cocok dengan filter yang ditentukan
    • containsOnly(), fungsi untuk membuat kueri temuan dengan kolom array yang hanya berisi elemen yang cocok dengan filter yang ditentukan
  • Untuk alamat IP:
    • inIpRange(), fungsi untuk melakukan kueri alamat IP dalam rentang CIDR yang ditentukan

Operator kueri di menu Tambahkan filter

Dalam menu Add filters pada Query editor di Konsol Google Cloud, operator dan fungsi kueri diwakili oleh kata atau frasa, seperti berikut:

  • Sama dengan: mencocokkan temuan dengan nilai filter yang sama persis ini.
  • Tidak sama dengan: cocok dengan temuan yang tidak memiliki nilai filter yang sama persis.
  • Setelah: mencocokkan temuan dengan waktu pembuatan atau pembaruan setelah waktu yang ditentukan.
  • Sebelum: mencocokkan temuan dengan waktu pembuatan atau pembaruan sebelum waktu yang ditentukan.
  • Memiliki: mencocokkan temuan dengan nilai filter yang berisi teks yang Anda masukkan di kolom Kata kunci.
  • Tidak memiliki: mencocokkan temuan dengan nilai filter yang tidak berisi teks yang Anda masukkan di kolom Kata kunci.
  • Untuk menemukan atribut yang berisi array:
    • Berisi apa pun: cocok dengan temuan yang memiliki nilai array yang berisi teks apa pun yang Anda masukkan di kolom Keyword.
    • Berisi semua: cocok dengan temuan yang memiliki nilai array yang berisi semua teks yang Anda masukkan di kolom Keyword.
    • Tidak berisi apa pun: cocok dengan temuan yang tidak memiliki nilai array yang berisi teks yang Anda masukkan di kolom Kata kunci.
    • Berisi saja: mencocokkan temuan yang memiliki atribut array yang hanya berisi nilai yang Anda masukkan di kolom Keyword, dan tanpa nilai lainnya.
  • Untuk alamat IP:
    • Semua yang ada dalam rentang IP: cocok dengan temuan yang memiliki alamat IP dalam rentang CIDR yang ditentukan.
    • Tidak memiliki rentang IP dalam rentang IP: cocok dengan temuan yang memiliki alamat IP yang tidak berada dalam rentang CIDR yang ditentukan.

Fungsi kueri

Fungsi kueri memberikan evaluasi nilai atribut yang lebih kompleks dibandingkan operator kueri umum.

Fungsi contains

Gunakan fungsi contains untuk mengevaluasi atribut atau atribut subkolom yang dapat muncul beberapa kali dalam temuan yang sama.

Secara internal, atribut atau subkolom atribut ini disimpan dalam elemen struktur data array, sehingga disebut sebagai atribut jenis array.

Misalnya, temuan tertentu dapat mereferensikan beberapa koneksi jaringan, sehingga atribut connections adalah atribut jenis array. Demikian pula, temuan ancaman tertentu dapat merujuk beberapa alamat IP sebagai indikator penyusupan, sehingga subkolom ip_addresses dari atribut indicator adalah atribut jenis array.

Fungsi contains menggunakan sintaksis berikut:

contains(ARRAY_ATTRIBUTE_NAME, SUBFILTER)

Ganti kode berikut:

  • ARRAY_ATTRIBUTE_NAME: nama atribut jenis array yang disimpan dalam array. Jika atribut jenis array adalah subkolom dari atribut lain, tentukan nama atribut dan nama subkolom yang dipisahkan oleh titik.

    Dalam contoh berikut, atribut jenis array, ip_addresses, adalah subkolom dari indicator, sehingga keduanya ditetapkan di posisi ARRAY_ATTRIBUTE_NAME:

    contains(indicator.ip_addresses, elem="192.0.2.80")
  • SUBFILTER: ekspresi yang menentukan cara mengevaluasi setiap instance atribut jenis array. Operator kueri dan pernyataan evaluasi Security Command Center Standar didukung.

    Jika nilai yang akan diperiksa berada di subkolom dari atribut jenis array, tentukan nama subkolom di sebelah kiri ekspresi. Fungsi contains berikut mengevaluasi setiap elemen array connections, yang merupakan atribut jenis array yang berisi subkolom. Nilai yang dikueri berada di subkolom destination_ip, yang bukan kolom jenis array. Nilai yang akan dikueri ditentukan dengan nama subkolom, destination_ip, bukan parameter elem.

    contains(connections, destination_ip="192.0.2.80")

    Jika subkolom adalah atribut jenis array, tentukan atribut jenis array di sebelah kiri ekspresi dengan induknya dan gunakan parameter elem di sebelah kanan ekspresi untuk menentukan nilai yang akan ditelusuri. Misalnya, fungsi contains berikut mengevaluasi setiap elemen array ip_addresses, yang merupakan subkolom dari atribut indicator. Atribut indicator bukan kolom jenis array.

    contains(indicator.ip_addresses, elem="192.0.2.80")

Fungsi contains di menu Tambahkan filter

Di menu Add filter, bergantung pada atribut temuan yang Anda evaluasi, fungsi contains dicantumkan secara eksplisit atau otomatis disertakan saat Anda memilih opsi filter lain yang memerlukannya.

Misalnya, untuk sub-kolom IP addresses dari atribut Indicator, Anda dapat memilih opsi filter berikut:

  • Berisi apa pun
  • Berisi semua
  • Tidak berisi satu pun

Sebaliknya, jika Anda memfilter sub-kolom Destination IP dari atribut Connections dan memilih Any dalam IP range, fungsi contains akan ditambahkan ke pernyataan kueri secara otomatis, seperti yang ditunjukkan dalam contoh berikut:

contains(connections, inIpRange(destination_ip, "2001:db8::/32"))

Untuk informasi selengkapnya tentang fungsi contains, lihat Memfilter kolom jenis array.

Fungsi containsOnly

Fungsi containsOnly memungkinkan Anda membuat kueri temuan untuk atribut jenis array atau subkolom yang hanya berisi nilai yang ditentukan dalam subfilter, dan bukan yang lainnya.

Fungsi containsOnly menggunakan sintaksis berikut:

containsOnly(ARRAY_ATTRIBUTE_NAME,SUBFILTER)

Ganti kode berikut:

  • ARRAY_ATTRIBUTE_NAME: nama atribut jenis array. Jika atribut jenis array adalah subkolom dari atribut lain, tentukan nama atribut dan nama subkolom yang dipisahkan oleh titik. Saat Anda menjalankan kueri menggunakan Konsol Google Cloud, fungsi ini hanya mendukung atribut array iam_bindings.member dan iam_bindings.role.

  • SUBFILTER: ekspresi yang menentukan cara mengevaluasi setiap elemen atribut jenis array. Operator kueri dan pernyataan evaluasi Security Command Center Standar didukung.

Di menu Add filter, opsi filter berikut menggunakan fungsi containsOnly:

  • Binding IAM > Anggota: hanya memilih temuan yang menyertakan pengguna, akun layanan, atau grup yang ditentukan.

  • Binding IAM > Peran: hanya memilih temuan yang menyertakan peran yang ditentukan.

Contoh berikut menunjukkan kueri temuan di Konsol Google Cloud yang menampilkan temuan aktif dan dibunyikan untuk pengguna di grup example-group:

state="ACTIVE"
  AND NOT mute="MUTED"
  AND containsOnly(iam_bindings,member="group:example-group@example.com")

Fungsi inIpRange

Fungsi inIpRange memeriksa apakah alamat IP pada atribut temuan yang dipilih berada dalam rentang alamat IP yang Anda tentukan menggunakan notasi CIDR (rentang CIDR). Kode berikut menunjukkan sintaksis fungsi inIpRange:

inIpRange(ATTRIBUTE_WITH_IP, "CIDR_RANGE")

Di menu Add filter, opsi filter berikut menggunakan fungsi inIpRange:

  • Semua yang ada dalam rentang IP: hanya memilih temuan yang berisi alamat IP dalam rentang yang ditentukan.
  • Tidak memiliki alamat IP dalam rentang IP: hanya memilih temuan yang tidak berisi alamat IP dalam rentang yang ditentukan.

Contoh berikut menunjukkan kueri temuan di Konsol Google Cloud yang menampilkan temuan aktif dan dibunyikan, yang mana sub-kolom caller_ip dari objek access berisi alamat IPv6 dalam rentang CIDR 2001:db8::/32:

state="ACTIVE"
AND NOT mute="MUTED"
AND inIpRange(access.caller_ip, "2001:db8::/32")

Contoh berikut menunjukkan kueri temuan yang menampilkan temuan aktif dan dibunyikan yang mana sub-kolom caller_ip dari objek access tidak berisi alamat IP dalam rentang CIDR IPv4 192.0.2.0/24:

state="ACTIVE"
AND NOT mute="MUTED"
AND NOT inIpRange(access.caller_ip, "192.0.2.0/24")

Jika alamat IP berada dalam atribut yang dapat muncul beberapa kali dalam temuan, gunakan fungsi contains dengan fungsi inIpRange untuk memeriksa setiap instance atribut untuk alamat IP. Contoh:

contains(connections, inIpRange(source_ip, "192.0.2.0/24"))

Untuk mengetahui informasi selengkapnya tentang fungsi contains(), lihat Fungsi contains.

Menemukan atribut untuk kueri

Security Command Center memilih temuan yang akan ditampilkan dengan mengevaluasi atribut setiap temuan yang disimpan terhadap filter atribut yang Anda tentukan dalam kueri.

Anda dapat membuat kueri untuk sebagian besar atribut pencarian. Beberapa atribut bersifat umum untuk semua temuan. Atribut lain mungkin khusus untuk masalah keamanan, kategori temuan, atau layanan deteksi tertentu.

Di menu Add filter pada panel Query editor, opsi yang dapat Anda terapkan ke filter atribut berbeda-beda, bergantung pada jenis atribut yang Anda pilih dan apakah atribut tersebut memiliki sub-kolom atau array nilai.

Di menu Add filter, klik salah satu atribut level teratas berikut untuk menampilkan sub-atribut dan nilai yang dapat Anda gunakan dalam kueri temuan: