Detecciones compuestas

Disponible en:

La detección compuesta te permite interconectar reglas para que la salida de una regla actúe como entrada de otra. Esta función te permite crear reglas más complejas y flexibles. Al correlacionar y analizar eventos de diferentes fuentes de datos y periodos, la detección compuesta supera las limitaciones de la detección de eventos aislados.

Ventajas de la detección compuesta

  • Descubrir ataques de varias fases: los ciberataques suelen tener varias facetas 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 brecha inicial, seguida de una elevación de privilegios y una filtración de datos.

  • Reducir la fatiga de alertas: prioriza las amenazas críticas y reduce la fatiga de alertas implementando reglas de consumidor. Estas reglas consolidan y filtran las alertas ruidosas generadas por las reglas de entrada, lo que permite centrar la respuesta, priorizar los incidentes de gran impacto y minimizar la fatiga por alertas.

  • Mejorar la precisión de la detección: combina las estadísticas de los eventos de 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.

  • Simplificar la lógica compleja: desglosar escenarios de detección complejos en reglas gestionables, interconectadas y reutilizables para agilizar el desarrollo y el mantenimiento.

Términos y conceptos de la detección compuesta

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

  • Compuesto: una serie de reglas interconectadas en las que el resultado de una regla sirve de entrada para la siguiente. Por ejemplo, en la secuencia de reglas compuestas rule1 -> rule2 -> rule3, las detecciones generadas por rule1 se transfieren a rule2, que las procesa para generar nuevas detecciones. rule3 usa estas detecciones para generar su resultado final.

  • Regla de entrada: 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: 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 un solo evento

Google SecOps no permite 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

Te recomendamos que solo crees reglas compuestas a partir de reglas de entrada de un solo evento debido al comportamiento de la programación. 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

Si pruebas o ejecutas una búsqueda retrospectiva en una regla compuesta, solo se ejecutará la regla específica que hayas seleccionado con las detecciones existentes. Para ejecutar toda la composite, debe iniciar manualmente las búsquedas retrospectivas desde la primera regla de la secuencia, esperar a que termine cada ejecución y, a continuación, pasar a la siguiente regla.

Al ejecutar una prueba en una regla, las detecciones no se conservan ni se escriben en la base de datos, y las reglas compuestas requieren que las detecciones de entrada estén en la base de datos.

Al ejecutar una prueba en una regla, las detecciones no se conservan ni se escriben en la base de datos. Como las reglas compuestas requieren que las detecciones de entrada estén en la base de datos para funcionar, no puedes usar TestRule para validar una regla compuesta.

Crear reglas compuestas

Las reglas compuestas se crean mediante 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, sigue estos pasos:

  1. Crea una regla o reutiliza una que ya tengas.

  2. Inhabilita las alertas. De esta forma, se evita que estas reglas de entrada generen alertas individuales. Con esta configuración, puede priorizar las alertas más críticas generadas por 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 inicios de sesión 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 inicios de sesión que están bloqueados y proporciona el usuario asociado.

Reglas compuestas

Escribir una regla que use detecciones es prácticamente 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 origen: $eventname.detection.field1.field2.

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

Estos son los campos habituales de 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 inicios de sesión sin MFA, enumeración y exfiltració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. Las reglas compuestas de nivel superior consumen la salida de estas reglas de entrada para establecer correlaciones entre el 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 ataque de varias fases 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 gestionable.

Por ejemplo:

  • Nivel 1: las reglas de entrada detectan eventos sospechosos concretos. Por ejemplo, eventos de inicio de sesión fallidos o acceso inusual a archivos.

  • Nivel 2: las reglas compuestas correlacionan las detecciones de nivel 1. Por ejemplo, eventos de inicio de sesión fallido seguidos de un acceso sospechoso a un archivo.

  • Nivel 3: las reglas compuestas de nivel superior combinan detecciones de nivel 2 y otros datos para ofrecer 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 está usando.

Consideraciones al escribir reglas compuestas

Cuando actualizas una regla de entrada que se usa en una o varias 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 y outcomes) como a las de metadatos (nombre, descripción y gravedad). Las reglas compuestas seguirán funcionando con la nueva versión. Te recomendamos que pruebes las reglas de entrada actualizadas y sus reglas compuestas posteriores para asegurarte de que funcionan como esperas.

Limitaciones

Las reglas compuestas tienen las siguientes limitaciones.

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

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

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