Best Practices für YARA-L

Unterstützt in:

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:

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