Praktik terbaik terkait penelusuran
Dokumen ini menjelaskan praktik terbaik yang direkomendasikan Google untuk menggunakan fitur Penelusuran di Google Security Operations. Penelusuran dapat memerlukan resource komputasi yang besar jika tidak dibuat dengan cermat. Performa juga bervariasi bergantung pada ukuran dan kompleksitas data di instance Google SecOps Anda.
Gunakan kolom UDM yang diindeks untuk kecepatan maksimum
Cara paling efektif untuk meningkatkan performa penelusuran adalah dengan membuat kueri menggunakan kolom yang diindeks. Kolom ini dioptimalkan untuk pengambilan cepat. Kolom Model Data Terpadu (UDM) yang diketahui dan diindeks adalah sebagai berikut:
Kolom utama
principal.asset.hostnameprincipal.asset.ipprincipal.asset.macprincipal.file.md5principal.file.sha1principal.file.sha256principal.hostnameprincipal.ipprincipal.macprincipal.process.file.md5principal.process.file.sha1principal.process.file.sha256principal.process.parent_process.file.md5principal.process.parent_process.file.sha1principal.process.parent_process.file.sha256principal.user.email_addressesprincipal.user.product_object_idprincipal.user.useridprincipal.user.windows_sids
Kolom sumber
source.user.useridsrc.asset.hostnamesrc.hostnamesrc.ip
Kolom target
target.asset.hostnametarget.file.md5target.file.sha1target.file.sha256target.hostnametarget.iptarget.process.file.md5target.process.file.sha1target.process.file.sha256target.user.email_addressestarget.user.product_object_idtarget.user.useridtarget.user.windows_sid
Kolom tambahan
about.file.md5about.file.sha1about.file.sha256intermediary.hostnameintermediary.ipnetwork.dns.questions.namenetwork.email.fromnetwork.email.toobserver.hostnameobserver.ip
Membuat kueri penelusuran yang efektif untuk performa
Menulis kueri yang dioptimalkan adalah kunci untuk memaksimalkan kecepatan dan meminimalkan konsumsi resource di seluruh data keamanan Anda. Semua kondisi kueri harus benar-benar mematuhi struktur dasar ini:
udm-field operator value
Contoh:
principal.hostname = "win-server"
Mempersempit rentang waktu untuk penelusuran Anda
Karena Google SecOps dapat menyerap sejumlah besar data selama penelusuran, Anda harus meminimalkan rentang waktu kueri untuk mempersempit cakupan dan meningkatkan performa penelusuran.
Menggunakan ekspresi reguler dalam kueri penelusuran
Anda dapat menggunakan operator perbandingan dan logis standar saat membuat kueri penelusuran UDM untuk membuat ekspresi yang kompleks:
- Operator logika:Gunakan
AND,OR, danNOTuntuk menggabungkan kondisi.ANDdiasumsikan jika Anda tidak menyertakan operator di antara dua kondisi. - Prioritas operator: Gunakan tanda kurung () untuk mengganti urutan prioritas default. Ada batas maksimum
169 operator logika (
OR,AND,NOT) yang dapat Anda gunakan dalam tanda kurung. - Operator perbandingan: Bergantung pada jenis kolom UDM (string, bilangan bulat, stempel waktu), operator kolom dapat mencakup:
=,!=,>=,>,<,<=
Atau, untuk penelusuran yang efisien atas sekumpulan besar nilai, Anda dapat menggunakan daftar referensi.
Menggunakan nocase sebagai pengubah penelusuran
Anda dapat menambahkan pengubah nocase ke kondisi perbandingan string untuk membuat penelusuran tidak peka huruf besar/kecil, yang mengabaikan kapitalisasi.
Misalnya, penelusuran berikut tidak valid:
target.user.userid = "TIM.SMITH" nocase
Hindari penggunaan ekspresi reguler di kolom yang diurutkan
Anda tidak dapat menggunakan ekspresi reguler saat menelusuri kolom yang di-enumerasi (kolom dengan rentang
nilai yang telah ditentukan sebelumnya) seperti metadata.event_type atau
network.ip_protocol
Contoh berikut adalah penelusuran yang tidak valid:
metadata.event_type = /NETWORK_*/
Sedangkan, contoh berikut adalah penelusuran yang valid:
(metadata.event_type = "NETWORK_CONNECTION" atau metadata.event_type = "NETWORK_DHCP")
Gunakan semua operator di kolom Peristiwa
Di Penelusuran, beberapa kolom UDM (seperti principal.ip atau target.file.md5) diberi label berulang, karena dapat menyimpan daftar nilai atau jenis pesan dalam satu peristiwa. Kolom berulang selalu diperlakukan dengan operator any secara default (tidak ada opsi untuk menentukan all).
Jika operator any digunakan, predikat dievaluasi sebagai true jika ada nilai
dalam kolom berulang yang memenuhi kondisi. Misalnya, jika Anda menelusuri
principal.ip != "1.2.3.4" dan peristiwa dalam penelusuran Anda mencakup
principal.ip = "1.2.3.4" dan principal.ip = "5.6.7.8", kecocokan akan dihasilkan. Tindakan ini memperluas penelusuran Anda untuk menyertakan hasil yang cocok dengan salah satu operator, bukan mencocokkan semuanya.
Setiap elemen di kolom berulang diperlakukan secara terpisah. Jika kolom berulang
ditemukan dalam peristiwa dalam penelusuran, peristiwa akan dievaluasi untuk setiap
elemen dalam kolom. Hal ini dapat menyebabkan perilaku yang tidak terduga, terutama saat menelusuri menggunakan operator !=.
Saat menggunakan operator any, predikat dievaluasi sebagai true jika ada nilai
dalam kolom berulang yang memenuhi kondisi.
Gunakan waktu epoch Unix untuk stempel waktu
Kolom stempel waktu dicocokkan menggunakan waktu epoch Unix (jumlah total detik yang telah berlalu sejak Kamis, 1 Januari 1970 00.00.00 UTC).
Saat menelusuri stempel waktu tertentu, berikut ini (dalam waktu epoch) valid:
metadata.ingested_timestamp.seconds = 1660784400
Stempel waktu berikut tidak valid:
metadata.ingested_timestamp = "2022-08-18T01:00:00Z"
Mengecualikan kolom dari filter
Kolom berikut sengaja dikecualikan dari filter penelusuran. Meskipun berisi metadata penting, nilai uniknya yang sangat tinggi dapat memunculkan detail penelusuran yang tidak perlu dan mengurangi efisiensi serta efektivitas keseluruhan mesin kueri:
metadata.idmetadata.product_log_id*.timestamp
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.