Utiliser des listes de référence et des tableaux de données dans YARA-L 2.0

Compatible avec :

Les listes de référence et les tableaux de données vous permettent de structurer votre logique en comparant les champs d'événements à des ensembles de données personnalisés. Utilisez ces objets pour gérer les indicateurs à volume élevé (comme les adresses IP connues comme malveillantes ou les noms d'hôte approuvés) dans la recherche, les tableaux de bord et les détections sans modifier la syntaxe sous-jacente.

Vous pouvez utiliser des listes de référence ou des tableaux de données dans les sections events ou outcome d'une règle. Pour en savoir plus sur le comportement et la syntaxe des listes de référence et des tableaux de données, consultez Listes de référence et Utiliser des tableaux de données.

Appliquer la syntaxe des listes de référence et des tableaux de données

Les listes de référence et les tableaux de données suivent une syntaxe similaire, définie par l'ID de l'objet et le type de correspondance (string, regex ou CIDR) requis pour l'opération. Cette section présente des exemples de syntaxe pour l'utilisation de différents types de listes de référence.

Dans Google Security Operations, les listes de référence et les tables de données sont utilisées dans les sections events ou outcome d'une règle YARA-L pour comparer les données d'événement aux ensembles de données importés. Elles sont exécutées lors du processus d'évaluation des règles pour filtrer les événements ou enrichir les résultats de détection.

Utilisez des listes de référence lorsque vous devez vérifier si un champ unique correspond à une valeur dans une liste prédéfinie (par exemple, une liste d'adresses IP malveillantes connues).

  • STRING : $e.principal.hostname in %string_list_name
  • REGEX : $e.principal.hostname in regex %regex_list_name

  • CIDR : $e.principal.ip in cidr %cidr_list_name

Utilisez des tableaux de données lorsque vos données de référence ont une structure de lignes ou de colonnes, ce qui vous permet de mapper des champs spécifiques sur des colonnes spécifiques.

  • STRING : $e.target.hostname in %table_name.column_name

  • REGEX : $e.target.hostname in regex %table_name.column_name

  • CIDR : $e.principal.ip in cidr %table_name.column_name

Exemples : syntaxe et comportement de la liste de référence

Les exemples suivants montrent comment structurer les requêtes pour différents types d'ensembles de données et appliquer une logique conditionnelle à vos correspondances :

Exemple : Syntaxe de la liste de référence dans une requête

// STRING reference list
$e.principal.hostname in %string_reference_list

// Regular expression reference list
$e.principal.hostname in regex %regex_reference_list

// CIDR reference list
$e.principal.ip in cidr %cidr_reference_list

Exemple : syntaxe de tableau de données

// STRING data table
$e.target.hostname in %data_table_name.column_name

// Regular expression data table
$e.target.hostname in regex %regex_table_name.column_name

// CIDR data table
$e.principal.ip in cidr %cidr_table_name.column_name

Exemple : opérateurs not et nocase

L'opérateur nocase est compatible avec les listes STRING et REGEX.

// Exclude events whose hostnames match substrings in my_regex_list.
not $e.principal.hostname in regex %my_regex_list

// Event hostnames must match at least one string in my_string_list (case insensitive).
$e.principal.hostname in %my_string_list nocase
    

L'opérateur nocase est compatible avec les listes STRING et REGEX.

Pour des raisons de performances, le moteur de détection limite l'utilisation des listes de référence.

  • Nombre maximal d'instructions in dans une règle, avec ou sans opérateurs spéciaux : 10
  • Nombre maximal d'instructions in avec l'opérateur regex : 5
  • Nombre maximal d'instructions in avec l'opérateur cidr : 5

Pour en savoir plus sur le comportement et la syntaxe des listes de références, consultez Listes de références.

Pour maintenir des performances optimales dans la recherche, les tableaux de bord et les détections, le moteur YARA-L applique les limites suivantes :

  • Nombre maximal d'instructions in dans une requête, avec ou sans opérateurs spéciaux : 7
  • Nombre maximal d'instructions in avec l'opérateur regex : 4
  • Nombre maximal d'instructions in avec l'opérateur cidr : 2

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.