Best Practices für YARA-L

Unterstützt in:

In diesem Dokument werden die von Google Security Operations empfohlenen Best Practices zum Erstellen von Regeln in YARA-L beschrieben.

Nullwerte herausfiltern

Felder werden möglicherweise automatisch aus den Ereignissen entfernt, auf die Sie Ihre Regeln anwenden. Wenn Felder weggelassen werden, werden standardmäßig Nullwerte verwendet.

Wenn ein Stringwert beispielsweise weggelassen wird, wird standardmäßig "" verwendet.

Wenn Sie zwei Felder gleichsetzen, die beide weggelassen werden, werden sie möglicherweise beide standardmäßig auf Null gesetzt. Dies kann zu unbeabsichtigten Übereinstimmungen führen, wenn zwei Felder übereinstimmen, weil sie beide Nullwerte haben. Sie können dieses Verhalten vermeiden, indem Sie den Nullwert explizit angeben.

Wenn Sie beispielsweise eine Regel haben, die zwei Ereignisse anhand von zwei Feldern gleichsetzt, besteht die Möglichkeit, dass beide Felder leer sind, was zu einer Übereinstimmung führt:

$e1.field1 = $e2.field2

Wenn sowohl e1.field1 als auch e2.field2 in den Daten fehlen, ist "" = "" wahr und es kommt zu einer Übereinstimmung.

Mit den folgenden Vergleichsausdrücken wird sichergestellt, dass keine Übereinstimmung gefunden wird, da e1.field1 und e2.field2 keine Daten enthalten:

 $e1.field1 = $e2.field2
 $e1.field != ""

Nullwerte und anreicherungsabhängige Regeln

Wenn eine Regel von angereicherten Daten abhängt, die noch nicht aktualisiert wurden, ist der Wert möglicherweise „null“ oder „0“. Daher empfiehlt es sich, Null-Werte (Null-Prüfungen) bei anreicherungsabhängigen Regeln heraus zu filtern. Weitere Informationen dazu, wie Google Security Operations 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, Ihre Regel zu optimieren, indem die Anzahl der Ereignisse reduziert wird, die von der Regel ausgewertet werden müssen.

events: // Prüfen Sie für jedes UDM-Ereignis vom Typ NETWORK_DNS, ob die target.ip in der Referenzliste suspicious_ip_addresses aufgeführt ist. $e.metadata.event_type = "NETWORK_DNS" $e.target.ip in %suspicious_ip_addresses

Fügen Sie diese Filter am Anfang des Abschnitts „Ereignisse“ hinzu. Außerdem sollten Sie Gleichheitsfilter vor Regex- oder anderen Vergleichen platzieren. 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