Prácticas recomendadas para la búsqueda

Compatible con:

En este documento, se describen las prácticas recomendadas que recomienda Google para usar la función Búsqueda en Google Security Operations. Las búsquedas pueden requerir recursos de procesamiento sustanciales si no se construyen con cuidado. El rendimiento también varía según el tamaño y la complejidad de los datos en tu instancia de Google SecOps.

Usa campos de UDM indexados para obtener la máxima velocidad

La forma más eficaz de mejorar el rendimiento de la búsqueda es crear consultas con campos indexados. Estos campos están optimizados para una recuperación rápida. Los campos conocidos del modelo de datos unificado (UDM) que se indexan son los siguientes:

Campos principales

  • principal.asset.hostname
  • principal.asset.ip
  • principal.asset.mac
  • principal.file.md5
  • principal.file.sha1
  • principal.file.sha256
  • principal.hostname
  • principal.ip
  • principal.mac
  • principal.process.file.md5
  • principal.process.file.sha1
  • principal.process.file.sha256
  • principal.process.parent_process.file.md5
  • principal.process.parent_process.file.sha1
  • principal.process.parent_process.file.sha256
  • principal.user.email_addresses
  • principal.user.product_object_id
  • principal.user.userid
  • principal.user.windows_sids

Campos de origen

  • source.user.userid
  • src.asset.hostname
  • src.hostname
  • src.ip

Campos objetivo

  • target.asset.hostname
  • target.file.md5
  • target.file.sha1
  • target.file.sha256
  • target.hostname
  • target.ip
  • target.process.file.md5
  • target.process.file.sha1
  • target.process.file.sha256
  • target.user.email_addresses
  • target.user.product_object_id
  • target.user.userid
  • target.user.windows_sid

Campos adicionales

  • about.file.md5
  • about.file.sha1
  • about.file.sha256
  • intermediary.hostname
  • intermediary.ip
  • network.dns.questions.name
  • network.email.from
  • network.email.to
  • observer.hostname
  • observer.ip

Crea búsquedas eficaces para el rendimiento

Escribir consultas optimizadas es clave para maximizar la velocidad y minimizar el consumo de recursos en todos tus datos de seguridad. Todas las condiciones de la búsqueda deben cumplir estrictamente esta estructura fundamental:

udm-field operator value

Por ejemplo: principal.hostname = "win-server"

Dado que Google SecOps puede transferir una gran cantidad de datos durante una búsqueda, debes minimizar el período de tu consulta para reducir el alcance y mejorar el rendimiento de la búsqueda.

Usa expresiones regulares en la búsqueda

Puedes usar operadores lógicos y de comparación estándar cuando construyas tus consultas de búsqueda de UDM para crear expresiones complejas:

  • Operadores lógicos:Usa AND, OR y NOT para combinar condiciones. Se supone que es AND si omites un operador entre dos condiciones.
  • Prioridad de los operadores: Usa paréntesis () para anular el orden de prioridad predeterminado. Hay un límite máximo de 169 operadores lógicos (OR, AND, NOT) que puedes usar dentro de los paréntesis.
  • Operadores de comparación: Según el tipo de campo del UDM (cadena, número entero, marca de tiempo), los operadores de campo pueden incluir los siguientes: =, !=, >=, >, <, <=

Como alternativa, para buscar de manera eficiente un gran conjunto de valores, puedes usar las listas de referencia.

Usa nocase como modificador de búsqueda

Puedes agregar el modificador nocase a una condición de comparación de cadenas para que la búsqueda no distinga entre mayúsculas y minúsculas, lo que significa que se ignoran las mayúsculas.

Por ejemplo, la siguiente búsqueda no es válida:

target.user.userid = "TIM.SMITH" nocase

Evita usar expresiones regulares en campos enumerados

No puedes usar expresiones regulares cuando buscas campos enumerados (campos con un rango de valores predefinidos) como metadata.event_type o network.ip_protocol.

El siguiente ejemplo es una búsqueda no válida: metadata.event_type = /NETWORK_*/

En cambio, el siguiente ejemplo es una búsqueda válida: (metadata.event_type = "NETWORK_CONNECTION" o metadata.event_type = "NETWORK_DHCP")

Usar todos los operadores en el campo Eventos

En Search, algunos campos del UDM (como principal.ip o target.file.md5) se etiquetan como repetidos, ya que pueden contener una lista de valores o tipos de mensajes dentro de un solo evento. Los campos repetidos siempre se tratan con el operador any de forma predeterminada (no hay opción para especificar all).

Cuando se usa el operador any, el predicado se evalúa como true si algún valor del campo repetido satisface la condición. Por ejemplo, si buscas principal.ip != "1.2.3.4" y los eventos en tu búsqueda incluyen principal.ip = "1.2.3.4" y principal.ip = "5.6.7.8", se generará una coincidencia. Esto expande tu búsqueda para incluir resultados que coincidan con cualquiera de los operadores, en lugar de todos.

Cada elemento del campo repetido se trata de forma individual. Si el campo repetido se encuentra en los eventos de la búsqueda, los eventos se evalúan para cada elemento del campo. Esto puede provocar un comportamiento inesperado, especialmente cuando se busca con el operador !=.

Cuando se usa el operador any, el predicado se evalúa como true si algún valor del campo repetido satisface la condición.

Usa la hora de época Unix para las marcas de tiempo

Los campos de marca de tiempo se correlacionan con la hora de la época de Unix (la cantidad total de segundos que transcurrieron desde el jueves 1 de enero de 1970 a las 00:00:00 UTC).

Cuando buscas una marca de tiempo específica, lo siguiente (en tiempo de época) es válido:

metadata.ingested_timestamp.seconds = 1660784400

La siguiente marca de tiempo no es válida:

metadata.ingested_timestamp = "2022-08-18T01:00:00Z"

Cómo excluir campos de los filtros

Los siguientes campos se excluyen intencionalmente de los filtros de búsqueda. Si bien contienen metadatos cruciales, sus valores altamente únicos pueden introducir detalles de búsqueda innecesarios y reducir la eficiencia y la eficacia generales del motor de búsqueda:

  • metadata.id
  • metadata.product_log_id
  • *.timestamp

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