Halaman ini menjelaskan cara membuat dan mengedit kueri temuan Security Command Center menggunakan panel Query editor di halaman Findings.
Gunakan kueri untuk mengambil temuan tertentu dan memfilter temuan yang ditampilkan di hasil kueri temuan.
Mengedit kueri temuan
Di panel Query editor, Anda dapat menambahkan filter ke kueri untuk memilih temuan berdasarkan nilai properti atau atributnya. Anda dapat memfilter hal-hal seperti keberadaan nilai, ketiadaan nilai, atau pencocokan string parsial.
-
Di Google Cloud konsol, buka halaman Findings Security Command Center.
- Pilih Google Cloud project atau organisasi Anda. Halaman Findings dimuat dengan kueri default yang ditampilkan di kolom Query preview.
- Di sebelah kanan bagian Query preview, klik edit Edit Query untuk membuka panel Query editor.
- Pilih Add filter untuk membuka, menelusuri, dan menambahkan filter atribut yang telah ditentukan sebelumnya ke kueri.
Menu Add filter memungkinkan Anda memilih atribut dan nilai temuan yang didukung.
- Di menu Select filter, pilih atribut temuan atau ketik namanya di kotak Search finding attributes. Daftar sub-atribut yang tersedia akan ditampilkan.
- Pilih sub-atribut. Kolom pilihan akan ditampilkan tempat Anda dapat membuat pernyataan kueri menggunakan sub-atribut yang Anda pilih, operator kueri, dan satu atau beberapa nilai untuk sub-atribut.
-
Pilih operator dan satu atau beberapa nilai untuk sub-atribut dari panel. Untuk mengetahui informasi selengkapnya tentang operator kueri dan fungsi yang digunakannya, lihat Operator kueri di menu Add filters.
Jika ingin memulai ulang, klik Reset.
-
Klik Apply.
Menu akan ditutup dan kueri Anda akan diperbarui.
- Ulangi hingga kueri temuan berisi semua atribut yang Anda inginkan.
Saat Anda menggunakan editor kueri di halaman Findings, bagian Quick filters akan dinonaktifkan untuk menghindari konflik antara keduanya.
Atau, Anda dapat membuat kueri temuan secara manual dengan cara yang sama seperti Anda membuat filter temuan menggunakan Security Command Center API. Saat Anda mengetik kueri, menu pelengkapan otomatis akan muncul, tempat Anda dapat memilih nama filter, fungsi, dan nilai. Untuk membuka menu pelengkapan otomatis secara manual, tekan Control+Space.
Saat Anda mengedit kueri, editor akan menandai error apa pun dalam kueri sehingga Anda dapat memperbaiki error sebelum mengirimkan kueri.
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 pencocokan persisMisalnya,
resource.parent_name="prod"cocok dengan nilaiprod. Nilai ini tidak cocok denganproductionataucanaryprod.:untuk pencocokan parsialMisalnya,
resource.parent_name:"prod"cocok dengan nilaiprod,production, dancanaryprod.
Untuk angka (kecuali int64):
<,>,<=,>=untuk ketidaksetaraan=,!=untuk kesetaraan
Untuk angka (int 64):
=,!=untuk kesetaraan
Untuk boolean:
=untuk kesetaraan
Untuk hubungan logis:
ANDORNOTatau-
Untuk ekspresi pengelompokan:
(,)(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 membuat kueri alamat IP dalam rentang CIDR yang ditentukan
Operator kueri di menu Add filters
Di menu Add filter pada Query editor, operator dan fungsi kueri direpresentasikan oleh kata atau frasa, seperti berikut:
- Sama dengan: cocok dengan temuan yang memiliki nilai atribut persis ini.
- Tidak sama dengan: cocok dengan temuan yang tidak memiliki nilai atribut persis ini.
- Setelah: cocok dengan temuan yang memiliki waktu pembuatan atau pembaruan setelah waktu yang ditentukan.
- Sebelum: cocok dengan temuan yang memiliki waktu pembuatan atau pembaruan sebelum waktu yang ditentukan.
- Greater than: cocok dengan temuan yang memiliki nilai atribut lebih tinggi dari nilai yang Anda tentukan.
- Less than: cocok dengan temuan yang memiliki nilai atribut lebih rendah dari nilai yang Anda tentukan.
- Memiliki: cocok dengan temuan yang memiliki nilai atribut yang berisi teks yang Anda masukkan di kolom Kata Kunci.
- Does not have: cocok dengan temuan yang memiliki nilai atribut yang tidak berisi teks yang Anda masukkan di kolom Keyword.
- Untuk atribut temuan yang berisi array:
- Contains any: cocok dengan temuan yang memiliki nilai array yang berisi teks yang Anda masukkan di kolom Keyword.
- Berisi semua: cocok dengan temuan yang memiliki nilai array yang berisi semua teks yang Anda masukkan di kolom Kata Kunci.
- Tidak berisi: cocok dengan temuan yang tidak memiliki nilai array yang berisi teks yang Anda masukkan di kolom Keyword.
- Contains only: cocok dengan temuan yang memiliki atribut array yang hanya berisi nilai yang Anda masukkan di kolom Keyword, dan tidak ada nilai lainnya.
- Untuk alamat IP:
- Any within IP range: cocok dengan temuan yang memiliki alamat IP dalam rentang CIDR yang ditentukan.
- Does not have any within IP range: cocok dengan temuan yang memiliki alamat alamat IP yang tidak berada dalam rentang CIDR yang ditentukan.
Fungsi kueri
Fungsi kueri memberikan evaluasi nilai atribut yang lebih kompleks daripada operator kueri umum.
Fungsi contains
Gunakan fungsi contains untuk mengevaluasi atribut atau subkolom atribut 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 merujuk ke beberapa koneksi jaringan, sehingga atribut connections adalah atribut jenis array.
Demikian pula, temuan ancaman tertentu dapat merujuk ke beberapa alamat IP sebagai indikator kompromi, 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 dengan titik.Dalam contoh berikut, atribut jenis array,
ip_addresses, adalah subkolom dariindicator, sehingga keduanya ditentukan 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 atribut jenis array, tentukan nama subkolom di sebelah kiri ekspresi. Fungsi
containsberikut 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
elemdi sebelah kanan ekspresi untuk menentukan nilai yang akan ditelusuri. Misalnya, fungsicontainsberikut mengevaluasi setiap elemen arrayip_addresses, yang merupakan subkolom dari atributindicator. Atributindicatorbukan kolom jenis array.contains(indicator.ip_addresses, elem="192.0.2.80")
Fungsi contains di menu Add filter
Di menu Add filter, bergantung pada atribut temuan yang Anda evaluasi, fungsi contains akan dicantumkan secara eksplisit atau disertakan secara otomatis saat Anda memilih opsi filter lain yang memerlukannya.
Misalnya, untuk subkolom IP addresses dari atribut Indicator , Anda dapat memilih opsi filter berikut:
- Contains any
- Contains all
- Contains none
Sebaliknya, jika Anda memfilter subkolom Destination IP dari
atribut Connections dan memilih Any within IP range, fungsi
contains akan otomatis ditambahkan ke pernyataan kueri,
seperti yang ditunjukkan dalam contoh berikut:
contains(connections, inIpRange(destination_ip, "2001:db8::/32"))
Untuk mengetahui informasi selengkapnya tentang fungsi contains, lihat
Memfilter kolom jenis array.
Fungsi containsOnly
Fungsi containsOnly memungkinkan Anda membuat kueri temuan untuk atribut atau subkolom jenis array yang hanya berisi nilai yang ditentukan dalam subfilter, dan tidak ada nilai 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 dengan titik. Saat Anda menjalankan kueri menggunakan Google Cloud konsol, fungsi ini hanya mendukung atribut arrayiam_bindings.memberdaniam_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:
IAM binding > Member: hanya memilih temuan yang menyertakan pengguna, akun layanan, atau grup yang ditentukan.
IAM binding > Role: hanya memilih temuan yang menyertakan peran yang ditentukan.
Contoh berikut menunjukkan kueri temuan di Google Cloud konsol
yang menampilkan temuan aktif dan tidak dibisukan untuk pengguna dalam 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 dalam atribut temuan yang dipilih berada dalam rentang alamat IP yang Anda tentukan menggunakan notasi CIDR (rentang CIDR). Berikut sintaksis fungsi inIpRange:
inIpRange(ATTRIBUTE_WITH_IP, "CIDR_RANGE")
Di menu Add filter, opsi filter berikut menggunakan fungsi inIpRange:
- Any within IP range: hanya memilih temuan yang berisi alamat IP dalam rentang yang ditentukan.
- Tidak memiliki apa pun dalam rentang IP: hanya memilih temuan yang tidak berisi alamat IP dalam rentang yang ditentukan.
Contoh berikut menunjukkan kueri temuan di Google Cloud konsol
yang menampilkan temuan aktif dan tidak dibisukan yang caller_ip subkolom
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 tidak dibisukan yang subkolom 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 sebagian besar atribut temuan. Beberapa atribut umum untuk semua temuan. Atribut lainnya 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 subkolom atau array nilai.
Di menu Add filter, klik salah satu atribut tingkat atas berikut untuk menampilkan sub-atribut dan nilai yang dapat Anda gunakan dalam kueri temuan:
- Temuan
- Resource
- Akses (
access) - Skor eksposur serangan
- Pencadangan Pemulihan dari Bencana
- Kepatuhan (
compliances[]) - Koneksi (
connections[]) - Kontak
- Container
- Database
- Peristiwa Akses Data
- Peristiwa Aliran Data
- Peristiwa Penghapusan Retensi Data (
DataRetentionDeletionEvent) - Eksfiltrasi (
exfiltration) - File
- Binding IAM (
iamBindings[]) - Indikator
- Rootkit kernel
- Kubernetes
- MITRE ATT&CK (
mitreAttack) - Proses (
processes[]) - Postur keamanan
- Sensitive Data Protection
- Kerentanan