Zuweisung von Funktion zu Platzhalter
In YARA-L wird der Prozess der Verwendung von Funktionen zum Verarbeiten von Daten und Speichern des Ergebnisses als Zuweisung von Funktion zu Platzhalter bezeichnet. Platzhaltervariablen ($) werden verwendet, um bestimmte Datenpunkte darzustellen, die aus UDM-Ereignissen und anderen Datenquellen extrahiert werden. Funktionen können dann auf diese Ereignisfelder oder Kombinationen von Feldern angewendet werden. Die Ergebnisse dieser Vorgänge werden den Platzhaltervariablen zugewiesen, damit sie in anderen Teilen der Abfrage verwendet werden können, z. B. in den Abschnitten match, condition und outcome.
Funktionen: YARA-L bietet Messwertfunktionen, mit denen Berechnungen oder Datentransformationen für Ereignisfelder durchgeführt werden können.
Platzhaltervariablen: Das sind Variablen, die durch ein vorangestelltes Dollarzeichen gekennzeichnet sind (z. B.
$user,$ip). Sie können Werte enthalten, die aus Ereignisfeldern oder Funktionsausgaben abgeleitet werden. Sie werden im Abschnitteventsdefiniert und können in der gesamten Regel verwendet werden.Zuweisung: Die Ausgabe der Funktion wird einer Platzhaltervariablen zugewiesen.
Beschränkungen
Bei der Zuweisung von Funktionen zu Platzhaltern gibt es zwei Einschränkungen:
Jeder Platzhalter in der Zuweisung von Funktion zu Platzhalter muss einem Ausdruck zugewiesen werden, der ein Ereignisfeld enthält.
Beispiele für gültige Stellenausschreibungen
$ph1 = $e.principal.hostname $ph2 = $e.src.hostname // Both $ph1 and $ph2 have been assigned to an expression containing an event field. $ph1 = strings.concat($ph2, ".com")$ph1 = $e.network.email.from $ph2 = strings.concat($e.principal.hostname, "@gmail.com") // Both $ph1 and $ph2 have been assigned to an expression containing an event field. $ph1 = strings.to_lower($ph2)Ungültiges Beispiel
$ph1 = strings.concat($e.principal.hostname, "foo") $ph2 = strings.concat($ph1, "bar") // $ph2 has NOT been assigned to an expression containing an event field.Der Funktionsaufruf sollte von genau einem Ereignis abhängen. Es können jedoch mehrere Felder aus demselben Ereignis in Funktionsaufrufargumenten verwendet werden.
Gültiges Beispiel
$ph = strings.concat($event.principal.hostname, "string2")$ph = strings.concat($event.principal.hostname, $event.src.hostname)Ungültiges Beispiel
$ph = strings.concat("string1", "string2")$ph = strings.concat($event.principal.hostname, $anotherEvent.src.hostname)
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten