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:

CODE
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~.

CODE
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:

CODE
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:

CODE
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~.

CODE
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:

CODE
file where true

Um die Übereinstimmung beliebiger Ereignisse abzufragen, können Sie das Schlüsselwort „any“ mit der Bedingung „where true“ kombinieren:

CODE
any where true

Abfragebeispiele

Siehe Beispiel: Aurora Focus-EQL-Abfragen.