Menentukan skor risiko entity dalam aturan

Didukung di:

Dokumen ini menjelaskan cara menggunakan skor risiko entitas dalam aturan. Dalam aturan, skor risiko entity berperilaku dengan cara yang mirip dengan konteks entity. Anda dapat menulis aturan YARA-L 2.0 untuk menggunakan skor risiko sebagai metode deteksi utama. Untuk mengetahui informasi selengkapnya tentang aturan pada analisis risiko, lihat Membuat aturan untuk Analisis Risiko. Untuk mengetahui informasi selengkapnya tentang konteks berbasis risiko lainnya, lihat Membuat analisis yang memahami konteks.

Untuk mengambil skor risiko entitas, gabungkan entitas dengan peristiwa UDM dan ambil kolom yang ditentukan dari EntityRisk.

Contoh berikut menunjukkan cara membuat aturan untuk membuat deteksi pada nama host entity mana pun yang skor risikonya lebih besar dari 100.

rule EntityRiskScore {
  meta:
  events:
    $e1.principal.hostname != ""
    $e1.principal.hostname = $hostname

    $e2.graph.entity.hostname = $hostname
    $e2.graph.risk_score.risk_window_size.seconds = 86400 // 24 hours
    $e2.graph.risk_score.risk_score >= 100

    // Run deduplication across the risk score.
    $rscore = $e2.graph.risk_score.risk_score

  match:
    // Dedup on hostname and risk score across a 4 hour window.
    $hostname, $rscore over 4h

  outcome:
    // Force these risk score based rules to have a risk score of zero to
    // prevent self feedback loops.
    $risk_score = 0

  condition:
    $e1 and $e2
}

Contoh aturan ini juga melakukan penghapusan duplikat sendiri menggunakan bagian kecocokan. Jika deteksi aturan mungkin dipicu, tetapi nama host dan skor risiko tetap tidak berubah dalam jangka waktu 4 jam, tidak ada deteksi baru yang akan dibuat.

Satu-satunya periode risiko yang didukung untuk aturan skor risiko entitas adalah 24 jam (86.400 detik) atau 7 hari (604.800 detik). Jika Anda tidak menentukan ukuran periode risiko dalam aturan, ukuran tersebut akan ditetapkan secara default ke 24 jam atau 7 hari.

Data skor risiko entitas disimpan secara terpisah dari data konteks entitas. Untuk menggunakan keduanya dalam aturan, aturan harus memiliki dua peristiwa entitas terpisah, satu untuk konteks entitas dan satu untuk skor risiko entitas, seperti yang ditunjukkan dalam contoh berikut:

rule EntityContextAndRiskScore {
  meta:
  events:
    $log_in.metadata.event_type = "USER_LOGIN"
    $log_in.principal.hostname = $host

    $context.graph.entity.hostname = $host
    $context.graph.metadata.entity_type = "ASSET"

    $risk_score.graph.entity.hostname = $host
    $risk_score.graph.risk_score.risk_window_size.seconds = 604800

  match:
    $host over 2m

  outcome:
    $entity_risk_score = max($risk_score.graph.risk_score.normalized_risk_score)

  condition:
    $log_in and $context and $risk_score and $entity_risk_score > 100
}

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