Práticas recomendadas da YARA-L

Este documento descreve as práticas recomendadas do Chronicle 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, o valor padrão é zero.

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

Se você igualar dois campos que foram omitidos, ambos poderão ter os valores zero por padrão. Isso pode gerar correspondências não intencionais em que dois campos são correspondentes porque ambos têm valores zero. Você pode evitar esse comportamento especificando explicitamente o valor zero.

Por exemplo, se você tiver uma regra que equivale a dois eventos com base em dois campos, é possível 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 tenha 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ência, o que consome 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 YARA-L detectar apenas eventos de UDM de um determinado tipo, adicionar um filtro de tipo de evento vai 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. Coloque também filtros de igualdade antes da regex ou de outras comparações. Os filtros são aplicados na ordem em que aparecem na regra.