Práticas recomendadas de pesquisa
Este documento descreve as práticas recomendadas do Google para usar o recurso Pesquisa no Google Security Operations. As pesquisas podem exigir muitos recursos computacionais se não forem criadas com cuidado. O desempenho também varia de acordo com o tamanho e a complexidade dos dados na sua instância do Google SecOps.
Criar consultas de pesquisa eficientes
Cada condição precisa estar no formato udm-field operator value
.
Por exemplo:
principal.hostname = "win-server"
Restringir o período da pesquisa
Como o Google SecOps pode ingerir uma grande quantidade de dados durante uma pesquisa, recomendamos que você minimize o período para restringir o escopo e melhorar o desempenho da pesquisa.
Usar expressões regulares na consulta de pesquisa
Você pode usar expressões regulares ao pesquisar dados:
- Use
AND
,OR
eNOT
. AND
é presumido na ausência dos outros operadores.- Use parênteses para modificar a ordem de precedência. Há um limite máximo de 169 operadores lógicos (
OR
,AND
eNOT
) que podem ser usados nos parênteses. - Dependendo do tipo de campo, os operadores podem incluir:
= != >= > < <=
Como alternativa, use as listas de referência.
Usar nocase
como um modificador de pesquisa
nocase
pode ser usado como um modificador para ignorar o uso de maiúsculas.
Por exemplo, a pesquisa a seguir é inválida:
target.user.userid = "TIM.SMITH" nocase
Não use expressões regulares para campos enumerados
Não é possível usar expressões regulares em campos enumerados (campos com um intervalo de valores predefinidos), como metadata.event_type
ou network.ip_protocol
.
O exemplo a seguir é uma pesquisa inválida:
metadata.eventtype = /NETWORK*/
Já o exemplo a seguir é uma pesquisa válida:
(metadata.event_type = "NETWORK_CONNECTION" or
metadata.event_type = "NETWORK_DHCP")
Usar qualquer operador no campo "Eventos"
Em Pesquisa, alguns campos são rotulados como repetidos, o que significa que eles contêm uma lista
de valores ou tipos de mensagens. Os campos repetidos são sempre tratados com o operador any
por padrão. Não há opção para especificar all
.
Quando o operador any
é usado, o predicado é avaliado como verdadeiro se qualquer valor
no campo repetido satisfizer a condição. Por exemplo, se você pesquisar
principal.ip != "1.2.3.4"
e os eventos na sua pesquisa incluírem
principal.ip = "1.2.3.4"
e principal.ip = "5.6.7.8"
, uma correspondência será gerada. Isso expande sua pesquisa para incluir resultados que correspondem a qualquer um dos operadores, em vez de todos eles.
Cada elemento no campo repetido é tratado individualmente. Se o campo repetido for encontrado em eventos na pesquisa, eles serão avaliados para cada elemento no campo. Isso pode causar um comportamento inesperado, principalmente ao pesquisar usando o operador !=
.
Ao usar o operador any
, o predicado é avaliado como verdadeiro se algum valor
no campo repetido satisfizer a condição.
Os carimbos de data/hora usam o tempo da época Unix
Os campos de carimbo de data/hora são correspondidos usando o horário da época Unix (número de segundos que se passaram desde quinta-feira, 1º de janeiro de 1970, às 00h00m00s).
Ao pesquisar um carimbo de data/hora específico, o seguinte (em tempo de época) é válido:
metadata.ingested_timestamp.seconds = 1660784400
O carimbo de data/hora a seguir é inválido:
metadata.ingested_timestamp = "2022-08-18T01:00:00Z"
Alguns campos são excluídos dos filtros, incluindo os seguintes:
metadata.id
metadata.product_log_id
*.timestamp
Como esses campos geralmente contêm valores únicos, eles podem adicionar detalhes desnecessários, o que pode reduzir a eficácia da pesquisa.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.