Práticas recomendadas para a pesquisa

Compatível com:

Este documento descreve as práticas recomendadas da Google para usar a funcionalidade Pesquisa no Google Security Operations. As pesquisas podem exigir recursos computacionais substanciais se não forem cuidadosamente criadas. O desempenho também varia consoante o tamanho e a complexidade dos dados na sua instância do Google SecOps.

Use campos de UDM indexados para obter a velocidade máxima

A forma mais eficaz de melhorar o desempenho da pesquisa é criar consultas com campos indexados. Estes campos estão otimizados para uma obtenção rápida. Os campos do modelo de dados unificado (UDM) conhecidos que são indexados são os seguintes:

Campos principais

  • 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 origem

  • source.user.userid
  • src.asset.hostname
  • src.hostname
  • src.ip

Campos de destino

  • 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 adicionais

  • 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

Crie consultas de pesquisa eficazes para o desempenho

Escrever consultas otimizadas é fundamental para maximizar a velocidade e minimizar o consumo de recursos nos seus dados de segurança. Todas as condições de consulta têm de cumprir rigorosamente esta estrutura fundamental:

udm-field operator value

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

Uma vez que o Google SecOps pode carregar uma grande quantidade de dados durante uma pesquisa, tem de minimizar o intervalo de tempo da sua consulta para restringir o âmbito e melhorar o desempenho da pesquisa.

Use expressões regulares na consulta de pesquisa

Pode usar operadores lógicos e de comparação padrão ao criar as suas consultas de pesquisa da UDM para criar expressões complexas:

  • Operadores lógicos:use AND, OR e NOT para combinar condições. AND é assumido se omitir um operador entre duas condições.
  • Prioridade dos operadores: use parênteses () para substituir a ordem de prioridade predefinida. Existe um limite máximo de 169 operadores lógicos (OR, AND, NOT) que pode usar entre parênteses.
  • Operadores de comparação: consoante o tipo de campo UDM (string, número inteiro, data/hora), os operadores de campo podem incluir: =, !=, >=, >, <, <=

Em alternativa, para pesquisar de forma eficiente um grande conjunto de valores, pode usar as listas de referência.

Use nocase como modificador de pesquisa

Pode anexar o modificador nocase a uma condição de comparação de strings para tornar a pesquisa não sensível a maiúsculas e minúsculas, o que ignora a capitalização.

Por exemplo, a seguinte pesquisa é inválida:

target.user.userid = "TIM.SMITH" nocase

Evite usar expressões regulares em campos enumerados

Não pode usar expressões regulares quando pesquisa campos enumerados (campos com um intervalo de valores predefinidos), como metadata.event_type ou network.ip_protocol

O exemplo seguinte é uma pesquisa inválida: metadata.event_type = /NETWORK_*/

Por outro lado, o exemplo seguinte é uma pesquisa válida: (metadata.event_type = "NETWORK_CONNECTION" ou metadata.event_type = "NETWORK_DHCP")

Use todos os operadores no campo Eventos

Na Pesquisa, alguns campos do UDM (como principal.ip ou target.file.md5) são etiquetados como repetidos, porque podem conter uma lista de valores ou tipos de mensagens num único evento. Os campos repetidos são sempre tratados com o operador any por predefinição (não existe nenhuma opção para especificar all).

Quando o operador any é usado, o predicado é avaliado como true se qualquer valor no campo repetido satisfizer a condição. Por exemplo, se 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", é gerada uma correspondência. Isto expande a sua pesquisa para incluir resultados que correspondem a qualquer um dos operadores, em vez de corresponder a todos.

Cada elemento no campo repetido é tratado individualmente. Se o campo repeated for encontrado em eventos na pesquisa, os eventos são avaliados para cada elemento no campo. Isto pode causar um comportamento inesperado, especialmente quando pesquisa com o operador !=.

Quando usa o operador any, o predicado é avaliado como true se qualquer valor no campo repetido satisfizer a condição.

Use a hora de época Unix para as indicações de tempo

Os campos de data/hora são associados através da hora de época Unix (o número total de segundos decorridos desde quinta-feira, 1 de janeiro de 1970 às 00:00:00 UTC).

Quando pesquisa uma indicação de tempo específica, o seguinte (em tempo epoch) é válido:

metadata.ingested_timestamp.seconds = 1660784400

A seguinte data/hora é inválida:

metadata.ingested_timestamp = "2022-08-18T01:00:00Z"

Exclua campos de filtros

Os seguintes campos são intencionalmente excluídos dos filtros de pesquisa. Embora contenham metadados cruciais, os respetivos valores altamente únicos podem introduzir detalhes de pesquisa desnecessários e reduzir a eficiência e a eficácia gerais do motor de consultas:

  • metadata.id
  • metadata.product_log_id
  • *.timestamp

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