Sintaxe da seção de correspondência
Na YARA-L 2.0, a seção match fornece o mecanismo para correlação de vários eventos. Ela define a lógica para agrupar eventos em uma única detecção vinculando atributos comuns, como usuários, endereços IP ou hashes de arquivo, em um limite temporal específico.
Use a seção match para os seguintes casos de uso:
- Vincule dois ou mais eventos distintos em uma regra.
- Agregue dados na Pesquisa e nos painéis, como a contagem de tentativas de login com falha em um período específico.
Definir critérios de correlação
Use-o para definir os critérios dessa correlação especificando o seguinte:
Campos de agrupamento (chaves): variáveis (como
$userou$ip) que precisam ter valores idênticos em todos os eventos (definidos na seçãoevents) para acionar uma correspondência.Restrição de tempo: o período em que os eventos agrupados precisam ocorrer para atender à regra ou agregação. Em "Regras", isso define a janela de detecção. Em "Pesquisa e painéis", isso define a janela de agregação ou correlação.
Comparar os requisitos de recursos
A tabela a seguir detalha as comparações para regras de pesquisa e painéis.
| Recurso | Requisito de regras | Suporte para pesquisa e painéis |
|---|---|---|
| Tipos de variáveis | É necessário usar os marcadores de posição definidos na seção events. |
Aceita marcadores de posição e campos diretos da UDM. |
| Janela de tempo | Define o limite de detecção. | Define o bucket de agregação ou correlação. |
| Sintaxe | over <number><m/h/d> (por exemplo, 10m, 2h, 1d) |
over <number><m/h/d> |
| Limites | Mín.: 1m / Máx.: 48h |
Mín.: 1m / Máx.: 48h |
Tipos de janela compatíveis
A YARA-L 2.0 usa diferentes comportamentos de janela para determinar como o tempo é dividido e como os eventos são agrupados. É possível agrupar campos de evento e marcadores de posição na seção match por uma granularidade de tempo especificada usando uma das seguintes janelas compatíveis.
Para detalhes sobre os tipos de janela compatíveis com YARA-L 2.0, consulte Lógica de janelas do YARA-L 2.0.
Entender o limite temporal
A seção match divide os eventos em grupos com base nas chaves de agrupamento. A duração especificada define o limite temporal de cada grupo:
- Inclusão: apenas os eventos dentro da janela são transmitidos para a avaliação de
conditiondessa correspondência específica. - Exclusão: eventos fora da janela são ignorados para esse grupo de correspondência específico, evitando que eventos não relacionados acionem um falso positivo.
Valores zero na seção match
O Google SecOps filtra implicitamente os valores zero para todos os marcadores de posição usados na seção match ("" para string, 0 para números, false para booleanos, o valor na posição 0 para tipos enumerados).
Exemplo: filtrar valores zero
O exemplo a seguir ilustra consultas que filtram os valores zero.
rule ZeroValuePlaceholderExample {
events:
// Because $host is used in the match section, the query behaves
// as if the following predicate was added to the events section:
// $host != ""
$host = $e.principal.hostname
// Because $otherPlaceholder was not used in the match,
// there is no implicit filtering of zero values for $otherPlaceholder.
$otherPlaceholder = $e.principal.ip
match:
$host over 5m
condition:
$e
}No entanto, se um marcador de posição for atribuído a uma função, as consultas não vão filtrar implicitamente os valores zero dos marcadores usados na seção match.
Para desativar a filtragem implícita de valores zero, use a opção allow_zero_values na seção de opções. A opção allow_zero_values está disponível apenas em "Regras".
Exemplo: permitir valores zero
O exemplo a seguir ilustra consultas que não filtram implicitamente os valores zero de marcadores usados na seção match:
rule AllowZeroValuesExample {
events:
// Because allow_zero_values is set to true, there is no implicit filtering
// of zero values for $host.
$host = $e.principal.hostname
// Because $otherPlaceholder was not used in the match,
// there is no implicit filtering of zero values for $otherPlaceholder.
$otherPlaceholder = $e.principal.ip
match:
$host over 5m
condition:
$e
options:
allow_zero_values = true
}A seguir
Confira os recursos a seguir para continuar sua lógica YARA-L ou se aprofundar em funções de consulta avançadas:
Sintaxe e lógica
Referências e exemplos
- Expressões, operadores e construções usados na YARA-L 2.0
- Funções na YARA-L 2.0
- Criar regras de detecção compostas
- Exemplos: consultas da YARA-L 2.0
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.