Specifica il punteggio di rischio delle entità nelle regole

Supportato in:

Questo documento descrive come utilizzare i punteggi di rischio delle entità nelle regole. Nelle regole, i codici di rischio delle entità si comportano in modo simile al contesto delle entità. Puoi scrivere regole YARA-L 2.0 per utilizzare i punteggi di rischio come metodo di rilevamento principale. Per ulteriori informazioni sulle regole di analisi del rischio, vedi Creare regole per l'analisi del rischio. 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 da EntityRisk.

L'esempio seguente mostra come creare una regola per generare rilevamenti su qualsiasi nome host dell'entità il cui 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 utilizzarli entrambi in una regola, la regola deve avere due eventi entità distinti, uno per il contesto dell'entità e uno per il punteggio di rischio dell'entità, come mostrato nell'esempio seguente:

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
}