Praktik terbaik terkait penelusuran

Didukung di:

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"

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, dan NOT.
  • AND diasumsikan jika tidak ada operator lain.
  • Gunakan tanda kurung untuk mengubah urutan prioritas. Ada batas maksimum 169 operator logika (OR, AND, dan NOT) 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.