Práticas recomendadas de pesquisa para UDM
Este documento descreve as práticas recomendadas pelo Google para realizar usando a pesquisa UDM. As pesquisas do UDM podem exigir recursos computacionais substanciais para serem concluídas se não forem criadas com cuidado. O desempenho também varia de acordo com o tamanho e a complexidade dos dados em suas Instância do Google Security Operations.
Construção básica de uma pesquisa UDM
Cada condição deve estar na forma de
udm-field operator value
:
Por exemplo:
principal.hostname = "win-server"
Otimize o intervalo de tempo da sua pesquisa do UDM
Sempre tente limitar o intervalo de tempo ao mínimo necessário. As Operações de segurança do Google podem ingerir uma quantidade enorme de dados, amplitude desses dados durante a realização de uma pesquisa pode melhorar substancialmente a pesquisa desempenho.
Como usar expressões regulares com a pesquisa do UDM
É possível usar expressões regulares ao realizar pesquisas do UDM:
- Use
AND
,OR
eNOT
. AND
é usado 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 de campo podem incluir:
= != >= > < <=
Como alternativa, também é possível usar o listas de referência.
Usar nocase como modificador de pesquisa
nocase
pode ser usado como um modificador para ignorar a diferenciação entre maiúsculas e minúsculas.
Por exemplo, a pesquisa a seguir é inválida:
target.user.userid = "TIM.SMITH" nocase
As expressões regulares não funcionam para campos enumerados
Não é possível usar expressões regulares para campos enumerados (campos com um intervalo de
valores predefinidos), como metadata.event_type
ou
network.ip_protocol
.
Por exemplo, a pesquisa a seguir é inválida:
metadata.eventtype = /NETWORK*/
No entanto, a pesquisa a seguir é válida (e se aproxima do que foi tentado acima):
(metadata.event_type = "NETWORK_CONNECTION" or
metadata.event_type = "NETWORK_DHCP")
Usar qualquer operador no campo "Eventos"
Na pesquisa UDM, alguns campos são rotulados como repetidos, o que significa que são listas.
de valores ou outros tipos de mensagens. Ao contrário da YARA-L, os campos repetidos na pesquisa da UDM
são sempre tratados com o operador any
por padrão, sem a opção de
especificar all
na pesquisa.
Quando o operador any
é usado, o predicado é avaliado como verdadeiro se qualquer valor
no campo repetido satisfaz a condição. Por exemplo, se você pesquisar
principal.ip != "1.2.3.4"
e os eventos na sua pesquisa incluem ambos
principal.ip = "1.2.3.4"
e principal.ip = "5.6.7.8"
, a pesquisa
e gerar correspondências. Isso expande sua pesquisa para incluir resultados que correspondam a qualquer um
operadores em vez de fazer a correspondência com todos eles.
Cada elemento do 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, especialmente ao pesquisar usando o operador !=
.
Ao usar o operador any
, o predicado é avaliado como verdadeiro se algum valor
no campo repetido satisfaçam a condição.
Os carimbos de data/hora usam o horário de época Unix
Os campos de carimbo de data/hora são correspondidos pelo tempo da época Unix (número de segundos que desde quinta-feira, 1o de janeiro de 1970 00:00:00).
Ao pesquisar um carimbo de data/hora específico, o seguinte (no horário da é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 tendem a ter valores únicos, exibi-los cria mais "ruído" que o valor na interface de pesquisa do UDM.