Descripción general de las estadísticas adaptadas al contexto
Google Security Operations te permite ver la telemetría, el contexto de la entidad, las relaciones y las vulnerabilidades como una sola detección dentro de tu cuenta de Google Security Operations. Proporciona contextualización de entidades para que puedas comprender los patrones de comportamiento en la telemetría y el contexto de las entidades afectadas a partir de esos patrones.
Ejemplos:
- Mostrar los permisos de una cuenta en la que se está intentando un acceso con fuerza bruta
- La importancia de los datos alojados en un recurso que también es la fuente de la actividad de red saliente.
Los clientes pueden usar esta contextualización para filtrar la detección, priorizar las alertas heurísticas, realizar el triaje y la investigación.
Los analistas de seguridad y los ingenieros de detección suelen trabajar para elaborar una detección en un patrón básico de telemetría de eventos (una conexión de red saliente), lo que crea numerosas detecciones para que sus analistas las clasifiquen. Los analistas intentan comprender qué sucedió para activar la alerta y qué tan significativa es la amenaza.
Los análisis contextuales incorporan funciones de enriquecimiento avanzadas antes en el flujo de trabajo de creación y ejecución de la detección, lo que te permite proporcionar las siguientes funciones adicionales:
- Poner a disposición el contexto relevante para la puntuación de riesgo contextual basada en heurísticas de las detecciones en el momento de la ejecución de la detección en lugar de la etapa de clasificación manual
- Reducir el tiempo dedicado a la priorización y reunir manualmente información de distintos sistemas de seguridad de TI (consolas de EDR, registros de firewall/proxy, contexto de IAM y CMDB, resultados de análisis de vulnerabilidades)
- Permitiendo que los analistas y los ingenieros de detección filtren grupos completos de amenazas que se esperan o representan poco o ningún peligro para la empresa (pruebas de malware en un entorno de zona de pruebas, vulnerabilidades y actividades anómalas en una red de desarrollo sin datos o acceso sensibles, y mucho más)
Cómo escribir reglas para obtener estadísticas contextuales
Puedes usar las reglas de Detection Engine para buscar datos del contexto de la entidad en tu cuenta de Google Security Operations.
Para buscar datos de contexto de la entidad, completa lo siguiente:
Especifica una fuente con la udm o la entidad.
$eventname.[<source>].field1.field2
Para el contexto de una entidad, <source> es "graph". Para un evento de la AUA, <source> es "udm". Si se omite, el valor predeterminado de <source> es udm.Especifica los datos de la entidad:
$e1.graph.entity.hostname = "my-hostname"
$e1.graph.entity.relations.relationship = "OWNS"
Especificar los datos de eventos de UDM Las siguientes instrucciones son equivalentes.
$e1.udm.principal.asset_id = "my_asset_id"
$e1.principal.asset_id = "my_asset_id"
Puedes crear muchos de los mismos tipos de reglas para los contextos de entidades que lo harías para eventos de UDM, incluidas las siguientes:
Varias reglas de eventos
Comparación de contextos de entidades con otros contextos de entidades
Comparación de contextos de entidades con eventos de UDM
Campos repetidos en contextos de entidades
Ventanas deslizantes
Cómo calcular una puntuación de riesgo para detecciones
A diferencia de un evento de UDM, el contexto de una entidad no tiene una marca de tiempo específica. Cada registro de contexto de entidad tiene un intervalo de tiempo, entity.metadata.interval, más de el contexto de la entidad es válido. Este intervalo de tiempo puede no ser un límite de día y puede tener cualquier duración.
Un evento de la AUA se correlacionará con un registro de contexto de entidad solo cuando la marca de tiempo del evento de la AUA esté dentro del intervalo de tiempo del registro de contexto de la entidad. Si no se cumple esta condición, la UDM y la entidad no se evalúan para detecciones de los datos. El motor de detección aplica esto de forma implícita, y no es necesario especificarlo como una condición en una regla.
- Cuando se comparan los eventos de la AUA con un contexto de entidad con ventanas, este último representa un valor constante durante un período especificado.
- Si hay buckets de días adyacentes en los que el contexto de la entidad cambia su valor, Google Security Operations intenta establecer una coincidencia con todos los valores del contexto de la entidad y muestra todas las coincidencias que se encuentren.
Ejemplos de reglas
Cómo buscar entidades con contexto de administrador
La siguiente regla busca entidades que también estén vinculadas a privilegios de administrador. Busca momentos en los que una persona con privilegios de administrador intentó acceder al sistema o salir de él.
rule LoginLogout {
meta:
events:
($log_inout.metadata.event_type = "USER_LOGIN" or $log_inout.metadata.event_type = "USER_LOGOUT")
$log_inout.principal.user.user_display_name = $user
$context.graph.entity.user.user_display_name = $user
$context.graph.entity.resource.attribute.roles.type = "ADMINISTRATOR"
match:
$user over 2m
condition:
$log_inout and $context
}
Ejemplo de ventana deslizante
El siguiente ejemplo de ventana deslizante es válido.
rule Detection {
meta:
events:
$e1.graph.entity.hostname = $host
$e2.udm.principal.hostname = $host
match:
// Using e2 (a UDM event) as a pivot.
$host over 3h after $e2
condition:
$e1 and $e2
}
Ejemplo de ventana deslizante no válida
El siguiente ejemplo de ventana deslizante no es válido. El contexto de la entidad no se puede usar como una tabla dinámica para una ventana deslizante.
rule Detection {
meta:
events:
$e1.graph.entity.hostname = $host
$e2.udm.principal.hostname = $host
match:
// Attempting to use $e1 (an entity context) as a pivot. Invalid.
$host over 3h after $e1
condition:
$e1 and $e2
}
Ejemplo de acceso con la sección de resultados
En el siguiente ejemplo, se usa la sección outcome
para calcular una puntuación de riesgo para
la detección.
rule Detection {
meta:
events:
$auth.metadata.event_type = "USER_LOGIN"
$auth.metadata.vendor_name = "Acme"
$auth.metadata.product_name = "Acme SSO"
$auth.target.user.userid = $user
$auth.target.user.termination_date.seconds > 0
$auth.metadata.event_timestamp.seconds >
$context.graph.entity.user.termination_date.seconds
$context.graph.metadata.vendor_name = "Microsoft"
$context.graph.metadata.product_name = "Azure Active Directory"
$context.graph.metadata.entity_type = "USER"
$context.graph.entity.user.userid = $user
$context.graph.entity.user.termination_date.seconds > 0
match:
$user over 15m
outcome:
$risk_score = max(
if ( $auth.metadata.event_type = "USER_LOGIN", 50) +
if (
$context.graph.entity.user.title = "Remote" nocase or
$context.graph.entity.user.title = "Temp" nocase or
$context.graph.entity.user.title = "Vendor" nocase, 40) +
if ( $context.graph.entity.user.title = "Legal" nocase, 10)
)
condition:
$auth and $context
}
Ejemplo de inicio de proceso sospechoso
El siguiente ejemplo evalúa los datos del proceso de eventos de UDM en comparación con los datos del contexto de IOC se almacena como contexto de entidad.
rule ProcessLaunch {
meta:
events:
$ioc.graph.metadata.vendor_name = "ACME"
$ioc.graph.metadata.product_name = "IOCs"
$ioc.graph.metadata.entity_type = "FILE"
$ioc.graph.entity.file.sha256 = $hash
$process.metadata.event_type = "PROCESS_LAUNCH"
$process.principal.hostname = $hostname
(
not $process.target.process.file.sha256 = "" and
$process.target.process.file.sha256 = $hash
)
match:
$hash over 15m
condition:
$ioc and $process
}
Calificadores adicionales para el contexto de la entidad
Para crear una variable de evento que use un contexto de entidad, debes proporcionar un <source>
después del nombre del evento. El <source>
debe ser graph
.
El siguiente patrón hace referencia al contexto de una entidad:
$e.graph.entity.hostname
Ten en cuenta que existen dos métodos equivalentes para hacer referencia a un evento de UDM:
$u.udm.principal.asset_id
$u.principal.asset_id
Puedes combinar todos estos calificadores en el texto de la regla. También puedes usar diferentes calificadores para el mismo evento.
Sección de resultados
El motor de detección admite una sección outcome
que te permite derivar más
información de una regla. Se evalúa la lógica definida en la sección outcome
con cada detección. Si una regla genera N detecciones, cada una de las N detecciones puede
un conjunto de resultados diferente.
Puedes encontrar un ejemplo de regla que usa la sección outcome
aquí.
Puedes encontrar información detallada sobre el uso y la sintaxis de una sección de outcome
en esta sección.
Sección de resultados y detección de anulación de duplicación / agrupación de detección
Para las reglas con una sección de coincidencia, recuerda que las detecciones se “agrupan por” el variables de coincidencia. Esto hace que se quiten las duplicaciones de las detecciones, de modo que se devuelva una fila para cada conjunto único de variables de coincidencia y período.
Las variables de resultado se ignoran cuando se realiza esta anulación de duplicación. Por lo tanto, si hay dos detecciones diferentes con los mismos valores para las variables de coincidencia y la ventana de tiempo, pero con diferentes valores para las variables de resultado, estos se anulará la duplicación y solo verás una detección. Esto puede ocurrir cuando un se creó la detección debido a la llegada de datos tardíos, por ejemplo. Aquí hay un ejemplo que ilustre este caso.
rule ExampleOutcomeRule {
...
match:
$hostname over <some window>
outcome:
$risk_score = <some logic here>
...
}
Esta regla da como resultado las siguientes coincidencias:
Detección 1: nombre de host: nombre-de-host-prueba margen de tiempo: [t1, t2] puntuación_riesgo: 10
Detección 2: hostname: test-hostname time window: [t1, t2] risk_score: 73
Debido a que las variables de coincidencia y el período son iguales para Detección 1 y Detección 2, se anulan los duplicados, y solo ven una detección, a pesar de que la variable de resultado, analytics_score, es diferente.
¿Qué sigue?
Para obtener información sobre cómo Google Security Operations transfiere datos contextuales y enriquece las entidades, consulta Cómo Google Security Operations enriquece los datos de eventos y entidades