Praktik terbaik YARA-L

Dokumen ini menjelaskan praktik terbaik yang direkomendasikan Chronicle untuk menulis aturan di YARA-L.

Memfilter nilai nol

Kolom dapat otomatis dihapus jika Anda menjalankan aturan. Jika kolom dihilangkan, nilai default-nya adalah nol.

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

Jika Anda menyamakan dua kolom yang keduanya dihilangkan, keduanya mungkin default ke nilai nolnya. Hal ini dapat menyebabkan pencocokan 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, "" = "" bernilai benar, sehingga akan 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 != ""

Menambahkan filter jenis peristiwa

Pada contoh berikut, alamat IP untuk setiap peristiwa UDM diperiksa berdasarkan daftar referensi, yang menggunakan 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 peristiwa UDM dari jenis peristiwa tertentu, menambahkan filter jenis peristiwa dapat membantu mengoptimalkan aturan dengan mengurangi jumlah peristiwa yang perlu dievaluasi oleh aturan tersebut.

events:
  // For every UDM event of type NETWORK_DNS, check if the target.ip is
  // listed in the suspicious_ip_addresses reference list.
  $e.metadata.event_type = "NETWORK_DNS"
  $e.target.ip in %suspicious_ip_addresses

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