Sintaksis bagian pencocokan
Di YARA-L 2.0, bagian match menyediakan mekanisme untuk korelasi multi-peristiwa. Bagian ini menentukan logika untuk mengelompokkan peristiwa ke dalam satu deteksi dengan menautkan atribut umum, seperti pengguna, alamat IP, atau hash file, dalam batas waktu tertentu.
Anda menggunakan bagian match untuk kasus penggunaan berikut:
- Menautkan dua peristiwa berbeda atau lebih dalam satu aturan.
- Mengagregasi data di Penelusuran dan Dasbor, seperti menghitung upaya login yang gagal selama jangka waktu tertentu.
Menentukan kriteria korelasi
Gunakan bagian ini untuk menentukan kriteria korelasi ini dengan menentukan hal berikut:
Kolom pengelompokan (kunci): Variabel (seperti
$useratau$ip) yang harus memiliki nilai yang sama di seluruh peristiwa (ditentukan di bagianevents) untuk memicu kecocokan.Batasan waktu: Jendela durasi tempat peristiwa yang dikelompokkan harus terjadi untuk memenuhi aturan atau agregasi. Di Aturan, hal ini menentukan jendela deteksi; di Penelusuran dan Dasbor, hal ini menentukan jendela agregasi atau korelasi.
Membandingkan persyaratan fitur
Tabel berikut menjelaskan perbandingan untuk Aturan dengan Penelusuran dan Dasbor.
| Fitur | Persyaratan aturan | Dukungan Penelusuran dan Dasbor |
|---|---|---|
| Jenis variabel | Harus menggunakan placeholder yang ditentukan di bagian events. |
Mendukung placeholder dan kolom UDM langsung. |
| Jendela waktu | Menentukan batas deteksi. | Menentukan bucket agregasi atau korelasi. |
| Sintaksis | over <number><m/h/d> (misalnya, 10m, 2h, 1d) |
over <number><m/h/d> |
| Batas | Min: 1m / Maks: 48h |
Min: 1m / Maks: 48h |
Jenis jendela yang didukung
YARA-L 2.0 menggunakan perilaku jendela yang berbeda untuk menentukan cara waktu dibagi dan cara peristiwa dikelompokkan. Anda dapat mengelompokkan kolom peristiwa dan placeholder di bagian match berdasarkan granularitas waktu yang ditentukan menggunakan salah satu jendela yang didukung berikut.
Untuk mengetahui detail tentang jenis jendela yang didukung YARA-L 2.0, lihat Logika jendela YARA-L 2.0.
Memahami batas waktu
Bagian match mempartisi peristiwa ke dalam grup berdasarkan kunci pengelompokan Anda. Durasi yang ditentukan menentukan batas waktu untuk setiap grup:
- Penyertaan: Hanya peristiwa dalam jendela yang diteruskan ke evaluasi
conditionuntuk kecocokan tertentu. - Pengecualian: Peristiwa di luar jendela diabaikan untuk grup kecocokan tertentu, sehingga mencegah peristiwa yang tidak terkait memicu positif palsu.
Nilai nol di bagian match
Google SecOps secara implisit memfilter nilai nol untuk semua placeholder yang digunakan di bagian match ("" untuk string, 0 untuk angka, false untuk boolean, nilai di posisi 0 untuk jenis yang dihitung).
Contoh: Memfilter nilai nol
Contoh berikut mengilustrasikan kueri yang memfilter nilai nol.
rule ZeroValuePlaceholderExample {
events:
// Because $host is used in the match section, the query behaves
// as if the following predicate was added to the events section:
// $host != ""
$host = $e.principal.hostname
// Because $otherPlaceholder was not used in the match,
// there is no implicit filtering of zero values for $otherPlaceholder.
$otherPlaceholder = $e.principal.ip
match:
$host over 5m
condition:
$e
}Namun, jika placeholder ditetapkan ke fungsi, kueri tidak secara implisit memfilter nilai nol placeholder yang digunakan di bagian match.
Untuk menonaktifkan pemfilteran implisit nilai nol,
Anda dapat menggunakan opsi allow_zero_values di bagian opsi. Opsi allow_zero_values hanya tersedia di Aturan.
Contoh: Mengizinkan nilai nol
Contoh berikut mengilustrasikan kueri yang tidak secara implisit memfilter nilai nol placeholder yang digunakan di bagian match:
rule AllowZeroValuesExample {
events:
// Because allow_zero_values is set to true, there is no implicit filtering
// of zero values for $host.
$host = $e.principal.hostname
// Because $otherPlaceholder was not used in the match,
// there is no implicit filtering of zero values for $otherPlaceholder.
$otherPlaceholder = $e.principal.ip
match:
$host over 5m
condition:
$e
options:
allow_zero_values = true
}Langkah berikutnya
Jelajahi referensi berikut untuk melanjutkan logika YARA-L atau mempelajari lebih lanjut fungsi kueri lanjutan:
Sintaksis dan logika
Referensi dan contoh
- Ekspresi, operator, dan konstruksi yang digunakan di YARA-L 2.0
- Fungsi di YARA-L 2.0
- Membuat aturan deteksi gabungan
- Contoh: Kueri YARA-L 2.0
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.