Übersicht über YARA-L 2.0

Unterstützt in:

YARA-L 2.0 ist eine spezielle Sprache in Google Security Operations, die auf Unternehmenslogdaten basiert und es Sicherheitsexperten ermöglicht, diese Daten zu analysieren, Bedrohungen zu untersuchen und Erkennungsregeln zu erstellen.

In diesem Dokument werden YARA-L und die zugehörige Syntax erläutert. Außerdem wird gezeigt, wie Sie damit alles von einer einfachen Filterabfrage bis hin zu einer Regel ausdrücken können, die nach komplexen Mustern sucht. Verwenden Sie die Abschnitte in einer YARA-L-Abfrage, um aggregierte Funktionen und Bedingungslogik zu unterstützen und Kontext durch Joins, Mustervergleich und mehr hinzuzufügen.

YARA-L 2.0 – Syntaxübersicht

Wenn Sie eine YARA-L-Regel oder ‑Abfrage erstellen möchten, empfehlen wir Ihnen, sich mit der Struktur und Syntax für die Angabe von Variablendeklarationen, ‑definitionen und ‑verwendungen vertraut zu machen.

Regelstruktur

YARA-L-Regeln enthalten die folgenden Abschnitte und müssen in der folgenden Reihenfolge angegeben werden:

Auftrag Bereich Regeln Suche/Dashboards Beschreibung
1 Meta Erforderlich Beschreibt die Regel und kann Werte wie Autor, Schweregrad, Beschreibung und Priorität enthalten. Weitere Informationen zur Syntax des Meta-Abschnitts
2 ansehen Erforderlich Erforderlich Definiert, wie Ereignisse gefiltert und verknüpft werden. Weitere Informationen finden Sie unter Syntax des Abschnitts „Ereignisse“.
3 Übereinstimmung Optional Optional Gibt an, nach welchen Feldern die Ergebnisse bei der Aggregation gruppiert werden sollen. Weitere Informationen finden Sie unter Syntax für den Abschnitt „Abgleich“.

Hinweis: Wenn Sie einen match-Abschnitt ausschließen, kann die Regel mit einem einzelnen Ereignis übereinstimmen.
4 Ergebnis Optional Optional Definiert, welche Daten ausgegeben werden sollen, wenn eine Regel ausgeführt oder ausgelöst wird. Weitere Informationen finden Sie unter Syntax für Ergebnisabschnitte.
5 Bedingung Erforderlich Optional Enthält die Logik, die bestimmt, ob eine Regel ausgelöst wird. Weitere Informationen finden Sie unter Syntax für den Abschnitt „Bedingung“.
6 Options Optional Optional Ermöglicht das Aktivieren oder Deaktivieren bestimmter Regeln. Weitere Informationen finden Sie unter Syntax des Abschnitts „Optionen“.

Das folgende Beispiel veranschaulicht die allgemeine Struktur einer Regel:

rule <rule name>
{
    meta:
    // Stores arbitrary key-value pairs of the rule details, such as who wrote
    // it, what it detects on, version control, etc.

  events:
    // Defines which events to filter and the relationship between events.

  match:
    // Values to return when matches are found.

  outcome:
    // Define the output of each rule and security alert.

  condition:
    // Condition to check events and the variables used to find matches.

  options:
    // Options to turn on or off while executing this rule. The `options` syntax is only valid for rules.
}

Wenn Sie Regeln erstellen, führt Google SecOps eine Typüberprüfung für Ihre YARA-L-Syntax durch und zeigt die Fehler an, damit Sie die Regel so überarbeiten können, dass sie richtig funktioniert. Die folgenden Beispiele zeigen die Fehler, die bei Verwendung ungültiger Syntax angezeigt werden:

// $e.target.port is of type integer which cannot be compared to a string.
$e.target.port = "80"

// "LOGIN" is not a valid event_type enum value.
$e.metadata.event_type = "LOGIN"

Diese Beispielregel findet fünf aufeinanderfolgende fehlgeschlagene Anmeldungen pro Nutzer innerhalb von 10 Minuten.

rule failed_logins
{
  meta:
   author = "Security Team"
   description = "Detects multiple failed user logins within 10-minute windows."
   severity = "HIGH"

  events:
   $e.metadata.event_type = "USER_LOGIN"
   $e.security_result.action = "FAIL"
   $user = $e.target.user.userid

  match:
   $user over 10m

  outcome:
   $failed_login_count = count($e.metadata.id)
   $first_fail_time = min($e.metadata.event_timestamp.seconds)

  condition:
    #e >= 5
}

Die Regel ist so definiert:

  • Im Abschnitt meta werden der Autor der Regel (Security team), die Beschreibung (Detects multiple failed user logins within 10-minute windows.) und der Schweregrad (High) definiert.

Erkennt mehrere fehlgeschlagene Nutzeranmeldungen innerhalb von 10 Minuten

  • Im Abschnitt events werden die Ereignisse definiert, die erfasst werden müssen: Nutzeranmeldungen, fehlgeschlagene Nutzeranmeldungen (Ereignisvariablen) und Links zur user-Abgleichsvariable (Platzhaltervariablen).

  • Im Abschnitt outcome werden die Berechnungen definiert, die für das Ereignis und die Platzhaltervariablen ausgeführt werden sollen: die Anzahl der fehlgeschlagenen Anmeldungen und die Uhrzeit des ersten Fehlers.

  • Im Abschnitt match wird die Variable definiert, nach der die Ereignisse gruppiert werden ($user), und der Zeitraum (10m), in dem diese Ereignisse stattfinden müssen, um als Übereinstimmung betrachtet zu werden.

  • Im Abschnitt condition wird angegeben, dass nur Nutzer zurückgegeben werden sollen, die mehr als fünf fehlgeschlagene Anmeldungen haben.

Nächste Schritte

Weitere Informationen

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