Detecciones compuestas

Compatible con:

La detección compuesta te permite interconectar reglas para que el resultado de una regla actúe como entrada para otra. Esta capacidad te permite crear reglas con mayor complejidad y flexibilidad. Al correlacionar y analizar eventos en diferentes fuentes de datos y períodos, la detección compuesta supera las limitaciones de la detección de eventos aislados.

Beneficios de la detección compuesta

  • Unmasking Multi-Stage Attacks: Los ciberataques suelen ser multifacéticos y estar interconectados. La detección compuesta ayuda a revelar la narrativa del ataque vinculando incidentes aparentemente aislados. Por ejemplo, una regla compuesta puede identificar toda la secuencia de ataque, como una vulneración inicial, seguida de una elevación de privilegios y una robo de datos.

  • Cómo reducir la fatiga por alertas: Prioriza las amenazas críticas y mitiga la fatiga por alertas implementando reglas para el consumidor. Estas reglas consolidan y filtran las alertas ruidosas que generan las reglas de entrada, lo que permite una respuesta más enfocada que puede ayudar a priorizar los incidentes de alto impacto y minimizar la fatiga por alertas.

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

  • Simplificación de la lógica compleja: Desglosa 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 detección compuesta

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

  • Compuesta: Es una serie de reglas interconectadas en la que el resultado de una regla sirve como entrada para la siguiente. Por ejemplo, en la secuencia de reglas compuestas rule1 -> rule2 -> rule3, las detecciones que genera rule1 se pasan a rule2, que las procesa para generar nuevas detecciones. rule3 luego usa estas detecciones para producir su resultado final.

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

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

Conceptos avanzados

Reglas de detección de eventos únicos

Las Operaciones de seguridad de Google no permiten reglas compuestas de un solo evento. Esto significa que cualquier regla que use detecciones como fuente de entrada debe tener una sección match.

Latencia de detección

Debido al comportamiento de la programación, recomendamos crear reglas compuestas solo en reglas de entrada de un solo evento. Las reglas de un solo evento se ejecutan casi en tiempo real, por lo que sus detecciones suelen estar disponibles cuando se ejecuta la regla compuesta. Si una regla compuesta depende de una regla de varios eventos como entrada, existe el riesgo de que la regla de entrada se ejecute después de la ejecución programada de la regla compuesta. Esto puede provocar retrasos o detecciones perdidas en la regla compuesta.

TestRule y Retrohunt

Probar o ejecutar una búsqueda retroactiva en una regla compuesta solo ejecuta la regla específica que seleccionaste con las detecciones existentes. Para ejecutar el compuesto completo, debes iniciar manualmente las búsquedas retroactivas desde la primera regla de la secuencia, esperar a que finalice cada ejecución y, luego, continuar con la siguiente regla.

La ejecución de una prueba en una regla no conserva ni escribe las detecciones en la base de datos, y las reglas compuestas requieren que las detecciones de entrada existan en la base de datos.

La ejecución de una prueba en una regla no persiste ni escribe las detecciones en la base de datos. Dado que las reglas compuestas requieren que las detecciones de entrada existan en la base de datos para funcionar, no puedes usar TestRule para validar una regla compuesta.

Cómo construir reglas compuestas

Puedes crear reglas compuestas con combinaciones de reglas de entrada y reglas compuestas.

Reglas de entrada

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

  1. Crea una regla nueva o reutiliza una existente.

  2. Inhabilita las alertas. Esto evita que estas reglas de entrada generen alertas individuales. Con esta configuración, puedes priorizar las alertas más críticas que generan las reglas compuestas, 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 intentos de acceso fallidos.

rule failed_login {
  meta:

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

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

  condition:
    $e
}

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

Reglas compuestas

Escribir una regla que use detecciones es casi igual que escribir una regla que use 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 los accesos sin MFA, la enumeración y la filtración.

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 detección compuesta te permite crear un sistema de detección jerárquico. Las reglas de entrada de nivel inferior identifican eventos sospechosos aislados. Luego, las reglas compuestas de nivel superior consumen el resultado de estas reglas de entrada para correlacionar los datos a lo largo del tiempo, las entidades y las fuentes de datos. Este enfoque ayuda a correlacionar esta información con datos de otras fuentes para detectar patrones de ataques de varias etapas que las reglas de un solo evento podrían pasar por alto.

Google Security Operations admite hasta tres niveles de composición, lo que proporciona un equilibrio entre la lógica de detección profunda y la complejidad administrable.

Por ejemplo:

  • Nivel 1: Las reglas de entrada detectan eventos sospechosos individuales. Por ejemplo, eventos de acceso fallidos o acceso inusual a archivos.

  • Nivel 2: Las reglas compuestas correlacionan las detecciones de nivel 1. Por ejemplo, eventos de acceso fallidos seguidos de acceso sospechoso a archivos.

  • Nivel 3: Las reglas compuestas 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 relacionada con la autenticación y una detección de nivel 2 relacionada con la postura de seguridad del dispositivo que se usa.

Consideraciones para escribir reglas compuestas

Cuando actualizas una regla de entrada que se usa en una o más reglas compuestas, el sistema crea automáticamente una nueva versión de esa regla de entrada. Esto se aplica tanto a las actualizaciones de lógica (condition, events, outcomes) como a las actualizaciones de metadatos (nombre, descripción, gravedad). Las reglas compuestas seguirán funcionando con la versión nueva. Te recomendamos que pruebes las reglas de entrada actualizadas y sus reglas compuestas posteriores para asegurarte de que se cumpla el comportamiento previsto.

Limitaciones

Las reglas compuestas tienen las siguientes limitaciones.

Reglas solo de detección y puntuación de riesgo de entidad

Las reglas de solo detección (reglas que solo usan datos de detección como fuente y no datos de eventos o entidades) no contribuyen a la puntuación de riesgo de la entidad. Cualquier puntuación de riesgo que se establezca para una regla de solo detección se aplica únicamente a las detecciones creadas por esa regla. No contribuirá a ninguna puntuación de riesgo de entidad agregada.

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.