Praktik terbaik YARA-L

Didukung di:

Dokumen ini menjelaskan praktik terbaik yang direkomendasikan Google Security Operations untuk menulis aturan dalam YARA-L.

Memfilter nilai nol

Kolom mungkin dihilangkan secara otomatis dalam peristiwa yang Anda gunakan untuk menjalankan aturan. Jika dihilangkan, kolom akan ditetapkan secara default ke nilai nol.

Misalnya, nilai string yang dihilangkan ditetapkan secara default ke "".

Jika Anda menyamakan dua kolom yang dihilangkan, keduanya mungkin ditetapkan secara default ke nilai nol. Hal ini dapat menyebabkan kecocokan yang tidak diinginkan saat dua kolom cocok karena keduanya memiliki nilai nol. Anda dapat menghindari perilaku ini dengan menentukan nilai nol secara eksplisit.

Misalnya, jika Anda memiliki aturan yang menyamakan dua peristiwa berdasarkan dua kolom, ada kemungkinan kedua kolom tersebut kosong, sehingga menyebabkan kecocokan:

$e1.field1 = $e2.field2

Jika e1.field1 dan e2.field2 dihilangkan dalam data, "" = "" akan bernilai benar (true), sehingga menyebabkan kecocokan.

Ekspresi perbandingan berikut memastikan bahwa Anda tidak mendapatkan kecocokan karena e1.field1 dan e2.field2 tidak menyertakan data apa pun:

 $e1.field1 = $e2.field2
 $e1.field != ""

Nilai nol dan aturan yang bergantung pada pengayaan

Jika aturan bergantung pada data yang diperkaya yang belum diperbarui, nilainya mungkin null atau nol. Oleh karena itu, sebaiknya filter nilai nol (pemeriksaan null) pada aturan yang bergantung pada pengayaan. Pelajari cara Google Security Operations memperkaya data peristiwa dan entitas serta cara menggunakan data yang diperkaya konteks dalam aturan.

Menambahkan filter jenis peristiwa

Dalam contoh berikut, alamat IP untuk setiap peristiwa UDM diperiksa terhadap daftar referensi, yang menghabiskan banyak resource:

events:
// For every UDM event, check if the target.ip is listed in
// the suspicious_ip_addresses reference list.
$e.target.ip in %suspicious_ip_addresses

Jika aturan YARA-L Anda hanya mendeteksi pada peristiwa UDM dari jenis peristiwa tertentu, menambahkan filter jenis peristiwa dapat membantu mengoptimalkan aturan Anda dengan mengurangi jumlah peristiwa yang perlu dievaluasi oleh aturan.

events: // Untuk setiap peristiwa UDM dari jenis NETWORK_DNS, periksa apakah target.ip // tercantum dalam daftar referensi suspicious_ip_addresses. $e.metadata.event_type = "NETWORK_DNS" $e.target.ip in %suspicious_ip_addresses

Tambahkan filter ini ke awal bagian peristiwa. Anda juga harus menempatkan filter kesetaraan sebelum ekspresi reguler atau perbandingan lainnya. Filter diterapkan sesuai urutan yang muncul dalam aturan.

Untuk blog Komunitas tentang cara menggunakan YARA-L, lihat: