Use ou na secção de condições

Suportado em:

Este documento explica como usar o operador or para escrever uma lógica de deteção flexível e concisa na secção condition da sua consulta.

A utilização de or entre variáveis de eventos ou marcadores de posição permite combinar várias condições, reduzindo a complexidade geral da sintaxe da consulta:

  • Verifica a presença de qualquer uma das variáveis especificadas. Por exemplo, $e1 or $e2 requer, pelo menos, uma instância de $e1 ou uma instância de $e2.

Sintaxe or na secção de condições

Use a palavra-chave or diretamente entre as variáveis. O exemplo seguinte é equivalente a COUNT($e1)>0 or COUNT($e2)>0:

condition:
  $e1 or $e2  // True if $e1 exists or $e2 exists

Regra de exemplo: IP arriscado ou execução de hash incorreta

A regra de exemplo seguinte deteta uma ameaça se for detetado um lançamento de processo a partir de um endereço IP arriscado ou se for executado um hash conhecido como mau:

rule MultiEventOr {
  meta:
    author = "google-secops"
  events:
    $e1.principal.ip = "1.1.1.1"
    $e1.metadata.event_type = "PROCESS_LAUNCH"
    $e2.target.file.sha256 = "badhash..."
    $user = $e1.principal.user.userid
    $user = $e2.principal.user.userid
  match:
    $user over 5m
  condition:
    $e1 or $e2
}

Exemplo de pesquisa: execução de IP arriscado ou hash incorreto

O exemplo seguinte mostra como pode reformatar a regra de exemplo como uma consulta de pesquisa.

$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid

match:
  $user over 5m

condition:
  $e1 or $e2

Limitações conhecidas

  • Consumo de recursos: quando usa or entre variáveis de eventos, or consome mais recursos do que usar and e pode resultar em tempos de execução de consultas mais longos.

  • Limite de variáveis de eventos: para a Pesquisa e os painéis de controlo, pode usar um máximo de 3 eventos na sintaxe or de vários eventos. Para regras, pode usar um máximo de 2 eventos na sintaxe or de vários eventos.

  • Existência de eventos obrigatória: as expressões que usam or não podem ser ilimitadas. A existência do evento tem de ser um requisito para que a cláusula seja verdadeira (por exemplo, $e1 ou #e1 > 0).

  • Mistura de tipos de variáveis: não pode combinar variáveis não UDM com variáveis de eventos UDM na mesma lista or.

  • Restrição de janelas: não pode usar janelas de deslocamento com a sintaxe or.

O que se segue?

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