Encadenamiento de reglas

Se admite en los siguientes países:

La encadenación de reglas te permite interconectar reglas de manera tal que el resultado de una regla actúe como entrada para otra. Esta función te permite crear reglas con más complejidad y flexibilidad. La encadenación de reglas supera las limitaciones de la detección de eventos aislados, ya que correlaciona y analiza eventos en diferentes fuentes de datos y períodos.

Beneficios de la encadenación de reglas:

  • Desenmascaramiento de ataques de varias etapas: Los ciberataques suelen estar interconectados. La encadenación de reglas ayuda a descubrir la narrativa del ataque, ya que muestra los vínculos entre incidentes aparentemente aislados. Por ejemplo, el encadenamiento de reglas puede identificar la secuencia de ataque completa, como una violación inicial seguida de una elevación de privilegios y robo de datos.

  • Cómo controlar el agotamiento por alertas: Prioriza las amenazas críticas y mitiga el agotamiento por alertas implementando reglas de consumidor. Estas reglas consolidan y filtran las alertas ruidosas que generan las reglas de productor, lo que permite una respuesta más enfocada.

  • Mejora la precisión de la detección: Combina las estadísticas de los eventos del UDM, otras detecciones de reglas, la información de la entidad, los resultados de la UEBA y las tablas de datos para crear una lógica de detección precisa.

  • Optimiza la lógica compleja: Desglosa las situaciones de detección complejas en reglas interconectadas, reutilizables y fáciles de administrar para optimizar el desarrollo y el mantenimiento.

Términos y conceptos de encadenamiento de reglas:

  • Detección: Es el resultado de una regla y también se puede denominar alerta.

  • Cadena: Es una serie de reglas en las que el resultado de una regla sirve como entrada para la siguiente. Por ejemplo, en la cadena rule1 -> rule2 -> rule3, la regla2 usa las detecciones que genera la regla1 para producir detecciones nuevas, que luego la regla3 usa para generar su propio conjunto de detecciones.

  • Regla de productor: Es una regla cuyas detecciones se usan como entrada para otra regla. Cualquier regla puede funcionar como una regla de productor, y no se requiere ninguna designación específica. Las reglas de productor usan entidades y eventos como entrada. No usan detecciones como entrada.

  • Regla de consumidor: Es una regla que usa detecciones como entrada en el texto de la regla. Las reglas de consumidores deben tener una sección de coincidencias.

  • Regla de encadenamiento: También se conoce como regla de consumidor.

Conceptos avanzados

Reglas de detección de eventos únicos

Google SecOps no permite reglas de detección de un solo evento. Esto significa que cualquier regla que use detecciones como fuente de datos debe tener una sección de coincidencia.

Latencia de detección

Recomendamos que solo se encadenan reglas de consumidor en reglas de un solo evento debido a problemas de programación. Las reglas de un solo evento se ejecutan casi en tiempo real, por lo que las detecciones de estas reglas casi siempre estarán disponibles para la primera ejecución de una regla de consumidor. Si creas una cadena de reglas con una regla de varios eventos, es posible que la regla del productor se ejecute después de la regla del consumidor, lo que retrasará la generación de detecciones en la regla del consumidor.

TestRule y Retrohunt

Probar o ejecutar una búsqueda retroactiva en una regla de consumidor solo ejecuta la regla específica que seleccionaste con detecciones existentes. Para ejecutar una cadena completa, debes iniciar búsquedas retrospectivas al comienzo de la cadena y esperar a que finalice cada ejecución antes de ejecutar la siguiente regla.

Ejecutar una prueba en una regla no persiste ni escribe las detecciones en la base de datos, y las reglas de consumidor requieren que las detecciones de entrada existan en la base de datos. Por lo tanto, no puedes probar una cadena de reglas en la regla de prueba.

Cómo crear cadenas de reglas

Las cadenas de reglas se crean con combinaciones de reglas de productor y de consumidor.

Reglas para productores

Las reglas de productor son la base de tu cadena. Identifican eventos o condiciones específicos que, cuando se combinan, indican actividad maliciosa. Para configurar la regla de productor, haz lo siguiente:

  1. Crea una regla nueva o reutiliza una existente

  2. Inhabilita las alertas y establece $risk_score en 0 en la sección de resultados. Esto evita que estas reglas generen alertas individuales o afecten las puntuaciones de riesgo de la entidad. Con esta configuración, puedes priorizar las alertas más críticas que generan las reglas de consumidor, que evalúan toda la cadena de eventos.

  3. Usa la sección outcome para definir las variables a las que pueden acceder las reglas de encadenamiento.

En el siguiente ejemplo de regla de productor, se detectan los accesos fallidos.

rule failed_login {
  meta:

  events:
    $e.metadata.event_type = "USER_LOGIN"
    any $e.security_result.action = "BLOCK"

  outcome:
   $risk_score = 0
   $target_user = $e.target.user.userid

  condition:
    $e
}

Esta regla identifica los accesos bloqueados y proporciona el usuario asociado.

Cadena de reglas

Escribir una regla que use detecciones es casi lo mismo que escribir una regla que use la UDM, excepto que la fuente y los campos disponibles son diferentes. Para hacer referencia a un campo de detección, usa la palabra clave detection como fuente: $eventname.detection.field1.field2.

Los subcampos disponibles en la fuente detection se pueden encontrar en el recurso de colección.

A continuación, se indican los campos comunes en las colecciones

  • $d.detection.detection.rule_id

  • $d.detection.detection.detection_fields["match_var_name"]

  • $d.detection.detection.outcomes["outcome_name"]

La siguiente regla de ejemplo detecta accesos sin MFA, enumeración ni robo de datos.

rule login_enumeration_exfiltration {
    meta:
description = "Detects when a user logs in without multifactor authentication (MFA) and then performs enumeration and exfiltration"
        rule_name = "Login Without MFA, Enumeration, Exfiltration"
        severity = "High"

    events:
     // Detection with name "Console Login Without MFA"
        // The affected user is saved as $target_user
        $login_without_mfa.detection.detection.rule_name = /Console Login Without MFA/
        $target_user = $login_without_mfa.detection.detection.outcomes["target_user"]

     // Any detection with a rule name containing 'enumeration'
     // The user performing enumeration is the user that logged in without mfa
        $enumeration.detection.detection.rule_name = /enumeration/ nocase
        $enumeration.detection.detection.outcomes["principal_users"] = $target_user

     // Any detection with the mitre tactic 'TA0010' (Exfiltration)
     // The user performing exfiltration is the user that logged in without mfa
        $exfiltration.detection.detection.rule_labels["tactic"] = "TA0010"
        $exfiltration.detection.detection.outcomes["principal_users"] = $target_user

    match:
     // Looks for detections over a 24 hour period
        $target_user over 24h

    condition:
     // All 3 must occur for a single user
        $login_without_mfa and $enumeration and $exfiltration
}

Detecciones jerárquicas

La encadenación de reglas te permite crear un sistema de detección jerárquico. Las reglas de productores de nivel inferior identifican eventos sospechosos individuales. Luego, su salida se envía a reglas de encadenamiento o consumidor de nivel superior. Estas reglas correlacionan esta información con datos de otras fuentes para detectar patrones de ataque de varias etapas que las reglas de un solo evento podrían pasar por alto. Google Security Operations admite hasta tres niveles de encadenamiento, lo que proporciona un equilibrio entre la sofisticación de la detección y la complejidad manejable.

Por ejemplo:

  • Nivel 1: Las reglas de productor detectan eventos sospechosos individuales. Por ejemplo, accesos de archivos inusuales o intentos de acceso fallidos.

  • Nivel 2: Las reglas de encadenamiento correlacionan las detecciones de nivel 1. Por ejemplo, un acceso fallido seguido de un acceso a archivos sospechoso

  • Nivel 3: Las reglas de encadenamiento de nivel superior combinan las detecciones de nivel 2 y otros datos para lograr una detección aún más sofisticada. Por ejemplo, una detección de nivel 2 en relación con la autenticación y una detección de nivel 2 en relación con la postura de seguridad del dispositivo que se usa.

Consideraciones para cambiar las reglas de productores

Cuando se actualiza una regla de productor en una cadena de reglas, se crea una versión nueva de la regla de productor. Esto se aplica a las actualizaciones de lógica (condición, eventos y resultados) y a las actualizaciones de metadatos (nombre, descripción y gravedad). Las reglas de consumidores siguen funcionando con la versión nueva. Es importante probar las reglas de productores actualizadas y sus reglas de consumidores descendentes para garantizar el comportamiento deseado.