Bonnes pratiques YARA-L

Ce document décrit les bonnes pratiques recommandées par Chronicle pour écrire des règles dans YARA-L.

Filtrer les valeurs nulles

Des champs peuvent être automatiquement omis dans les événements sur lesquels vous exécutez vos règles. Lorsque des champs sont omis, leurs valeurs par défaut sont égales à zéro.

Par exemple, une valeur de chaîne omise est définie par défaut sur "".

Si vous définissez deux champs qui ont tous deux été omis, il est possible qu'ils soient tous deux définis par défaut sur leur valeur zéro. Cela peut entraîner des correspondances involontaires lorsque deux champs correspondent, car ils ont tous deux une valeur nulle. Pour éviter ce comportement, spécifiez explicitement la valeur zéro.

Par exemple, si vous avez une règle qui équivaut à deux événements sur la base de deux champs, il est possible que ces deux champs soient vides, ce qui provoque une correspondance:

$e1.field1 = $e2.field2

Si e1.field1 et e2.field2 sont omis dans les données, "" = "" est défini sur "true", ce qui crée une correspondance.

Les expressions de comparaison suivantes vous empêchent d'obtenir une correspondance, car e1.field1 et e2.field2 n'incluent aucune donnée:

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

Ajouter un filtre de type d'événement

Dans l'exemple suivant, les adresses IP de chaque événement UDM sont comparées à la liste de référence, ce qui consomme beaucoup de ressources:

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

Si votre règle YARA-L ne détecte que les événements UDM d'un certain type, l'ajout d'un filtre de type d'événement peut vous aider à optimiser votre règle en réduisant le nombre d'événements qu'elle doit évaluer.

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

Ajoutez ces filtres au début de la section "Événements". Vous devez également placer des filtres d'égalité avant les expressions régulières ou d'autres comparaisons. Les filtres sont appliqués dans l'ordre dans lequel ils apparaissent dans la règle.