Utilisez "or" dans la section des conditions

Compatible avec :

Ce document explique comment utiliser l'opérateur or pour écrire une logique de détection flexible et concise dans la section condition de votre requête.

L'utilisation de or entre des variables d'événement ou d'espace réservé vous permet de combiner plusieurs conditions, ce qui réduit la complexité globale de la syntaxe de votre requête :

  • Vérifie la présence de l'une des variables spécifiées. Par exemple, $e1 or $e2 nécessite au moins une instance de $e1 ou une instance de $e2.

Syntaxe or dans la section "Conditions"

Utilisez le mot clé or directement entre les variables. L'exemple suivant est l'équivalent de COUNT($e1)>0 or COUNT($e2)>0 :

condition:
  $e1 or $e2  // True if $e1 exists or $e2 exists

Exemple de règle : exécution d'une adresse IP risquée ou d'un hachage incorrect

L'exemple de règle suivant détecte une menace si le lancement d'un processus à partir d'une adresse IP risquée est détecté ou si un hachage incorrect connu est exécuté :

rule MultiEventOr {
  meta:
    author = "google-secops"
  events:
    $e1.principal.ip = "1.1.1.1"
    $e1.metadata.event_type = "PROCESS_LAUNCH"
    $e2.target.file.sha256 = "badhash..."
    $user = $e1.principal.user.userid
    $user = $e2.principal.user.userid
  match:
    $user over 5m
  condition:
    $e1 or $e2
}

Exemple de recherche : exécution d'une adresse IP risquée ou d'un hachage incorrect

L'exemple suivant montre comment reformater l'exemple de règle en tant que requête de recherche.

$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid

match:
  $user over 5m

condition:
  $e1 or $e2

Limitations connues

  • Consommation de ressources : lorsque vous utilisez or entre les variables d'événement, cela consomme plus de ressources que l'utilisation de and et peut entraîner des temps d'exécution de requête plus longs.

  • Limite de variables d'événement : pour la recherche et les tableaux de bord, vous pouvez utiliser au maximum trois événements dans la syntaxe or multi-événements. Pour les règles, vous pouvez utiliser au maximum deux événements dans la syntaxe or à événements multiples.

  • Existence requise de l'événement : les expressions utilisant or ne peuvent pas être illimitées. L'existence de l'événement doit être une condition pour que la clause soit vraie (par exemple, $e1 ou #e1 > 0).

  • Mélange de types de variables : vous ne pouvez pas combiner des variables non-UDM avec des variables d'événement UDM dans la même liste or.

  • Restriction de fenêtre : vous ne pouvez pas utiliser de fenêtres bascules avec la syntaxe or.

Étape suivante

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