Gunakan atau di bagian kondisi

Didukung di:

Dokumen ini menjelaskan cara menggunakan operator or untuk menulis logika deteksi yang fleksibel dan ringkas dalam bagian condition kueri Anda.

Dengan menggunakan or di antara variabel acara atau placeholder, Anda dapat menggabungkan beberapa kondisi, sehingga mengurangi kompleksitas keseluruhan sintaksis kueri:

  • Memeriksa keberadaan salah satu variabel yang ditentukan. Misalnya, $e1 or $e2 memerlukan setidaknya satu instance $e1 atau satu instance $e2.

Sintaksis or di bagian kondisi

Gunakan kata kunci or secara langsung di antara variabel. Contoh berikut setara dengan COUNT($e1)>0 or COUNT($e2)>0:

condition:
  $e1 or $e2  // True if $e1 exists or $e2 exists

Contoh aturan: eksekusi hash buruk atau IP berisiko

Contoh aturan berikut mendeteksi ancaman jika peluncuran proses dari alamat IP berisiko terdeteksi atau hash buruk yang diketahui dieksekusi:

rule MultiEventOr {
  meta:
    author = "google-secops"
  events:
    $e1.principal.ip = "1.1.1.1"
    $e1.metadata.event_type = "PROCESS_LAUNCH"
    $e2.target.file.sha256 = "badhash..."
    $user = $e1.principal.user.userid
    $user = $e2.principal.user.userid
  match:
    $user over 5m
  condition:
    $e1 or $e2
}

Contoh penelusuran: eksekusi hash buruk atau IP berisiko

Contoh berikut menunjukkan cara memformat ulang contoh aturan sebagai kueri penelusuran.

$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid

match:
  $user over 5m

condition:
  $e1 or $e2

Batasan umum

  • Konsumsi resource: Saat Anda menggunakan or di antara variabel peristiwa, or akan mengonsumsi lebih banyak resource daripada and dan dapat menyebabkan waktu eksekusi kueri yang lebih lama.

  • Batas variabel peristiwa: Untuk Penelusuran dan Dasbor, Anda dapat menggunakan maksimum 3 peristiwa dalam sintaksis or multi-peristiwa. Untuk Aturan, Anda dapat menggunakan maksimal 2 peristiwa dalam sintaksis or multi-peristiwa.

  • Keberadaan peristiwa yang diperlukan: Ekspresi yang menggunakan or tidak dapat tidak terikat. Keberadaan peristiwa harus menjadi persyaratan agar klausa bernilai benar (misalnya, $e1 atau #e1 > 0).

  • Pencampuran jenis variabel: Anda tidak dapat menggabungkan variabel non-UDM dengan variabel peristiwa UDM dalam daftar or yang sama.

  • Batasan jendela: Anda tidak dapat menggunakan jendela bergulir dengan sintaksis or.

Apa langkah selanjutnya?

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