Skip Navigation

Unterstützte EQL-Syntax für erweiterte Abfragen

Syntaxhilfe

Im Syntax-Hilfefenster unter „
CylanceOPTICS
 > Erweiterte Abfrage“ werden die verfügbaren
CylanceOPTICS
-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

CylanceOPTICS
-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