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.

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.hostname
  • principal.asset.ip
  • principal.asset.mac
  • principal.file.md5
  • principal.file.sha1
  • principal.file.sha256
  • principal.hostname
  • principal.ip
  • principal.mac
  • principal.process.file.md5
  • principal.process.file.sha1
  • principal.process.file.sha256
  • principal.process.parent_process.file.md5
  • principal.process.parent_process.file.sha1
  • principal.process.parent_process.file.sha256
  • principal.user.email_addresses
  • principal.user.product_object_id
  • principal.user.userid
  • principal.user.windows_sids

Kolom sumber

  • source.user.userid
  • src.asset.hostname
  • src.hostname
  • src.ip

Kolom target

  • target.asset.hostname
  • target.file.md5
  • target.file.sha1
  • target.file.sha256
  • target.hostname
  • target.ip
  • target.process.file.md5
  • target.process.file.sha1
  • target.process.file.sha256
  • target.user.email_addresses
  • target.user.product_object_id
  • target.user.userid
  • target.user.windows_sid

Kolom tambahan

  • about.file.md5
  • about.file.sha1
  • about.file.sha256
  • intermediary.hostname
  • intermediary.ip
  • network.dns.questions.name
  • network.email.from
  • network.email.to
  • observer.hostname
  • observer.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"

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, dan NOT untuk menggabungkan kondisi. AND diasumsikan 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.id
  • metadata.product_log_id
  • *.timestamp

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.