Unterstützte EQL-Syntax für erweiterte Abfragen
Syntaxhilfe
Im Syntax-Hilfefenster unter Aurora Focus > Erweiterte Abfrage werden die verfügbaren Aurora Focus-Ereignisklassen und die zugehörigen Artefakte, Typen, Kategorien und Unterkategorien aufgeführt. Während der Eingabe werden Syntaxoptionen und Validierungsmeldungen angezeigt, um Ihnen bei der Erstellung Ihrer Abfrage zu helfen.
EQL-Abfrageformat
Aurora Focus-EQL-Abfragen verwenden das folgende Format für eine Basisabfrage:
event class where event/artifact.facet == value
Mit Abfragen wird nach Ereignissen gesucht, die sich auf Artefakte beziehen. Daher müssen Sie in Ihrer Abfrage die entsprechende Ereignisklasse verwenden.
Mit der where-Klausel können die Ergebnisse basierend auf den Werten „event.type“, „event.category“, „event.subcategory“ oder „artifact.facet“ gefiltert werden.
Sie können or oder and verwenden, um mehrere Filterklauseln zu verknüpfen.
Übereinstimmung mit jeder beliebigen Ereignisklasse
Sie können any für die Ereignisklasse verwenden, was allen verfügbaren Ereignisklassen entspricht.
Maskieren einer Ereignisklasse
Um Ereignisklassen zu maskieren, die Sonderzeichen enthalten (z. B. Bindestrich oder Punkt), ein Leerzeichen enthalten oder mit einer Ziffer beginnen, verwenden Sie einzelne einschließende Anführungszeichen (") oder drei einschließende Anführungszeichen (""").
Maskieren eines Feldnamens
Um Feldnamen zu maskieren, die einen Bindestrich oder ein Leerzeichen enthalten oder mit einer Ziffer beginnen, verwenden Sie umschließende Backticks (`). Verwenden Sie doppelte Backticks (``), um Backticks (`) im Feldnamen zu maskieren.
Maskieren eines Werts
Wenn Sie ein Sonderzeichen in einem Wert verwenden, einschließlich Anführungszeichen oder umgekehrter Schrägstriche, muss der Wert mit einem vorangestellten umgekehrten Schrägstrich (z. B. \" für ein Anführungszeichen, \\ für einen umgekehrten Schrägstrich) maskiert werden.
Bedingungen
Eine Bedingung umfasst mindestens ein Kriterium, dem ein Ereignis entsprechen muss. Sie können Kriterien mit den in den folgenden Abschnitten beschriebenen Operatoren festlegen und kombinieren.
Vergleichsoperatoren
|
Betreiber |
Beschreibung |
|---|---|
|
< |
Dieser Operator liefert „true“ zurück, wenn der Wert links vom Operator kleiner als der Wert rechts davon ist. Andernfalls wird „false“ zurückgegeben. |
|
<= |
Dieser Operator liefert „true“ zurück, wenn der Wert links vom Operator kleiner oder gleich dem Wert rechts davon ist. Andernfalls wird „false“ zurückgegeben. |
|
== |
Dieser Operator liefert „true“ zurück, wenn die Werte links und rechts vom Operator gleich sind. Andernfalls wird „false“ zurückgegeben. Platzhalter werden nicht unterstützt. |
|
: |
Dieser Operator liefert „true“ zurück, wenn Zeichenfolgen links und rechts vom Operator gleich sind. Andernfalls wird „false“ zurückgegeben. Kann nur zum Vergleichen von Zeichenfolgen verwendet werden. |
|
!= |
Dieser Operator liefert „true“ zurück, wenn die Werte links und rechts vom Operator nicht gleich sind. Andernfalls wird „false“ zurückgegeben. Platzhalter werden nicht unterstützt. Beachten Sie, dass auch NULL-Werte aus den Ergebnissen gefiltert werden (Sie können == NULL verwenden, um die NULL-Ergebnisse anzuzeigen). |
|
>= |
Dieser Operator liefert „true“ zurück, wenn der Wert links vom Operator größer oder gleich dem Wert rechts davon ist. Andernfalls wird „false“ zurückgegeben. Beim Vergleichen von Zeichenfolgen verwendet der Operator die lexikografische Reihenfolge mit Beachtung der Groß- und Kleinschreibung. |
|
> |
Dieser Operator liefert „true“ zurück, wenn der Wert links vom Operator größer als der Wert rechts davon ist. Andernfalls wird „false“ zurückgegeben. Beim Vergleichen von Zeichenfolgen verwendet der Operator die lexikografische Reihenfolge mit Beachtung der Groß- und Kleinschreibung. |
= wird nicht als Gleichheitsoperator unterstützt. Verwenden Sie stattdessen == oder :.
Schlüsselwörter für Mustervergleich
|
Betreiber |
Beschreibung |
|---|---|
|
like |
Dieser Operator liefert „true“ zurück, wenn die Zeichenfolge links vom Schlüsselwort mit der Zeichenfolge rechts davon übereinstimmt (unter Beachtung der Groß-/Kleinschreibung). Listen-Lookups (siehe Lookup-Operatoren unten) werden unterstützt und können ausschließlich zum Vergleichen von Zeichenfolgen verwendet werden. Wenn die Groß-/Kleinschreibung für die Übereinstimmung nicht beachtet werden soll, verwenden Sie like~. |
|
regex |
Dieser Operator liefert „true“ zurück, wenn die Zeichenfolge links vom Schlüsselwort mit einem regulären Ausdruck rechts davon übereinstimmt (siehe Syntax reguläre Ausdrücke). Listen-Lookups werden unterstützt und können ausschließlich zum Vergleichen von Zeichenfolgen verwendet werden. Wenn die Groß-/Kleinschreibung für die Übereinstimmung nicht beachtet werden soll, verwenden Sie regex~. |
my_field like "VALUE*" // case-sensitive wildcard matching
my_field like~ "value*" // case-insensitive wildcard matching
my_field regex "VALUE[^Z].?" // case-sensitive regex matching
my_field regex~ "value[^z].?" // case-insensitive regex matching
Einschränkungen für Vergleiche
Vergleiche können nicht verkettet werden. Verwenden Sie stattdessen einen logischen Operator zwischen Vergleichen (siehe Abschnitt „Logische Operatoren“ unten).
Beispiel: foo < bar <= baz wird nicht unterstützt, foo < bar and bar <= baz jedoch schon.
Sie können ein Feld nicht mit einem anderen Feld vergleichen, auch wenn die Felder mithilfe einer Funktion geändert werden.
Die folgende Abfrage ist ungültig, da sie den Feldwert „process.parent.name“ mit dem Feld „process.name“ vergleicht:
process where process.parent.name == "foo" and process.parent.name == process.name
Die folgende Abfrage ist gültig, da sie die Felder „process.parent.name“ und „process.name“ mit statischen Werten vergleicht:
process where process.parent.name == "foo" and process.name == "foo"
Logische Operatoren
|
Betreiber |
Beschreibung |
|---|---|
|
and |
Dieser Operator liefert nur dann „true“ zurück, wenn die Bedingung links und rechts „true“ zurückgibt. Andernfalls wird „false“ zurückgegeben. |
|
oder |
Dieser Operator liefert „true“ zurück, wenn eine der Bedingungen links oder rechts wahr ist. Andernfalls wird „false“ zurückgegeben. |
|
nicht |
Dieser Operator liefert „true“ zurück, wenn die Bedingung rechts davon falsch ist. |
Suchoperatoren
|
Betreiber |
Beschreibung |
|---|---|
|
in |
Dieser Operator liefert „true“ zurück, wenn der Wert in der angegebenen Liste enthalten ist (unter Beachtung der Groß-/Kleinschreibung). Wenn die Groß-/Kleinschreibung für die Übereinstimmung nicht beachtet werden soll, verwenden Sie in~. |
|
not in |
Dieser Operator liefert „true“ zurück, wenn der Wert nicht in der angegebenen Liste enthalten ist (unter Beachtung der Groß-/Kleinschreibung). Wenn die Groß-/Kleinschreibung für die Übereinstimmung nicht beachtet werden soll, verwenden Sie not in~. |
|
: |
Dieser Operator liefert „true“ zurück, wenn die Zeichenfolge in der angegebenen Liste enthalten ist. Er kann nur zum Vergleichen von Zeichenfolgen verwendet werden. |
|
like |
Dieser Operator liefert „true“ zurück, wenn die Zeichenfolge mit einer Zeichenfolge in der angegebenen Liste übereinstimmt (unter Beachtung der Groß-/Kleinschreibung). Er kann nur zum Vergleichen von Zeichenfolgen verwendet werden. Wenn die Groß-/Kleinschreibung für die Übereinstimmung nicht beachtet werden soll, verwenden Sie like~. |
|
regex |
Dieser Operator liefert „true“ zurück, wenn die Zeichenfolge mit einem regulären Ausdrucksmuster in der angegebenen Liste übereinstimmt (siehe Syntax reguläre Ausdrücke). Er kann nur zum Vergleichen von Zeichenfolgen verwendet werden. Wenn die Groß-/Kleinschreibung für die Übereinstimmung nicht beachtet werden soll, verwenden Sie regex~. |
my_field in ("Value-1", "VALUE2", "VAL3") // case-sensitive
my_field in~ ("value-1", "value2", "val3") // case-insensitive
my_field not in ("Value-1", "VALUE2", "VAL3") // case-sensitive
my_field not in~ ("value-1", "value2", "val3") // case-insensitive
my_field : ("value-1", "value2", "val3") // case-insensitive
my_field like ("Value-*", "VALUE2", "VAL?") // case-sensitive
my_field like~ ("value-*", "value2", "val?") // case-insensitive
my_field regex ("[vV]alue-[0-9]", "VALUE[^2].?", "VAL3") // case-sensitive
my_field regex~ ("value-[0-9]", "value[^2].?", "val3") // case-insensitive
Übereinstimmung mit jeder Bedingung
Verwenden Sie die Bedingung where true, um eine Übereinstimmung von Ereignissen ausschließlich in der Ereigniskategorie abzufragen. Die folgende Abfrage entspricht beispielsweise Dateiereignissen:
file where true
Um die Übereinstimmung beliebiger Ereignisse abzufragen, können Sie das Schlüsselwort „any“ mit der Bedingung „where true“ kombinieren:
any where true