Menggunakan daftar referensi dan tabel data di YARA-L 2.0

Didukung di:

Daftar referensi dan tabel data memungkinkan Anda menyusun logika dengan membandingkan kolom peristiwa dengan set data kustom. Gunakan objek ini untuk mengelola indikator bervolume tinggi—seperti IP yang diketahui berbahaya atau nama host yang disetujui—di seluruh Penelusuran, Dasbor, dan deteksi tanpa mengubah sintaksis yang mendasarinya.

Anda dapat menggunakan daftar referensi atau tabel data di bagian events atau outcome aturan. Lihat Daftar referensi dan Menggunakan tabel data untuk mengetahui informasi selengkapnya tentang perilaku dan sintaksis daftar referensi dan tabel data.

Menerapkan sintaksis daftar referensi dan tabel data

Daftar referensi dan tabel data mengikuti sintaksis yang serupa, yang ditentukan oleh ID objek dan jenis pencocokan (string, regex, atau CIDR) yang diperlukan untuk operasi. Bagian ini menunjukkan contoh sintaksis untuk menggunakan berbagai jenis daftar referensi.

Di Google Security Operations, daftar referensi dan tabel data digunakan dalam bagian events atau outcome aturan YARA-L untuk membandingkan data peristiwa dengan set data yang diupload. Ini dijalankan selama proses evaluasi aturan untuk memfilter peristiwa atau memperkaya hasil deteksi.

Gunakan daftar referensi saat Anda perlu memeriksa apakah satu kolom cocok dengan nilai apa pun dalam daftar yang telah ditentukan sebelumnya (misalnya, daftar IP berbahaya yang diketahui).

  • STRING: $e.principal.hostname in %string_list_name
  • REGEX: $e.principal.hostname in regex %regex_list_name

  • CIDR: $e.principal.ip in cidr %cidr_list_name

Gunakan tabel data saat data referensi Anda memiliki struktur baris atau kolom, sehingga Anda dapat memetakan kolom tertentu ke kolom tertentu.

  • STRING: $e.target.hostname in %table_name.column_name

  • REGEX: $e.target.hostname in regex %table_name.column_name

  • CIDR: $e.principal.ip in cidr %table_name.column_name

Contoh: Sintaksis dan perilaku daftar referensi

Contoh berikut menggambarkan cara menyusun kueri untuk berbagai jenis set data dan menerapkan logika bersyarat pada kecocokan Anda:

Contoh: Sintaksis daftar referensi dalam kueri

// STRING reference list
$e.principal.hostname in %string_reference_list

// Regular expression reference list
$e.principal.hostname in regex %regex_reference_list

// CIDR reference list
$e.principal.ip in cidr %cidr_reference_list

Contoh: Sintaksis tabel data

// STRING data table
$e.target.hostname in %data_table_name.column_name

// Regular expression data table
$e.target.hostname in regex %regex_table_name.column_name

// CIDR data table
$e.principal.ip in cidr %cidr_table_name.column_name

Contoh: Operator not dan nocase

Operator nocase kompatibel dengan daftar STRING dan daftar REGEX.

// Exclude events whose hostnames match substrings in my_regex_list.
not $e.principal.hostname in regex %my_regex_list

// Event hostnames must match at least one string in my_string_list (case insensitive).
$e.principal.hostname in %my_string_list nocase
    

Operator nocase kompatibel dengan daftar STRING dan daftar REGEX.

Untuk alasan performa, Detection Engine membatasi penggunaan daftar referensi.

  • Pernyataan in maksimum dalam aturan, dengan atau tanpa operator khusus: 10
  • Pernyataan in maksimum dengan operator regex: 5
  • Pernyataan in maksimum dengan operator cidr: 5

Untuk mengetahui informasi selengkapnya tentang perilaku daftar referensi dan sintaksis daftar referensi, lihat Daftar Referensi.

Untuk mempertahankan performa yang optimal di seluruh Penelusuran, Dasbor, dan deteksi, mesin YARA-L menerapkan batas berikut:

  • Pernyataan in maksimum dalam kueri, dengan atau tanpa operator khusus: 7
  • Pernyataan in maksimum dengan operator regex: 4
  • Pernyataan in maksimum dengan operator cidr: 2

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