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.
Menyusun kueri penelusuran yang efektif
Setiap kondisi harus dalam bentuk
udm-field operator value
.
Contoh:
principal.hostname = "win-server"
Mempersempit rentang waktu untuk penelusuran Anda
Karena Google SecOps dapat memproses data dalam jumlah besar selama penelusuran, sebaiknya minimalkan rentang waktu untuk mempersempit cakupan dan meningkatkan performa penelusuran.
Menggunakan ekspresi reguler dalam kueri penelusuran
Anda dapat menggunakan ekspresi reguler saat menelusuri data:
- Gunakan
AND
,OR
, danNOT
. AND
diasumsikan jika tidak ada operator lain.- Gunakan tanda kurung untuk mengubah urutan prioritas. Ada batas maksimum
169 operator logika (
OR
,AND
, danNOT
) yang dapat digunakan dalam tanda kurung. - Bergantung pada jenis kolom, operator kolom dapat mencakup:
= != >= > < <=
Atau, Anda dapat menggunakan daftar referensi.
Menggunakan nocase
sebagai pengubah penelusuran
nocase
dapat digunakan sebagai pengubah untuk mengabaikan penggunaan huruf kapital.
Misalnya, penelusuran berikut tidak valid:
target.user.userid = "TIM.SMITH" nocase
Jangan gunakan ekspresi reguler untuk kolom yang di-enumerasi
Anda tidak dapat menggunakan ekspresi reguler untuk 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.eventtype = /NETWORK*/
Sedangkan, contoh berikut adalah penelusuran yang valid:
(metadata.event_type = "NETWORK_CONNECTION" or
metadata.event_type = "NETWORK_DHCP")
Menggunakan semua operator di kolom Peristiwa
Di Penelusuran, beberapa kolom diberi label berulang, yang berarti kolom tersebut berisi daftar
nilai atau jenis pesan. Kolom berulang selalu diperlakukan dengan operator any
secara default (tidak ada opsi untuk menentukan
all
).
Jika operator any
digunakan, predikat dievaluasi sebagai benar jika ada nilai
di 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 di penelusuran, peristiwa akan dievaluasi untuk setiap
elemen di kolom. Hal ini dapat menyebabkan perilaku yang tidak terduga, terutama saat menelusuri menggunakan operator !=
.
Saat menggunakan operator any
, predikat dievaluasi sebagai benar (true) jika ada nilai
di kolom berulang yang memenuhi kondisi.
Stempel waktu menggunakan waktu epoch Unix
Kolom stempel waktu dicocokkan menggunakan waktu epoch Unix (jumlah detik yang telah berlalu sejak Kamis 1 Januari 1970 00.00.00).
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"
Ada kolom tertentu yang dikecualikan dari filter, termasuk berikut ini:
metadata.id
metadata.product_log_id
*.timestamp
Karena kolom ini sering kali berisi nilai unik, kolom ini dapat menambahkan detail yang tidak perlu, yang dapat mengurangi efektivitas penelusuran.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.