Prácticas recomendadas para la búsqueda
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.
Cómo crear búsquedas eficaces
Cada condición debe tener el formato udm-field operator value
.
Por ejemplo: principal.hostname = "win-server"
Cómo limitar el intervalo de tiempo de la búsqueda
Dado que Google SecOps puede ingerir una gran cantidad de datos durante una búsqueda, se recomienda que minimices el período para reducir el alcance y mejorar el rendimiento de la búsqueda.
Usa expresiones regulares en la búsqueda
Puedes usar expresiones regulares cuando busques datos:
- Usa
AND
,OR
yNOT
. - Se supone que
AND
está presente en ausencia de los otros operadores. - Usa paréntesis para modificar el orden de prioridad. Se puede usar un máximo de 169 operadores lógicos (
OR
,AND
yNOT
) dentro de los paréntesis. - Según el tipo de campo, los operadores de campo pueden incluir lo siguiente:
= != >= > < <=
Como alternativa, puedes usar las listas de referencia.
Usa nocase
como modificador de búsqueda
nocase
se puede usar como modificador para ignorar el uso de mayúsculas.
Por ejemplo, la siguiente búsqueda no es válida:
target.user.userid = "TIM.SMITH" nocase
No uses expresiones regulares para los campos enumerados
No puedes usar expresiones regulares para los 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.eventtype = /NETWORK*/
En cambio, el siguiente ejemplo es una búsqueda 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 se etiquetan 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 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 satisface la condición. Por ejemplo, si buscas principal.ip != "1.2.3.4"
y los eventos en tu búsqueda incluyen tanto principal.ip = "1.2.3.4"
como 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 causar un comportamiento inesperado, en especial cuando se busca con el operador !=
.
Cuando se usa el operador any
, el predicado se evalúa como verdadero si algún valor del campo repetido satisface la condición.
Las marcas de tiempo usan la hora de Unix
Los campos de marca de tiempo se correlacionan con la hora de la época Unix (cantidad de segundos transcurridos desde el jueves 1 de enero de 1970 a las 00:00:00).
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"
Hay ciertos campos que se excluyen de los filtros, incluidos los siguientes:
metadata.id
metadata.product_log_id
*.timestamp
Dado que estos campos suelen contener valores únicos, pueden agregar detalles innecesarios, lo que puede reducir la eficacia de la búsqueda.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.