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.
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"
Cómo limitar el intervalo de tiempo de la búsqueda
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
yNOT
para combinar condiciones. Se supone que esAND
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.