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:
Buka halaman Findings di konsol Google Cloud:
Jika perlu, pilih organisasi atau project Google Cloud Anda.
Halaman Findings dimuat dengan kueri default yang ditampilkan di kolom Query preview.
Di sebelah kanan bagian Query preview, klik edit Edit Query atau ikon panel luaskan expand_more untuk membuka panel Query editor.
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.
- Pilih atribut temuan atau ketik namanya di kotak Telusuri atribut temuan. Daftar sub-atribut yang tersedia akan ditampilkan.
- 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.
- 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.
- Pilih Apply.
Dialog akan ditutup dan kueri Anda akan diperbarui.
- 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 ditentukancontainsOnly()
, 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 dariindicator
, sehingga keduanya ditetapkan di posisiARRAY_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 arrayconnections
, yang merupakan atribut jenis array yang berisi subkolom. Nilai yang dikueri berada di subkolomdestination_ip
, yang bukan kolom jenis array. Nilai yang akan dikueri ditentukan dengan nama subkolom,destination_ip
, bukan parameterelem
.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, fungsicontains
berikut mengevaluasi setiap elemen arrayip_addresses
, yang merupakan subkolom dari atributindicator
. Atributindicator
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 arrayiam_bindings.member
daniam_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:
- Temuan
- Resource
- Akses (
access
) - Skor eksposur serangan
- Cadangan Pemulihan dari Bencana (Disaster Recovery)
- Kepatuhan (
compliances[]
) - Koneksi (
connections[]
) - Kontak
- Container
- Database
- Pemindahan yang tidak sah (
exfiltration
) - File
- Binding IAM (
iamBindings[]
) - Indikator
- Rootkit kernel
- Kubernetes
- MITRE ATT&CK (
mitreAttack
) - Proses (
processes[]
) - Postur keamanan
- Sensitive Data Protection
- Kerentanan