クエリ言語の概要

強力なクエリ言語は、条件に従ってログファイルの中から指定されたレコードだけを表示するために使います。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:*

フィールドキーワード

事前に定義されているフィールド名をフィルタ条件のキーワードとして使うことができます。クエリ結果には、指定フィールドで条件にマッチしたログレコードだけが表示されます。フィールド名を使わないと、すべてのフィールドで条件に合うレコードがクエリ結果に表示されます。

事前定義されているフィールドキーワードは、以下のとおりです。一部のフィールドでは、主要キーワードの代わりとなるキーワードのエイリアスの入力がサポートされています。

キーワード

キーワードのエイリアス

内容

severity

 

イベントの重要度

app_risk

 

イベントの、アプリケーションからの潜在的なリスク

protection

 

保護機能の名前

protection_type

 

保護のタイプ

confidence_level

 

イベントの悪質性のコンフィデンスレベル

action

 

セキュリティルールの実行アクション

blade

product

Software Blade

destination

dst

トラフィック宛先IPアドレス、DNS名またはCheck Pointネットワークオブジェクト名

origin

orig

セキュリティゲートウェイから発生する名前

service

 

ログエントリを生成したサービス

source

src

トラフィック発信元IPアドレス、DNS名またはCheck Pointネットワークオブジェクト名

user

 

ユーザ名

フィールド名クエリの構文:

<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演算子ANDORNOTを使って、複数の異なる条件を持つフィルタを作成できます。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演算子の使い方も表しています。