Best Practices für YARA-L
In diesem Dokument werden die von Google Security Operations empfohlenen Best Practices für das Schreiben von Regeln in YARA-L beschrieben.
Nullwerte herausfiltern
Felder werden in den Ereignissen, für die Sie Ihre Regeln ausführen, möglicherweise automatisch ausgelassen. Wenn Felder weggelassen werden, wird standardmäßig der Wert 0 verwendet.
Wenn Sie beispielsweise keinen Stringwert angeben, wird standardmäßig ""
verwendet.
Wenn Sie zwei Felder gleichsetzen, die beide weggelassen werden, wird möglicherweise für beide der Standardwert 0 verwendet. Dies kann zu unbeabsichtigten Übereinstimmungen führen, wenn zwei Felder übereinstimmen, weil sie beide den Wert „0“ haben. Sie können dieses Verhalten vermeiden, indem Sie den Wert „0“ explizit angeben.
Wenn Sie beispielsweise eine Regel haben, mit der zwei Ereignisse auf Grundlage von zwei Feldern gleichgesetzt werden, kann es sein, dass beide Felder leer sind und es zu einer Übereinstimmung kommt:
$e1.field1 = $e2.field2
Wenn sowohl e1.field1
als auch e2.field2
in den Daten ausgelassen werden, ist "" = ""
„true“, was zu einer Übereinstimmung führt.
Die folgenden Vergleichsausdrücke sorgen dafür, dass keine Übereinstimmung gefunden wird, da e1.field1
und e2.field2
keine Daten enthalten:
$e1.field1 = $e2.field2
$e1.field != ""
Nullwerte und regeln für die Datenanreicherung
Wenn eine Regel von angereicherten Daten abhängt, die noch nicht aktualisiert wurden, kann der Wert null oder 0 sein. Daher empfiehlt es sich, Nullwerte (Nullprüfungen) für regelnabhängige Regeln herauszufiltern. Weitere Informationen dazu, wie Google SecOps Ereignis- und Entitätsdaten anreichert und wie Sie kontextbezogene Daten in Regeln verwenden
Filter für Ereignistyp hinzufügen
Im folgenden Beispiel werden die IP-Adressen für jedes UDM-Ereignis mit der Referenzliste abgeglichen, was viele Ressourcen verbraucht:
events:
// For every UDM event, check if the target.ip is listed in
// the suspicious_ip_addresses reference list.
$e.target.ip in %suspicious_ip_addresses
Wenn Ihre YARA-L-Regel nur UDM-Ereignisse eines bestimmten Ereignistyps erkennt, kann das Hinzufügen eines Ereignistypfilters dazu beitragen, die Regel zu optimieren, indem die Anzahl der Ereignisse reduziert wird, die von der Regel ausgewertet werden müssen.
events:
// For every UDM event of type NETWORK_DNS, check if the target.ip is
// listed in the suspicious_ip_addresses reference list.
$e.metadata.event_type = "NETWORK_DNS"
$e.target.ip in %suspicious_ip_addresses
Fügen Sie diese Filter am Anfang des Ereignisbereichs hinzu. Gleichheitsfilter sollten auch vor Regex- oder anderen Vergleichen stehen. Filter werden in der Reihenfolge angewendet, in der sie in der Regel erscheinen.
Community-Blogs zur Arbeit mit YARA-L:
- YARA-L – Grundlagen
- YARA-L-Regelvariablen
- YARA-L-Operatoren und ‑Modifizierer
- Regel für ein einzelnes Ereignis mit einem regulären Ausdruck erstellen
- Ereignisse in Regeln aggregieren
- Schwellenwert in Bedingungen festlegen
- Navigation im Regeleditor
- YARA-L-Regeloptionen
- Regel für einzelnes Ereignis erstellen – String-Abgleich
- Regel für mehrere Ereignisse erstellen – Ereignisse verknüpfen
- Regel für mehrere Ereignisse erstellen – Ereignisse anordnen
- Regel für mehrere Ereignisse erstellen – Mehrere Joins und Zählungen in Bedingungen
- Regel für mehrere Ereignisse erstellen – gleitende Fenster
- Ergebnisse in einer Regel für einzelne Ereignisse
- Ergebnisse in einer Regel für mehrere Ereignisse – Anzahl
- Ergebnisse in Regeln für mehrere Ereignisse – Arrays
- Ergebnisse in einer Regel für mehrere Ereignisse – Max, Min, Summe
- Ergebnisse – Risikobewertung, bedingte Logik und mathematische Operatoren
- Funktionen – strings.concat
- Funktionen – strings.coalesce
- Funktionen – Netzwerk
- Referenzliste
- CIDR-Referenzlisten
- Regex-Referenzlisten
- Strings-Funktion – Groß- oder Kleinschreibung
- Funktion für reguläre Ausdrücke – re.regex
- Funktion für reguläre Ausdrücke – re.capture
- Stringfunktion – strings.base64_decode
- Funktion für reguläre Ausdrücke – re.replace
- Erste Schritte mit der statistischen Suche
- Statistische Suche – mehr als nur eine Anzahl
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten