高度なクエリでサポートされる EQL 構文
構文ヘルプ
[
CylanceOPTICS
] > [高度なクエリ]の構文ヘルプペインには、使用可能な CylanceOPTICS
イベントクラスと、それに関連するアーチファクト、タイプ、カテゴリ、およびサブカテゴリが一覧表示されます。入力を開始すると、構文オプションと検証メッセージが表示され、クエリを作成しやすくなります。EQL クエリ形式
CylanceOPTICS
EQL クエリでは、基本クエリに次の形式を使用します。<event class>where<event/artifact>.<facet>==<value>
クエリはアーチファクトに関連するイベントを検索するため、クエリで関連するイベントクラスを使用する必要があります。
where 句は、event.type、event.category、event.subcategory、または artifact.facet の値に基づいて結果をフィルタリングできます。
or
または and
を使用して、複数のフィルター句を組み合わせることができます。任意のイベントクラスの照合
イベントクラスに
any
を使用して、すべての利用可能なイベントクラスにマッピングできます。イベントクラスのエスケープ
特殊文字(ハイフンやピリオドなど)を含むイベントクラスをエスケープするには、スペースを含めるか、数字で始まり、引用符(")で囲む、または 3 つの引用符("")で囲みます。
フィールド名のエスケープ
ハイフン、スペース、または数字で始まるフィールド名をエスケープするには、バックティック(`)で囲みます。フィールド名のバックティック(`)をエスケープするには、2 個のバックティック(``)で囲みます。
値のエスケープ
値に引用符やバックスラッシュを含む特殊文字を使用する場合は、前にバックスラッシュを付けてエスケープする必要があります(例:引用符の場合は \"、バックスラッシュの場合は \\)。
条件
条件は、イベントが一致する必要がある 1 つ以上の条件で構成されます。次のセクションで説明する演算子を使用して、条件を指定して組み合わせることができます。
比較演算子
演算子 | 説明 |
---|---|
< | この演算子は、演算子の左側の値が右側の値より小さい場合に TRUE を返します。それ以外の場合は FALSE を返します。 |
<= | この演算子は、演算子の左側の値が右側の値と等しいか小さい場合に TRUE を返します。それ以外の場合は FALSE を返します。 |
== | この演算子は、演算子の左側と右側の値が等しい場合に TRUE を返します。それ以外の場合は FALSE を返します。ワイルドカードはサポートされていません。 |
: | この演算子は、演算子の左右の文字列が等しい場合に TRUE を返します。それ以外の場合は FALSE を返します。文字列の比較にのみ使用できます。 |
!= | この演算子は、演算子の左右の値が等しくない場合に TRUE を返します。それ以外の場合は FALSE を返します。ワイルドカードはサポートされていません。NULL 値も結果からフィルタリングされることに注意してください(==NULL を使用して NULL の結果を表示できます)。 |
>= | この演算子は、演算子の左側の値が右側の値と等しいか大きい場合に TRUE を返します。それ以外の場合は FALSE を返します。文字列を比較する場合、演算子は大文字と小文字を区別した辞書式順序を使用します。 |
> | この演算子は、演算子の左側の値が右側の値より大きい場合に TRUE を返します。それ以外の場合は FALSE を返します。文字列を比較する場合、演算子は大文字と小文字を区別した辞書式順序を使用します。 |
= は等しい演算子としてサポートされていません。== または : を使用します。
パターン比較キーワード
演算子 | 説明 |
---|---|
like | この演算子は、キーワードの左側の文字列が右側の文字列と一致する場合に TRUE を返します(大文字と小文字が区別されます)。リスト検索(以下の lookup 演算子を参照)をサポートしており、文字列の比較にのみ使用できます。大文字と小文字を区別しない照合には、like~ を使用します。 |
regex | この演算子は、キーワードの左側の文字列が右側の正規表現と一致する場合に TRUE を返します(「正規表現の構文」を参照)。list 検索をサポートし、文字列の比較にのみ使用できます。大文字と小文字を区別しない照合には、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
比較の制限
比較を連鎖することはできません。代わりに、比較の間に論理演算子を使用します(以下の論理演算子のセクションを参照)。
たとえば、
foo < bar <= baz
はサポートされていませんが、foo < bar and bar <= baz
はサポートされています。関数を使用してフィールドを変更した場合でも、フィールドを別のフィールドと比較することはできません。
次のクエリは、process.parent.name フィールドの値と process.name フィールドを比較するため無効です。
process where process.parent.name == "foo" and process.parent.name == process.name
次のクエリは、process.parent.name フィールドと process.name フィールドの両方を静的な値と比較するため、有効です。
process where process.parent.name == "foo" and process.name == "foo"
論理演算子
演算子 | 説明 |
---|---|
and | この演算子は、条件が左右の両方で TRUE を返した場合にのみ TRUE を返します。それ以外の場合は FALSE を返します。 |
OR | この演算子は、左側または右側のいずれかの条件が TRUE の場合に TRUE を返します。それ以外の場合は FALSE を返します。 |
not | この演算子は、右側の条件が FALSE の場合に TRUE を返します。 |
ルックアップ演算子
演算子 | 説明 |
---|---|
in | この演算子は、指定されたリストに値が含まれている場合に TRUE を返します(大文字と小文字が区別されます)。大文字と小文字を区別しない照合の場合は、in~ を使用します。 |
not in | この演算子は、指定されたリストに値が含まれていない場合に TRUE を返します(大文字と小文字が区別されます)。大文字と小文字を区別しない照合の場合は、not in~ を使用します。 |
: | この演算子は、指定されたリストに文字列が含まれている場合に TRUE を返します。文字列の比較にのみ使用できます。 |
like | この演算子は、提供されたリストの文字列と文字列が一致する場合に TRUE を返します(大文字と小文字が区別されます)。文字列の比較にのみ使用できます。大文字と小文字を区別しない照合には、like~ を使用します。 |
regex | この演算子は、指定されたリスト内の正規表現パターンと文字列が一致する場合に TRUE を返します(正規表現構文を参照)。文字列の比較にのみ使用できます。大文字と小文字を区別しない照合には、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
すべての条件が一致する
イベントカテゴリだけでイベントを照合するには、
where true
条件を使用します。たとえば、次のクエリはすべてのファイルイベントに一致します。file where true
任意のイベントを照合するには、any キーワードを where true 条件と組み合わせます。
any where true
クエリの例
「CylanceOPTICS EQL クエリの例」を参照してください。