Implementa uniones sin una sección de coincidencias

Compatible con:

En este documento, se explica el concepto de operaciones de unión sin una sección match ni una unión de datos en la Búsqueda de Google Security Operations.

Puedes usar operaciones de unión para correlacionar y combinar datos sin procesar de varias fuentes según los valores de campos comunes. Si combinas los eventos y las entidades de seguridad relacionados en una sola vista integral, puedes proporcionar una detección e investigación de amenazas más eficaces.

A diferencia de las uniones estadísticas, que requieren una sección match para agregar los resultados, una unión de datos recupera los datos completos de eventos o entidades y los muestra sin ninguna agregación.

Cómo funcionan las uniones de datos

Puedes crear una unión de datos correlacionando campos comunes en diferentes bloques de eventos o entidades. Puedes hacerlo con uno de los siguientes métodos:

  • Equiparar directamente los campos (por ejemplo, $e1.principal.hostname = $e2.principal.hostname)

  • Asigna ambos campos a la misma variable de marcador de posición (por ejemplo, $host = $e1.principal.hostname y $host = $e2.principal.hostname).

En ambos casos, la Búsqueda une de forma implícita los bloques en los que los valores de esos campos son idénticos.

Tipos de unión de datos admitidos

Puedes usar los siguientes tipos de unión de datos en tus búsquedas:

  • Uniones de evento a evento: Correlacionan datos entre dos tipos de eventos diferentes del Modelo de datos unificado (UDM).

  • Uniones de evento a ECG: Enriquecen los datos de eventos del UDM con información del Entity Context Graph (ECG).

Uniones de evento a evento

Las uniones de evento a evento son ideales para correlacionar campos entre dos tipos de eventos del UDM distintos. Esto es útil para encontrar secuencias de eventos o acciones que involucran las mismas entidades en diferentes fuentes de registros o tipos de eventos.

En el siguiente ejemplo de consulta, se encuentran todas las conexiones de red (NETWORK_CONNECTION) que se originan en un host en el que también se produjo un acceso de usuario (USER_LOGIN):


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the
  $host placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

Limitaciones

  • Puedes unirte a un máximo de dos eventos.

  • El intervalo de tiempo de la consulta se limita a un máximo de 14 días.

  • El límite de consultas es de 120 por hora (QPH).

Ejemplos

En el siguiente ejemplo de consulta, se encuentran todas las conexiones de red (NETWORK_CONNECTION) que se originan en un host en el que también se produjo un acceso de usuario (USER_LOGIN):


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the $host
  placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

Unión por ID de usuario


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.user.userid = $user

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.user.userid = $user

Unirse con la dirección IP


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.ip = $ip

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.ip = $ip

Uniones del gráfico de contexto de evento a entidad

Las uniones de evento a ECG son ideales para enriquecer los eventos del UDM con datos contextuales sobre las entidades involucradas (como recursos y usuarios) del ECG. Esta unión proporciona un panorama más completo, ya que combina los datos de eventos en tiempo real con la información histórica y relacional de las entidades.

Limitaciones

  • El intervalo de tiempo de la consulta se limita a un máximo de 14 días.

  • El límite de consultas es de 120 QPH.

  • Se puede unir un máximo de dos eventos de UDM en la consulta.

  • Se puede unir un máximo de un evento de ECG en la consulta.

  • No se admite la exportación a una tabla de datos para las consultas de unión de eventos a ECG.

  • No se admiten las uniones de ECG a ECG.

  • No se admiten las uniones de ECG a tablas de datos.

Ejemplos

Esta consulta enriquece los eventos de conexión de red con información de activos del ECG a través de una unión en el nombre de host.


  // Find network connections and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e1.principal.asset.hostname

  // Find asset entities in the graph and join where the hostname matches the
  $host placeholder

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.asset.hostname

Unirse por dirección IP con un tipo de registro específico


  $ip = $e1.principal.ip

  $ip = $g1.graph.entity.ip

  $e1.metadata.log_type = "WINDOWS_DEFENDER_ATP"

  $g1.graph.entity.ip = "10.19.6.24"

Unión en el nombre de host con un filtro de IP específico


  $e1.metadata.event_type = "FILE_CREATION"

  $host = $e1.principal.hostname

  $e1.principal.ip = "10.0.0.76"

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.hostname

Prácticas recomendadas

Para evitar el rendimiento lento y los tiempos de espera de las consultas, usa filtros específicos y estrechos dentro de cada bloque ($e1, $e2, $g1) en tus consultas de unión.

Por ejemplo, una búsqueda amplia como la siguiente:

$e1.metadata.event_type = "USER_LOGIN"
$e2.metadata.event_type = "NETWORK_CONNECTION"
right join $e1.principal.hostname = $e2.principal.hostname

Se puede optimizar agregando los siguientes criterios específicos:


$e1.metadata.event_type = "USER_LOGIN"
$e1.principal.ip = "192.168.1.101"
$e1.principal.user.userid = "alex"
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.src.hostname = "altostrat.com"
right join $e1.principal.hostname = $e2.principal.hostname

Trabaja con los resultados

Los resultados de una unión de datos se muestran en una tabla de Uniones, incluidos los campos combinados de ambos eventos correlacionados. Esta tabla difiere de una vista de estadísticas, ya que proporciona los datos completos del evento o la entidad, y no un recuento agregado.

Después de ejecutar una consulta, puedes trabajar con los resultados de las siguientes maneras:

  • Descargar como CSV: Exporta el conjunto de resultados completo a un archivo CSV para realizar un análisis sin conexión.

  • Exportar a tablas de datos: Guarda los resultados en una tabla de datos dentro de tu instancia para consultarlos o realizar correlaciones adicionales (solo para las uniones de evento a evento).

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