Verwendung in der Bedingung

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie mit dem Operator or flexible und prägnante Erkennungslogik im Abschnitt condition Ihrer Abfrage schreiben.

Wenn Sie or zwischen Ereignis- oder Platzhaltervariablen verwenden, können Sie mehrere Bedingungen kombinieren und so die Komplexität der Abfragesyntax insgesamt reduzieren:

  • Prüft, ob eine der angegebenen Variablen vorhanden ist. Für $e1 or $e2 ist beispielsweise mindestens eine Instanz von $e1 oder eine Instanz von $e2 erforderlich.

or-Syntax im Bedingungsabschnitt

Verwenden Sie das Schlüsselwort or direkt zwischen Variablen. Das folgende Beispiel entspricht COUNT($e1)>0 or COUNT($e2)>0:

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

Beispielregel: Ausführung über riskante IP-Adresse oder mit schlechtem Hash

Die folgende Beispielregel erkennt eine Bedrohung, wenn ein Prozessstart von einer riskanten IP-Adresse erkannt wird oder ein bekannter schädlicher Hash ausgeführt wird:

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
}

Beispiel für die Suche: „risky IP“ (riskante IP) oder „bad hash execution“ (Ausführung mit schlechtem Hash)

Im folgenden Beispiel sehen Sie, wie Sie die Beispielregel als Suchanfrage neu formatieren können.

$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

Bekannte Einschränkungen

  • Ressourcenverbrauch: Wenn Sie or zwischen Ereignisvariablen verwenden, werden mehr Ressourcen verbraucht als bei der Verwendung von and. Dies kann zu längeren Ausführungszeiten für Abfragen führen.

  • Limit für Ereignisvariablen: Für Search und Dashboards können Sie maximal drei Ereignisse in der or-Syntax für mehrere Ereignisse verwenden. Für Regeln können Sie maximal zwei Ereignisse in der or-Syntax für mehrere Ereignisse verwenden.

  • Erforderliche Ereignisexistenz: Ausdrücke mit or können nicht unbegrenzt sein. Das Vorhandensein des Ereignisses muss eine Voraussetzung dafür sein, dass die Bedingung „wahr“ ist (z. B. $e1 oder #e1 > 0).

  • Mischen von Variablentypen: Sie können keine Nicht-UDM-Variablen mit UDM-Ereignisvariablen in derselben or-Liste kombinieren.

  • Einschränkung für Zeitfenster: Sie können keine gleitenden Zeitfenster mit der or-Syntax verwenden.

Nächste Schritte

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten