Uso ou na seção de condição
Este documento explica como usar o operador or para escrever uma lógica de detecção flexível
e concisa na seção condition da sua consulta.
Usar or entre variáveis de evento ou marcador de posição permite combinar várias condições,
reduzindo a complexidade geral da sintaxe da consulta:
- Verifica a presença de uma das variáveis especificadas. Por exemplo,
$e1 or $e2exige pelo menos uma instância de$e1ou uma instância de$e2.
Sintaxe de or na seção de condição
Use a palavra-chave or diretamente entre as variáveis. O exemplo a seguir é
equivalente a COUNT($e1)>0 or COUNT($e2)>0:
condition:
$e1 or $e2 // True if $e1 exists or $e2 exists
Exemplo de regra: execução de IP arriscado ou hash ruim
A regra de exemplo a seguir detecta uma ameaça se um processo for iniciado de um endereço IP de risco ou se um hash ruim conhecido for executado:
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 a seguir mostra como 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 você usa
orentre variáveis de evento, ele consome mais recursos do queande pode resultar em tempos de execução de consulta mais longos.Limite de variáveis de evento: para pesquisa e painéis, é possível usar no máximo três eventos na sintaxe
orde vários eventos. Para regras, é possível usar no máximo dois eventos na sintaxeorde vários eventos.Existência de evento obrigatória: as expressões que usam
ornão podem ser ilimitadas. A existência do evento precisa ser um requisito para que a cláusula seja verdadeira (por exemplo,$e1ou#e1 > 0).Mistura de tipos de variáveis: não é possível combinar variáveis que não são da UDM com variáveis de evento da UDM na mesma lista
or.Restrição de janela: não é possível usar janelas rotativas com a sintaxe
or.
A seguir
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.