クエリ言語の概要
強力なクエリ言語は、条件に従ってログファイルの中から指定されたレコードだけを表示するために使います。Boolean演算子、ワイルドカード、フィールド、範囲などを使って複雑なクエリを作成することもできます。このセクションでは、クエリ言語の詳細について説明します。
SmartConsoleを使ってクエリを作成する場合、該当する条件がクエリ検索バーに表示されます。
基本的なクエリ構文は[<Field>:] <Filter Criterion>
です。
Boolean演算子を使って複数の条件を1つのクエリに入れるには
[<Field>:] <Filter Criterion> {AND|OR|NOT} [<Field>:] <Filter Criterion> ...
クエリのキーワードとフィルタ条件では、大文字と小文字は区別しません。ただし、いくつか例外があります。例えば、"source:<X>
"は大文字と小文字が区別されます("Source:<X>
"とは一致しません)。クエリ結果で期待する結果が得られないときは、クエリ条件の大文字と小文字を変えてみたり、両方大文字/両方小文字で試してみたりしてください。
複数の条件をクエリに使う場合は、ANDが自動的に使われるため、追加する必要はありません。必要に応じてORやBoolean演算子を入力してください。
条件の値
条件の値は1つ以上のテキスト文字列で書きます。単語、IPアドレス、URLなどの1つのテキスト文字列は、区切り文字なしで入力できます。フレーズや2語以上含まれるテキスト文字列は、引用符で囲む必要があります。
1文字の文字列の例:
-
John
-
inbound
-
192.168.2.1
-
mahler.ts.example.com
-
dns_udp
フレーズの例:
-
"John Doe"
-
"Log Out"
-
"VPN-1 Embedded Connector"
IPアドレス
ログクエリで使うIPv4およびIPv6アドレスは、1語としてカウントされます。IPv4アドレスをドット付き10進法で入力し、IPv6アドレスをコロンを使って入力します。
例:
-
192.0.2.1
-
2001:db8::f00:d
ワイルドカードの'*
'文字と標準ネットワークサフィックスを使って、範囲内のIPアドレスに一致するログを検索できます。
例:
-
src:192.168.0.0/16 (発信元IP 192.168.0.0~192.168.255.255 すべてのレコードを表示)
-
src:192.168.1.0/24 (発信元IP 192.168.1.0~192.168.1.255すべてのレコードを表示)
-
src:192.168.2.* 発信元IP 192.168.2.0~192.168.2.255すべてのレコードを表示
-
192.168.* 192.168.0.0~192.168.255.255すべてのレコードを表示
NOT値
NOT <field>値をログクエリのフィールドキーワードで使用して、クエリの値でないフィールドの値のログを検索できます。
構文
NOT <field>: <value>
Example
NOT src:10.0.4.10
ワイルドカード
標準ワイルドカード(*と?)をクエリに使って、ログレコードの変数の文字や文字列とマッチさせることができます。1つ以上のワイルドカード文字を使用できます。
ワイルドカードの構文
-
? (疑問符) は1文字がマッチする対象になります。
-
* (アスタリスク) は文字列がマッチする対象になります。
例:
-
Jo?の場合、JoeとJonはマッチしますがJosephは該当しません。
-
Jo*の場合、 Jon、Joseph、John Paulがマッチします。
条件の値に1語以上含まれる場合、各語にワイルドカードを使うことができます。例えば'Jo* N*'の場合、Joe North、John Natt、Joshua Namedなどが表示されます。
注 - 単一の‘*
’では、空白なしの値の文字列が検索対象になります。例えばassetname:*
フィールドキーワード
事前に定義されているフィールド名をフィルタ条件のキーワードとして使うことができます。クエリ結果には、指定フィールドで条件にマッチしたログレコードだけが表示されます。フィールド名を使わないと、すべてのフィールドで条件に合うレコードがクエリ結果に表示されます。
事前定義されているフィールドキーワードは、以下のとおりです。一部のフィールドでは、主要キーワードの代わりとなるキーワードのエイリアスの入力がサポートされています。
キーワード |
キーワードのエイリアス |
内容 |
---|---|---|
|
|
イベントの重要度 |
|
|
イベントの、アプリケーションからの潜在的なリスク |
|
|
保護機能の名前 |
|
|
保護のタイプ |
|
|
イベントの悪質性のコンフィデンスレベル |
|
|
セキュリティルールの実行アクション |
|
|
Software Blade |
|
|
トラフィック宛先IPアドレス、DNS名またはCheck Pointネットワークオブジェクト名 |
|
|
セキュリティゲートウェイから発生する名前 |
|
|
ログエントリを生成したサービス |
|
|
トラフィック発信元IPアドレス、DNS名またはCheck Pointネットワークオブジェクト名 |
|
|
ユーザ名 |
フィールド名クエリの構文:
<field name>:<values>
-
<field name> - 事前定義されているフィールド名
-
<values> - 1つ以上のフィルタの条件
ルール番号を検索するには、ルールフィールド名を使用します。例:
rule:7.1
ルール番号をフィルタに使う場合、該当する番号を持つすべてのレイヤのルールが一致します。
ルール名を検索する場合は、ルールフィールドは使用しないでください。自由テキストを入力します。例:
"Block Credit Cards"
ベストプラクティス - ルール名のフリーテキスト検索を行います。ルール名は、一意で別のレイヤで使用していないことを確認してください。
例:
-
source:192.168.2.1
-
action:(Reject OR Block)
OR Boolean演算子を丸括弧で囲んで使い、複数の条件値を指定できます。
重要 - 複数の値を持つフィールドを使用する場合は以下に注意してください。
-
Boolean演算子を使用する(例: AND)。
-
括弧を使用する。
Boolean演算子
Boolean演算子AND、OR、NOTを使って、複数の異なる条件を持つフィルタを作成できます。Boolean表現は括弧で囲んで複数含めることができます。
Boolean演算子を使わず複数の条件を入力した場合、AND演算子が暗黙的に使われます。括弧を使わずに複数の条件を指定する場合、OR演算子がAND演算子の前に適用されます。
例:
-
blade:"application control" AND action:block
トラフィックがブロックされたApplication and URL Filtering Software Bladeからのログレコードを表示します。
-
192.168.2.133 10.19.136.101
2つのIPアドレスにマッチするログエントリが含まれます。AND演算子が自動的に使われます。
-
192.168.2.133 OR 10.19.136.101
いずれかのIPアドレスにマッチするログエントリが含まれます。
-
(blade:Firewall OR blade:IPS OR blade:VPN) AND NOT action:drop
Firewall、IPS、VPNブレードで破棄(Drop)されないすべてのログエントリが表示されます。括弧で囲まれた条件は、
AND NOT
条件の前に適用されます。 -
source:(192.168.2.1 OR 192.168.2.2) AND destination:17.168.8.2
2つの発信元IPアドレスのうち、宛先IPアドレスが
17.168.8.2
のログエントリが表示されます。この例では、フィールドの条件でのBoolean演算子の使い方も表しています。