Práticas recomendadas da YARA-L

Compatível com:

Este documento descreve as práticas recomendadas pelas 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 suas regras. Quando os campos são omitidos, eles recebem o valor padrão de zero.

Por exemplo, um valor de string omitido é padrão para "".

Se você igualar dois campos omitidos, eles vão receber valores padrão iguais a zero. Isso pode levar a correspondências não intencionais em que dois campos são iguais porque ambos têm valores nulos. Evite esse comportamento especificando 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 os campos 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 vai encontrar uma correspondência porque e1.field1 e e2.field2 não incluem dados:

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

Adicionar um filtro de tipo de evento

No exemplo a seguir, os endereços IP de cada evento de UDM são comparados com a lista de referências, 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 de UDM de um determinado tipo de evento, adicionar um filtro de tipo de evento poderá ajudar a otimizar sua 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 é necessário colocar filtros de igualdade antes de regex ou outras comparações. Os filtros são aplicados na ordem em que aparecem na regra.

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

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