Praktik Terbaik Penelusuran
Dokumen ini menjelaskan praktik terbaik yang direkomendasikan Google untuk melakukan penelusuran menggunakan Penelusuran. Penelusuran dapat memerlukan resource komputasi yang substansial untuk diselesaikan jika tidak dibuat dengan cermat. Performa juga bervariasi bergantung pada ukuran dan kompleksitas data di instance Google Security Operations Anda.
Membuat kueri Penelusuran yang efektif
Setiap kondisi harus dalam bentuk
udm-field operator value
.
Contoh:
principal.hostname = "win-server"
Mengoptimalkan rentang waktu untuk penelusuran Anda
Selalu coba perkecil rentang waktu Anda ke minimum yang diperlukan. Google SecOps dapat menyerap data dalam jumlah yang sangat besar, sehingga membatasi cakupan data tersebut saat melakukan penelusuran dapat secara substansial meningkatkan performa penelusuran.
Menggunakan ekspresi reguler dengan Penelusuran
Anda dapat menggunakan ekspresi reguler saat melakukan penelusuran:
- 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 juga dapat menggunakan daftar referensi.
Menggunakan nocase
sebagai pengubah penelusuran
nocase
dapat digunakan sebagai pengubah untuk mengabaikan penggunaan huruf besar.
Misalnya, penelusuran berikut tidak valid:
target.user.userid = "TIM.SMITH" nocase
Ekspresi reguler tidak berfungsi untuk kolom yang dihitung
Anda tidak dapat menggunakan ekspresi reguler untuk kolom yang dihitung (kolom dengan rentang nilai yang telah ditentukan sebelumnya) seperti metadata.event_type
atau network.ip_protocol
.
Misalnya, penelusuran berikut tidak valid:
metadata.eventtype = /NETWORK*/
Namun, penelusuran berikut valid (dan mendekati yang dicoba di atas):
(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. Tidak seperti Aturan, kolom berulang di Penelusuran selalu diperlakukan dengan operator any
secara default, tanpa opsi untuk menentukan all
.
Saat operator any
digunakan, predikat dievaluasi sebagai benar jika nilai apa pun
di kolom berulang memenuhi kondisi. Misalnya, jika Anda menelusuri
principal.ip != "1.2.3.4"
dan peristiwa dalam penelusuran Anda menyertakan
principal.ip = "1.2.3.4"
dan principal.ip = "5.6.7.8"
, Penelusuran akan
menghasilkan kecocokan. Tindakan ini akan memperluas penelusuran Anda untuk menyertakan hasil yang cocok dengan salah satu
operator, bukan cocok dengan semuanya.
Setiap elemen di kolom berulang diperlakukan satu per satu. 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 benar jika nilai apa pun
di kolom berulang 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, hal berikut (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 hal berikut:
metadata.id
metadata.product_log_id
*.timestamp
Karena sering kali berisi nilai unik, kolom ini sering kali menambahkan detail yang tidak perlu, sehingga mengurangi efektivitas penelusuran.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.