Especificar la puntuación de riesgo de entidad en las reglas

Disponible en:

En este documento se describe cómo usar las puntuaciones de riesgo de entidad en las reglas. En las reglas, las puntuaciones de riesgo de las entidades se comportan de forma similar al contexto de las entidades. Puedes escribir reglas de YARA-L 2.0 para usar las puntuaciones de riesgo como método de detección principal. Para obtener más información sobre las reglas de analíticas de riesgo, consulta el artículo Crear reglas para analíticas de riesgo. Para obtener más información sobre el contexto basado en riesgos, consulta el artículo Crear analíticas contextuales.

Para obtener una puntuación de riesgo de entidad, combina una entidad con un evento de UDM 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 deduplicación automática mediante la sección match. Si se puede activar una detección de reglas, pero el nombre de host y la puntuación de riesgo no cambian en un periodo de 4 horas, no se crearán nuevas detecciones.

Los únicos periodos de riesgo admitidos para las reglas de puntuación de riesgo de entidades son 24 horas (86.400 segundos) o 7 días (604.800 segundos). Si no especifica el tamaño de la ventana de riesgo en la regla, se le asignará un valor predeterminado de 24 horas o 7 días.

Los datos de 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, la regla debe tener dos eventos de entidad independientes, 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
}

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.