Especifica la puntuación de riesgo de entidad en las reglas
En este documento, se describe cómo usar las puntuaciones de riesgo de entidades en las reglas. En las reglas, las puntuaciones de riesgo de las entidades se comportan de manera similar al contexto de la entidad. Puedes escribir reglas de YARA-L 2.0 para usar las puntuaciones de riesgo como el método de detección principal. Para obtener más información sobre las reglas de las estadísticas de riesgo, consulta Crea reglas para las estadísticas de riesgo. Para obtener más información sobre el contexto basado en riesgos, consulta Cómo crear estadísticas adaptadas al contexto.
Para recuperar una puntuación de riesgo de entidad, une una entidad con un evento de la AUA y recupera el campo especificado de EntityRisk.
En el siguiente ejemplo, se muestra cómo crear una regla para generar detecciones en cualquier nombre de host de entidad cuya puntuación de riesgo sea superior 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 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
}
Esta regla de ejemplo también realiza una autoduplicación con la sección de coincidencia. Si es posible que se active una detección de reglas, pero el nombre de host y la puntuación de riesgo no cambian dentro de un período de 4 horas, no se crearán detecciones nuevas.
Los únicos períodos de riesgo posibles para las reglas de puntuación de riesgo de la entidad son de 24 horas o 7 días (86,400 o 604,800 segundos, respectivamente). Si no incluyes el tamaño de la ventana de riesgo en la regla, esta mostrará resultados inexactos.
Los datos de la puntuación de riesgo de la entidad se almacenan por separado de los datos de contexto de la entidad. Para usar ambos en una regla, esta debe tener dos eventos de entidad separados, uno para el contexto de la entidad y otro para la puntuación de riesgo de la entidad, como se muestra en el siguiente ejemplo:
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
}