Práticas recomendadas de pesquisa do UDM

Compatível com:

Este documento descreve as práticas recomendadas do Google para realizar pesquisas usando a Pesquisa de 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 na sua instância do Google Security Operations.

Cada condição precisa estar no formato de udm-field operator value.

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

Sempre tente restringir o período ao mínimo necessário. O Google Security Operations pode ingerir uma quantidade enorme de dados. Portanto, limitar a amplitude desses dados durante uma pesquisa pode melhorar significativamente a performance da pesquisa.

Você pode usar expressões regulares ao realizar pesquisas da UDM:

  • Use AND, OR e NOT.
  • 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 e NOT) que podem ser usados nos parênteses.
  • Dependendo do tipo de campo, os operadores podem incluir: = != >= > < <=

Você também pode usar as 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 da 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 incluírem principal.ip = "1.2.3.4" e principal.ip = "5.6.7.8", a pesquisa vai gerar correspondências. Isso expande sua pesquisa para incluir resultados que correspondem a qualquer um dos operadores, em vez de corresponder a 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, especialmente ao pesquisar usando o operador !=.

Ao usar o operador any, o predicado é avaliado como verdadeiro se qualquer valor no campo repetido satisfaz a condição.

Os carimbos de data/hora usam o tempo de época Unix

Os campos de carimbo de data/hora são correspondidos usando a época Unix (número de segundos que se passaram desde quinta-feira, 1º de janeiro de 1970, 00h00min00s).

Ao procurar um carimbo de data/hora específico, o seguinte (no 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 tendem a ter valores exclusivos, a exibição deles cria mais "ruído" do que valor na interface de pesquisa do UDM.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.