Práticas recomendadas da YARA-L

Compatível com:

Este documento descreve as práticas recomendadas recomendadas das Operações de segurança do Google para escrever regras em YARA-L.

Filtrar valores zero

Os campos podem ser omitidos automaticamente nos eventos em que você executa as regras. Quando os campos são omitidos, eles usam os valores zero padrão.

Por exemplo, um valor de string omitido tem como padrão "".

Se você igualar dois campos omitidos, eles poderão ser padronizados com valores zero. Isso pode levar a correspondências não intencionais em que dois campos correspondem porque ambos têm valores zero. Para evitar esse comportamento, especifique explicitamente o valor zero.

Por exemplo, se você tiver uma regra que equipara dois eventos com base em dois campos, há uma chance de que ambos estejam vazios, causando uma correspondência:

$e1.field1 = $e2.field2

Se e1.field1 e e2.field2 forem omitidos nos dados, "" = "" será verdadeiro, causando uma correspondência.

As expressões de comparação a seguir garantem que você não receba uma correspondência porque e1.field1 e e2.field2 não incluem dados:

 $e1.field1 = $e2.field2
 $e1.field != ""

Valores zero e regras dependentes de enriquecimento

Se uma regra depender de dados enriquecidos que ainda não foram atualizados, o valor poderá ser nulo ou zero. Portanto, é recomendável filtrar valores zero (verificações de nulo) em regras dependentes de enriquecimento. Saiba como o Google SecOps enriquece os dados de eventos e entidades e como usar dados enriquecidos com contexto em regras.

Adicionar um filtro de tipo de evento

No exemplo a seguir, os endereços IP de cada evento da UDM são verificados em relação à lista de referência, consumindo muitos recursos:

events:
// For every UDM event, check if the target.ip is listed in
// the suspicious_ip_addresses reference list.
$e.target.ip in %suspicious_ip_addresses

Se a regra da YARA-L detectar apenas eventos do UDM de um determinado tipo, adicione um filtro de tipo de evento para otimizar a regra, reduzindo o número de eventos que ela precisa avaliar.

events:
// For every UDM event of type NETWORK_DNS, check if the target.ip is
// listed in the suspicious_ip_addresses reference list.
$e.metadata.event_type = "NETWORK_DNS"
$e.target.ip in %suspicious_ip_addresses

Adicione esses filtros ao início da seção de eventos. Também é recomendável colocar filtros de igualdade antes de regex ou outras comparações. Os filtros são aplicados na ordem em que aparecem na regra.

Para ver blogs da comunidade sobre como trabalhar com YARA-L, consulte:

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