Prácticas recomendadas de búsqueda

Disponible en:

En este documento se describen las prácticas recomendadas de Google para usar la función Búsqueda en Google Security Operations. Las búsquedas pueden requerir una cantidad considerable de recursos computacionales si no se diseñan con cuidado. El rendimiento también varía en función del tamaño y la complejidad de los datos de tu instancia de Google SecOps.

Crear consultas de búsqueda eficaces

Cada condición debe tener el formato udm-field operator value.

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

Como Google SecOps puede ingerir una gran cantidad de datos durante una búsqueda, te recomendamos que minimices el periodo para acotar el ámbito y mejorar el rendimiento de la búsqueda.

Usar expresiones regulares en una consulta de búsqueda

Puede usar expresiones regulares al buscar datos:

  • Usa AND, OR y NOT.
  • AND se da por supuesto si no se incluye ningún otro operador.
  • Utiliza paréntesis para modificar el orden de precedencia. Se pueden usar un máximo de 169 operadores lógicos (OR, AND y NOT) entre paréntesis.
  • En función del tipo de campo, los operadores de campo pueden incluir lo siguiente: = != >= > < <=

También puedes usar las listas de referencia.

Usar nocase como modificador de búsqueda

nocase se puede usar como modificador para ignorar las mayúsculas y minúsculas.

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

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

No uses expresiones regulares en campos enumerados

No puedes usar expresiones regulares en campos enumerados (campos con un intervalo de valores predefinidos), como metadata.event_type o network.ip_protocol.

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

En cambio, la siguiente búsqueda es válida: (metadata.event_type = "NETWORK_CONNECTION" or metadata.event_type = "NETWORK_DHCP")

Usar todos los operadores en el campo Eventos

En Search, algunos campos están etiquetados como repetidos, lo que significa que contienen una lista de valores o tipos de mensajes. Los campos repetidos siempre se tratan con el operador any de forma predeterminada (no hay ninguna opción para especificar all).

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

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

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

Las marcas de tiempo usan la hora de la época de Unix

Los campos de marca de tiempo se comparan mediante el tiempo de época de Unix (el número de segundos transcurridos desde el jueves 1 de enero de 1970 a las 00:00:00).

Cuando busques una marca de tiempo específica, puedes usar lo siguiente (en tiempo de época):

metadata.ingested_timestamp.seconds = 1660784400

La siguiente marca de tiempo no es válida:

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

Hay determinados campos que se excluyen de los filtros, como los siguientes:

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

Como estos campos suelen contener valores únicos, pueden añadir detalles innecesarios, lo que puede reducir la eficacia de la búsqueda.

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