Specifica il punteggio di rischio delle entità nelle regole

Questo documento descrive come utilizzare i punteggi di rischio delle entità nelle regole. Nelle regole, l'entità i punteggi di rischio si comportano in modo simile al contesto dell'entità. Puoi scrivere YARA-L 2.0 per utilizzare i punteggi di rischio come principale metodo di rilevamento. Per maggiori informazioni informazioni sulle regole relative all'analisi del rischio, consulta Creare regole per il rischio Analisi. Per ulteriori informazioni per un contesto più basato sul rischio, consulta l'articolo Creazione di contenuti sensibili al contesto e analisi.

Per recuperare un punteggio di rischio dell'entità, unisci un'entità a un evento UDM e recupera il campo specificato EntityRisk.

L'esempio seguente mostra come creare una regola per generare rilevamenti su qualsiasi nome host dell'entità con un punteggio di rischio superiore a 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, risk window, and score across a 4 hour window.
    $hostname, $rwindow, $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
}

Questa regola di esempio esegue anche un'auto-duplicazione utilizzando la corrispondenza . Se potrebbe attivarsi il rilevamento di una regola, ma il nome host e il punteggio di rischio rimangono invariati entro un periodo di 4 ore, non verranno creati nuovi rilevamenti.

Le uniche possibili finestre di rischio per le regole relative al punteggio di rischio dell'entità sono di 24 ore o 7 giorni (86.400 o 604.800 secondi rispettivamente). Se non includi il parametro dimensioni della finestra di rischio nella regola, quest'ultima restituirà risultati imprecisi.

I dati del punteggio di rischio delle entità vengono archiviati separatamente dai dati relativi al contesto dell'entità. Per utilizzare entrambi in una regola, la regola deve avere due eventi entità separati, uno per contesto dell'entità e uno per il punteggio di rischio dell'entità, come mostrato di seguito esempio:

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
}