Association de la fonction à l'espace réservé

Compatible avec :

Dans YARA-L, le processus d'utilisation de fonctions pour traiter des données et stocker le résultat est appelé attribution d'une fonction à un espace réservé. Les variables de substitution (indiquées par $) sont utilisées pour représenter des points de données spécifiques extraits des événements UDM et d'autres sources de données. Les fonctions peuvent ensuite opérer sur ces champs d'événement, ou sur des combinaisons de champs, et les résultats de ces opérations sont attribués aux variables d'espace réservé pour être utilisés dans d'autres parties de la requête, telles que les sections match, condition et outcome.

  • Fonctions : YARA-L fournit des fonctions de métrique qui peuvent effectuer des calculs ou des transformations de données sur les champs d'événement.

  • Variables d'espace réservé : il s'agit de variables, précédées d'un signe dollar (par exemple, $user, $ip), qui peuvent contenir des valeurs dérivées des champs d'événement ou des sorties de fonction. Elles sont définies dans la section events et peuvent être utilisées dans toute la règle.

  • Attribution : la sortie de la fonction est attribuée à une variable d'espace réservé.

Limites

L'utilisation de l'attribution de fonction à un espace réservé présente deux limites :

  1. Chaque espace réservé dans l'attribution de fonction à espace réservé doit être attribué à une expression contenant un champ d'événement.

    Exemples valides

    $ph1 = $e.principal.hostname
    $ph2 = $e.src.hostname
    
    // Both $ph1 and $ph2 have been assigned to an expression containing an event field.
    $ph1 = strings.concat($ph2, ".com")
    
    $ph1 = $e.network.email.from
    $ph2 = strings.concat($e.principal.hostname, "@gmail.com")
    
    // Both $ph1 and $ph2 have been assigned to an expression containing an event field.
    $ph1 = strings.to_lower($ph2)
    

    Exemple non valide

    $ph1 = strings.concat($e.principal.hostname, "foo")
    $ph2 = strings.concat($ph1, "bar") // $ph2 has NOT been assigned to an expression containing an event field.
    
  2. L'appel de fonction doit dépendre d'un seul événement. Toutefois, plusieurs champs du même événement peuvent être utilisés dans les arguments d'appel de fonction.

    Exemple valide

    $ph = strings.concat($event.principal.hostname, "string2")

    $ph = strings.concat($event.principal.hostname, $event.src.hostname)

    Exemple non valide

    $ph = strings.concat("string1", "string2")

    $ph = strings.concat($event.principal.hostname, $anotherEvent.src.hostname)

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