Referenzlisten und Datentabellen in YARA-L 2.0 verwenden
Mit Referenzlisten und Datentabellen können Sie Ihre Logik strukturieren, indem Sie Ereignisfelder mit benutzerdefinierten Datasets vergleichen. Mit diesen Objekten können Sie Indikatoren mit hohem Volumen wie bekannte schädliche IP-Adressen oder genehmigte Hostnamen in Search, Dashboards und Erkennungen verwalten, ohne die zugrunde liegende Syntax zu ändern.
Sie können Referenzlisten oder Datentabellen in den Abschnitten events oder outcome einer Regel verwenden. Weitere Informationen zum Verhalten und zur Syntax von Referenzlisten und Datentabellen finden Sie unter Referenzlisten und Datentabellen verwenden.
Syntax für Referenzliste und Datentabelle anwenden
Referenzlisten und Datentabellen folgen einer ähnlichen Syntax, die durch die Objekt-ID und den für den Vorgang erforderlichen Abgleichtyp (string, regex oder CIDR) definiert wird. In diesem Abschnitt finden Sie Syntaxbeispiele für die Verwendung verschiedener Arten von Referenzlisten.
In Google Security Operations werden Referenzlisten und Datentabellen im events- oder outcome-Abschnitt einer YARA-L-Regel verwendet, um Ereignisdaten mit hochgeladenen Datasets zu vergleichen. Sie werden während der Regelauswertung ausgeführt, um Ereignisse zu filtern oder Erkennungsergebnisse anzureichern.
Verwenden Sie Referenzlisten, wenn Sie prüfen müssen, ob ein einzelnes Feld mit einem Wert in einer vordefinierten Liste übereinstimmt, z. B. einer Liste bekannter schädlicher IPs.
- STRING:
$e.principal.hostname in %string_list_name REGEX:
$e.principal.hostname in regex %regex_list_nameCIDR:
$e.principal.ip in cidr %cidr_list_name
Verwenden Sie Datentabellen, wenn Ihre Referenzdaten eine Zeilen- oder Spaltenstruktur haben, sodass Sie bestimmte Felder bestimmten Spalten zuordnen können.
STRING:
$e.target.hostname in %table_name.column_nameREGEX:
$e.target.hostname in regex %table_name.column_nameCIDR:
$e.principal.ip in cidr %table_name.column_name
Beispiele: Syntax und Verhalten von Referenzlisten
In den folgenden Beispielen wird veranschaulicht, wie Sie Abfragen für verschiedene Dataset-Typen strukturieren und bedingte Logik auf Ihre Übereinstimmungen anwenden:
Beispiel: Syntax für Referenzliste in einer Abfrage
// STRING reference list $e.principal.hostname in %string_reference_list // Regular expression reference list $e.principal.hostname in regex %regex_reference_list // CIDR reference list $e.principal.ip in cidr %cidr_reference_list
Beispiel: Syntax der Datentabelle
// STRING data table $e.target.hostname in %data_table_name.column_name // Regular expression data table $e.target.hostname in regex %regex_table_name.column_name // CIDR data table $e.principal.ip in cidr %cidr_table_name.column_name
Beispiel: not- und nocase-Operatoren
Der Operator nocase ist mit STRING- und REGEX-Listen kompatibel.
// Exclude events whose hostnames match substrings in my_regex_list.
not $e.principal.hostname in regex %my_regex_list
// Event hostnames must match at least one string in my_string_list (case insensitive).
$e.principal.hostname in %my_string_list nocase
Der Operator nocase ist mit STRING- und REGEX-Listen kompatibel.
Aus Leistungsgründen wird die Verwendung von Referenzlisten durch die Detection Engine eingeschränkt.
- Maximal
in-Anweisungen in einer Regel, mit oder ohne spezielle Operatoren: 10 - Maximale Anzahl von
in-Anweisungen mit dem Operatorregex: 5 - Maximale Anzahl von
in-Anweisungen mit dem Operatorcidr: 5
Weitere Informationen zum Verhalten und zur Syntax von Referenzlisten finden Sie unter Referenzlisten.
Damit die Leistung in Search, Dashboards und Erkennungen optimal bleibt, erzwingt die YARA-L-Engine die folgenden Limits:
- Maximale Anzahl von
in-Anweisungen in einer Abfrage, mit oder ohne Sonderoperatoren: 7 - Maximale Anzahl von
in-Anweisungen mit dem Operatorregex: 4 - Maximale Anzahl von
in-Anweisungen mit dem Operatorcidr: 2
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten