リクエストの検索

シグナルでタグ付けされ、すべてのもしくはサンプリングされたデータストレージカテゴリに該当する個々のリクエストのリストを表示できます。このガイドでは、このリストを絞り込むために使用できるさまざまな検索機能と検索構文について説明します。

フィルタリング

フィルターを使用すれば、特定の条件に合致するリクエストを検索できます。選択した値は検索バーに自動的に入力され、そこでクエリをさらに修正できます。

  1. Next-Gen WAF control panel
  2. Fastly control panel

リクエストページのフィルターオプションには、次のものがあります。

  • 時間:リクエストが送信された時間に基づいてリクエストリストをフィルタリングします。たとえば、2 hours が選択されると、過去2時間以内に行われたリクエストのみがページに表示されます。

  • 攻撃シグナル:リクエストがタグ付けされた攻撃シグナルに基づいてリクエストリストをフィルタリングします。たとえば、Attack Tooling が選択されると、Attack Tooling シグナルがタグ付けされたリクエストのみがページに表示されます。

  • 異常シグナル:リクエストがタグ付けされた異常シグナルに基づいてリクエストリストをフィルタリングします。たとえば、Address Changed が選択されると、Address Changed シグナルがタグ付けされたリクエストのみがページに表示されます。

  • レスポンスコード:リクエストに関連付けられたレスポンスコードに基づいてリクエストリストをフィルタリングします。たとえば、404 が選択されると、404 レスポンスコードを持つリクエストのみがページに表示されます。

検索バーに自由形式のテキストや明示的なクエリを入力することで、特定の条件に合致するリクエストを検索できます。明示的なクエリは、次の <key><operator><value> 構文に従います。

  • キーは検索対象のフィールドです。

  • 演算子はキーと値の関係を定義します。

  • そのは、リクエストリストをフィルタリングするために使用される特定の値です。

フリーテキストおよび明示的なクエリの例は次の通りです。

フリーテキストクエリ明示的なクエリ説明
/a/path/here sqli -7hpath:/a/path/here sqli from:-7hこの特定のパスをで、過去7時間のすべての SQLI を表示
RUcountry:ruロシアからの最近のすべてのリクエスト
cn 500country:cn httpcode:500中国からの最近のリクエストのうち、500 エラーが発生したものすべて
404 233.252.0.23httpcode:404 ip:233.252.0.23404 エラーが発生した IP からの最近のリクエスト

キー

検索可能なキーは次の通りです。

Name種類説明
agent文字列オンプレミス WAF デプロイの場合、agent はエージェント (agent:~hostnameagent:~appnameagent:hostname.appname、もしくは agent:hostname-appname) のサーバーホスト名 (あるいはエイリアス) です。エッジ WAF デプロイの場合、agent はリクエストがアクセスしようとしているドメインもしくはサーバーのホスト名です (例:agent:www.example.com)。
agentcode整数エージェントの内部レスポンスコード
bytesout整数HTTP レスポンスサイズ (バイト単位)
country文字列推定の発進元の国 (例:米国、ロシア) をリクエスト
from時間特定の日付以降のリクエストで出力をフィルタリングします。詳細については、時間セクションを確認してください。
httpcode整数レスポンスの HTTP レスポンスコード
ip文字列単一の IPv4 (ip:198.51.100.128)
単一の IPv6 (ip:2001:0db8:1681:f16f:d4dc:a399:c00d:0225)
IPv4 CIDR (ip:198.51.100.0/24)
IPv6 CIDR (ip:2001:0db8:1681:f16f::/64)
IPv4 範囲 (ip:198.51.100.0..198.51.100.255)
IPv6 範囲 (ip:2001:0db8:1681:f16f:: から 2001:0db8:1681:f16f:ffff:ffff:ffff:ffff)
ja3文字列JA3 フィンガープリント
ja4文字列JA4 フィンガープリント
list文字列フラグ付きイベントをトリガーしたクライアント。サポートされている値は flagged のみです。
method文字列HTTP メソッド (例:GET、POST)
path文字列リクエスト URL パス (クエリパラメータを含まない)
payload文字列シグナルをトリガーしたデータ (すなわち攻撃値)
protocol文字列HTTP リクエストプロトコル (通常は HTTP/1.1 もしくは HTTP/1.0)
ratelimited文字列特定のしきい値シグナルでタグ付けされ、レート制限が適用されたリクエスト。検索構文は ratelimited:site.<threshold-signal-ID> です。<threshold-signal-ID> を、しきい値シグナルとして使用されている カスタムシグナル の ID に置き換えてください。
responsemillis整数HTTP レスポンス時間 (ミリ秒単位)
remotehost文字列リモートホスト名 (remotehost:www.example.com) もしくはサブドメイン一致 (remotehost:~example.com)
requestheader文字列サポートされているリクエストヘッダー (例:requestheader:Accept-Encoding:gzip)
ruleid文字列ルールの ID
server文字列HTTP リクエストでリクエストされたサーバー名 (例:example.comhttp://example.com/name の場合)
tag文字列リクエストの特定のシグナル (SQLI、XSS など)。詳細については、シグナルセクションを確認してください。
target文字列サーバー + パス
sort文字列time-asc (古い順) もしくはtime-desc (新しい順) でソート
until時間特定の日付より前のリクエストで出力をフィルタリングします。詳細については、時間セクションを確認してください。
useragent文字列リクエストのユーザーエージェント (ブラウザ)
workspace文字列アカウント内の特定のワークスペース。Fastly コンソールでは、アカウントレベルでリクエストを表示する場合にのみ利用可能です。

requestheader キー

リクエストヘッダーを検索するには、requestheader:<headername>:<headervalue> 構文 (例:requestheader:Accept-Encoding:gzip) を使用します。ヘッダー名は大文字小文字を区別して入力することも、区別せずに入力することもできます。requestheader キーは、すべての検索演算子 (例:-requestheader:Accept-Encoding:gzip もしくは requestheader:~Accept-Encoding:gz) および以下のリクエストヘッダーをサポートします。

  • Accept

  • Accept-Encoding

  • Cache-Control

  • Content-Length

  • Content-Type

  • Origin

  • Referrer

  • Sec-Ch-Ua

  • Sec-Ch-Ua-Mobile

  • Sec-Ch-Ua-Platform

  • Sec-Ch-Ua-Platform-Version

  • Sec-Ch-Ua-Arch

  • Sec-Ch-Ua-Bitness

  • Sec-Ch-Ua-Full-Version-List

  • Sec-Ch-Ua-Model

  • Sec-Fetch-Dest

  • Sec-Fetch-Mode

  • Sec-Fetch-Site

  • Sec-Fetch-User

  • Upgrade-Insecure-Requests

  • User-Agent

  • X-Bug-Bounty

  • X-Forwarded-For

  • X-Forwarded-Host

  • X-Forwarded-Port

  • X-Forwarded-Proto

  • X-Forwarded-Server

  • X-Real-Ip

演算子

演算子を使用する際は、以下の点に留意してください。

  • 以下のすべての値は、スペースを含めるために引用符で囲むことができます。

  • 任意のキーの前に - (マイナス) を追加すると、オペレーションが無効になります。

  • 異なるキー名は AND 演算子 (from:-1h path:/foo) として機能します。

  • 同じ名前の複数のキーは OR 演算子として機能します (path:/foo path:/bar は、/foo もしくは /bar のいずれかに一致するパスを返す必要があります)。

サポートされている演算子には以下のようなものがあります。

演算子意味
key:value等しい
key:=value等しい、代替構文
-key:value等しくない、すべての演算子の一般的な否定
+key:value検索結果には指定されたキーとその値が含まれている必要があります
key:!=value等しくない、代替構文
key:>valueより大きい、整数のみ
key:>=value等しいまたはより大きい、整数のみ
key:<valueより小さい、整数のみ
key:<=value等しいまたは以下、整数のみ
key:value1..value2value1からvalue2までの範囲で、整数のみ。時間については、fromuntil をご確認ください。
key:~value指定された用語でフィールドを検索します
key:"*value"key:"value*"、または key:"val*ue"partial 値 (例:remotehost:~"*fiber*") で検索します。* は任意の数の文字に一致します。

+ 演算子

同じキーの複数のインスタンスを含むリクエストを検索するには、+ 演算子を使用します。たとえば、tag:CMDEXE +tag:TRAVERSAL を検索すると、CMDEXETRAVERSAL の両方のシグナルでタグ付けされたリクエストが返されます。演算子 + がない場合、tag:CMDEXE tag:TRAVERSAL 検索では CMDEXE、もしくは TRAVERSAL のいずれかのシグナルでタグ付けされたリクエストが返されます。

+ 演算子を使用した検索クエリを作成する際には、次の点に留意してください。

  • + 演算子は、payloadruleid、および tag キーのみをサポートします。

  • 検索にキーのインスタンスが1つしかない場合、+ 演算子は不要です。検索結果には、既にキーとその値が含まれています。たとえば、+tag:scanner country:ustag:scanner country:us は同じリクエストを返します。

  • 検索において同一キーが2つ存在する場合、+ 演算子を配置しても結果は変わりません。たとえば、以下の検索は同じ結果を返します。+tag:suspected-bad-bot +tag:scanner+tag:suspected-bad-bot tag:scanner、および tag:suspected-bad-bot +tag:scanner

  • 検索で同じキーのインスタンスが複数ある場合、+ 演算子がないインスタンスは OR ロジックでグループ化されます。たとえば、+tag:suspected-bad-bot tag:scanner tag:sans の検索では、SUSPECTED-BAD-BOTSCANNER の両方のシグナルがタグ付けされたリクエスト、または SUSPECTED-BAD-BOTSANS の両方のシグナルがタグ付けされたリクエストが検索されます。

時間

時間範囲は、fromuntil キーを使用してさまざまな方法で指定できます。

リクエストページのクエリは、最大7日間の範囲に制限されています。7日を超える期間のクエリでは結果は返されません。たとえば、2週間前の検索結果を検索したい場合、クエリでは from:-21d until:-14d を使用する必要があり、これは7日間のウィンドウになります。単に from:-21d のクエリでは、その期間が21日間のウィンドウになるため、結果は得られません。

相対時間

サフィックス意味
-5s5 秒前 (現在時刻から)
-5min5 分前
-5h5 時間前
-5d5 日前
-5w5 週間前
-5mon5 か月前
-5y5 年前

例:

  • from:-5h (現在まで)

  • from:-5h until:-4h (1時間の範囲)

絶対時間

絶対時間は以下を使用して指定することも可能です

  • Unix UTC エポックからの秒数

  • Java/JavaScript UTC エポックからのミリ秒

  • ISO 日付形式 YYYYMMDD

絶対時間の例:Unix UTC 秒

  • from:141384000 (現在まで)

  • from:141384000 until:1413844691

絶対時間の例:Java/JavaScript ミリ秒 UTC

  • from:141384000000 (現在まで)

  • from:141384000000 until:1413844691000

絶対日付の例:YYYYMMDD

  • from:20141031 (現在まで)

  • from:20141031 until:20141225

時間形式を組み合わせて使用することもできます。

  • from:20141031 until:-1h

シグナル

検索バーでは、tag キーを使用して、特定のシグナル (例:SQLI、XSS) でリクエストをフィルタリングできます。

シグナルタイプ説明
システムシグナル検索構文は tag:<system-signal> です。<system-signal> を検索したいシステムシグナルの名前に必ず置き換えてください。
Corp (アカウント) カスタムシグナル検索構文は tag:corp.<corp-custom-signal> です。<corp-custom-signal> を検索したい企業 (アカウント) のカスタムシグナルの名前に必ず置き換えてください。
サイト (ワークスペース) カスタムシグナル検索構文は tag:site.<site-custom-signal> です。<site-custom-signal> を検索したいサイト (ワークスペース) のカスタムシグナルの名前に必ず置き換えてください。

クエリビルダー

重要:クエリビルダーは Fastly コンソールでのみ使用でき、Next-Gen WAF コンソールでは使用できません。

クエリビルダーでは、タグ (例:NOUA)、HTTP ステータスコード (例:404、500)、およびワークスペースの特定の組み合わせによるリクエストをフィルタリングします。

クエリビルダーを使用して結果をフィルタリングするには、次の手順を実行します。

  1. Time menu を使用して、リクエストが送信された時間範囲を指定します。

  2. Query builder をクリックします。

  3. TagHTTP CodeWorkspace タブから、フィルタリングしたいタグとコードの組み合わせを選択します。選択内容が検索バーに入力されます。

    いずれかのタブで Select All をクリックすると、すべてのタグ、HTTP コード、またはワークスペースを選択できます。指定されたタブで Clear selection をクリックして、そのタブの選択を解除するか、Clear all をクリックしてすべてのクエリビルダーフィルターを解除します。

  4. クエリビルダーを終了します。

  5. Search をクリックします。