Spécifier le score de risque de l'entité dans les règles
Ce document explique comment utiliser les scores de risque des entités dans les règles. Dans les règles, les scores de risque des entités se comportent de la même manière que le contexte des entités. Vous pouvez écrire des règles YARA-L 2.0 pour utiliser les scores de risque comme méthode de détection principale. Pour en savoir plus sur les règles concernant les analyses des risques, consultez Créer des règles pour l'analyse des risques. Pour en savoir plus sur le contexte basé sur les risques, consultez Créer des analyses contextuelles.
Pour récupérer un score de risque d'entité, associez une entité à un événement UDM et récupérez le champ spécifié à partir de EntityRisk.
L'exemple suivant montre comment créer une règle permettant de générer des détections sur n'importe quel nom d'hôte d'entité dont le score de risque est supérieur à 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
}
Cette règle exemple effectue également une auto-déduplication à l'aide de la section "match". Si une détection de règle est susceptible de se déclencher, mais que le nom d'hôte et le score de risque restent inchangés pendant une période de quatre heures, aucune nouvelle détection ne sera créée.
Les seules périodes de risque possibles pour les règles de score de risque des entités sont de 24 heures ou de 7 jours (86 400 ou 604 800 secondes, respectivement). Si vous n'incluez pas la taille de la période à risque dans la règle, celle-ci renverra des résultats inexacts.
Les données sur le score de risque des entités sont stockées séparément des données contextuelles des entités. Pour utiliser les deux dans une règle, celle-ci doit comporter deux événements d'entité distincts, l'un pour le contexte de l'entité et l'autre pour le score de risque de l'entité, comme indiqué dans l'exemple suivant :
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
}
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.