コンテンツにスキップ

イベントの検索とFilters

Wallarmは、検出されたイベント(攻撃とインシデント)を検索するための便利な方法を提供します。Wallarm ConsoleのAttacksおよびIncidentsセクションでは、次の検索方法が利用できます:

  • Filtersで絞り込み条件を選択します

  • Search fieldに、人間の言語に近い属性や修飾子を用いた検索クエリを入力します

filtersで設定した値はSearch fieldに自動的に反映され、その逆も同様です。

任意の検索クエリやフィルターの組み合わせは、Save a queryをクリックして保存できます。

Filters

利用可能なfiltersは、Wallarm Consoleで複数の形式で提供されています:

  • Filterボタンで展開・折りたたみできるFilters panel

  • 特定のパラメータ値を持つイベントのみを除外・表示するためのQuick filters

UIのFilters

異なるfiltersの値を選択すると、結果はそれらすべての条件を満たします。同じfilterに対して異なる値を指定すると、結果はそのいずれかの条件を満たします。

Search field

Search fieldは、人間の言語に近い属性や修飾子を持つクエリを受け付けるため、直感的にクエリを入力できます。例:

  • attacks xss: すべてのXSS攻撃を検索します

  • attacks today: 本日発生したすべての攻撃を検索します

  • xss 12/14/2020: 2020年12月14日のクロスサイトスクリプティングの疑い、攻撃、インシデントをすべて検索します

  • p:xss 12/14/2020: 2020年12月14日時点で、xssというHTTPリクエストパラメータ(例: http://localhost/?xss=attack-here)に含まれるすべての種類の疑い、攻撃、インシデントを検索します

  • attacks 9-12/2020: 2020年9月から12月までのすべての攻撃を検索します

  • rce /catalog/import.php: 昨日以降の/catalog/import.phpパスに対するすべてのRCE攻撃とインシデントを検索します

異なるパラメータの値を指定すると、結果はそれらすべての条件を満たします。同じパラメータに対して異なる値を指定すると、結果はそのいずれかの条件を満たします。

属性値をNOTに設定する

属性値を否定するには、属性または修飾子名の前に!を使用します。例: attacks !ip:111.111.111.111は、111.111.111.111を除く任意のIPアドレスから発生したすべての攻撃を表示します。

以下に、検索クエリで使用できる属性と修飾子の一覧を示します。

オブジェクトタイプで検索

検索文字列に指定します:

  • attack, attacks: 既知の脆弱性を狙っていない攻撃のみを検索します。

  • incident, incidents: インシデント(既知の脆弱性を悪用する攻撃)のみを検索します。

攻撃タイプで検索

検索文字列に指定します:

攻撃名は大文字・小文字のいずれでも指定できます。SQLIsqliSQLiはいずれも同等に正しいです。

OWASP主要脅威に関連する攻撃の検索

OWASPの脅威タグを使用して、OWASP主要脅威に関連する攻撃を検索できます。検索形式はowasp_api1_2023です。

これらのタグは、OWASPが定義する脅威の元の番号付けに対応します。Wallarmは、2023年版のOWASP API Top脅威に攻撃を関連付けます。

既知の攻撃(CVEと著名なエクスプロイト)で検索

  • known: CVE脆弱性やその他の著名な脆弱性タイプを悪用するため、明確に攻撃であるリクエストを検索します。

    特定のCVEまたは別の著名な脆弱性タイプで攻撃を絞り込むには、knownタグに加えて、または別々に該当するタグを指定します。例: known:CVE-2004-2402 CVE-2018-6008 または CVE-2004-2402 CVE-2018-6008 は、CVE-2004-2402CVE-2018-6008 脆弱性を悪用する攻撃を検索します。

  • !known: 潜在的な誤検知です。あまり知られていないエクスプロイトを含む、またはコンテキストによりエクスプロイトが正当なパラメータ値に見えるリクエストです。

CVEや著名なエクスプロイトで攻撃を絞り込むには、イベントタイプおよびCVE and exploitsのQuick filtersを使用できます。

APIプロトコル別にHitsを検索

APIプロトコルでHitsを絞り込むには、proto:またはprotocol:タグを使用します。

このタグでは次の値を使用できます:

  • proto:graphql

  • proto:grpc

  • proto:websocket

  • proto:rest

  • proto:soap

  • proto:xml-rpc

  • proto:web-form

  • proto:webdav

  • proto:json-rpc

認証プロトコル別にHitsを検索

攻撃者が使用した認証プロトコルでHitsを絞り込むには、auth:タグを使用します。

このタグでは次の値を使用できます:

  • auth:none

  • auth:api-key

  • auth:aws

  • auth:basic

  • auth:bearer

  • auth:cookie

  • auth:digest

  • auth:hawk

  • auth:jwt

  • auth:ntlm

  • auth:oauth1

  • auth:oauth2

  • auth:scram

攻撃対象で検索

検索文字列に指定します:

  • client: クライアントのデータに対する攻撃を検索します。

  • database: データベースに対する攻撃を検索します。

  • server: アプリケーションサーバーに対する攻撃を検索します。

リスクレベルで検索

検索文字列にリスクレベルを指定します:

  • low: 低リスクレベル。

  • medium: 中リスクレベル。

  • high: 高リスクレベル。

イベント時刻で検索

検索文字列に期間を指定します。期間を指定しない場合、直近24時間に発生したイベントが対象になります。

期間の指定方法は次のとおりです:

  • 日付で指定: 11/10/2020-11/14/2020

  • 日付と時刻で指定(秒は無視): 11/10/2020 11:11, 11:30-12:22, 11/10/2020 11:12-01/14/2020 12:14

  • 特定の時点に対する相対指定: >11/10/20

  • 文字列エイリアスを使用:

    • yesterday: 昨日の日付
    • today: 今日の日付
    • last <unit>: 直前の単位の開始から現在までの期間

      <unit>にはweekmonthyearまたはそれらの数値を使用できます。例: last weeklast 3 monthまたはlast 3 months

    • this <unit>: 現在の単位

      <unit>にはweekmonthyearを使用できます。例: 今日が水曜日の場合、this weekは今週の月曜・火曜・水曜に検出されたイベントを返します。

日付と時刻の形式は、profileで指定した設定に依存します:

  • MDYが選択されている場合はMM/DD/YYYY

  • DMYが選択されている場合はDD/MM/YYYY

  • 24‑hourにチェックがある場合は13:00

  • 24‑hourにチェックがない場合は1pm

月は数字と名称のいずれでも指定できます。1月なら011JanuaryJanです。年は完全表記(2020)と短縮表記(20)のいずれでも指定できます。日付に年が指定されていない場合は、現在の年が使用されます。

IPアドレスで検索

IPアドレスで検索するには、ip:プレフィックスを使用し、その後に次のいずれかを指定します

  • 特定のIPアドレス(例: 192.168.0.1)—この場合、そのIPアドレスに一致する攻撃元アドレスを持つすべての攻撃とインシデントが見つかります。

  • IPアドレス範囲を表す式。

  • 攻撃またはインシデントに関連するIPアドレスの総数。

IPアドレス範囲で検索

必要なIPアドレス範囲を設定するには、次を使用できます

  • 明示的なIPアドレス範囲:

    • 192.168.0.0-192.168.63.255
    • 10.0.0.0-10.255.255.255
  • IPアドレスの一部:

    • 192.168.192.168.0.0-192.168.255.255と同等。*修飾子を用いた冗長形式192.168.*も使用可能です
    • 192.168.0.192.168.0.0-192.168.0.255と同等
  • IPアドレスまたはその一部において、式の最後のオクテット内で値の範囲を指定:

    • 192.168.1.0-255192.168.1.0-192.168.1.255と同等
    • 192.168.0-255192.168.0.0-192.168.255.255と同等

    重要

    1つのオクテット内で値の範囲を使用する場合、末尾にドットは付けません。

  • サブネットプレフィックス(CIDR表記):

    • 192.168.1.0/24192.168.1.0-192.168.1.255と同等
    • 192.168.0.0/17192.168.0.1-192.168.127.255と同等

Note

上記のIPアドレス範囲の定義方法は組み合わせて使用できます。その場合は、必要な各範囲をip:プレフィックス付きで個別に列挙します。

: ip:192.168.0.0/24 ip:10.10. ip:10.0.10.0-128

IPアドレス数で検索

攻撃またはインシデントに関連するIPアドレスの総数で検索できます(攻撃とインシデントのみ):

  • ip:1000+ last month—過去1か月において、一意のIPアドレス数が1000を超える攻撃とインシデントを検索します(attacks incidents ip:1000+ last monthと同等)。

  • xss ip:100+—すべてのクロスサイトスクリプティング攻撃とインシデントを検索します。XSS攻撃タイプの攻撃元IPアドレス数が100未満の場合、検索結果は空になります。

  • xss p:id ip:100+idパラメータ(?id=aaa)に関連するすべてのXSS攻撃とインシデントを検索します。異なるIPアドレスの数が100を超える場合にのみ結果が返されます。

攻撃元IPアドレスが属するデータセンターで検索

攻撃を発生させたIPアドレスが属するデータセンターで検索するには、source:プレフィックスを使用します。

この属性値には次を指定できます:

  • tor Torネットワーク

  • proxy パブリックまたはWebプロキシサーバー

  • vpn VPN

  • aws Amazon

  • azure Microsoft Azure

  • gce Google Cloud Platform

  • ibm IBM Cloud

  • alibaba Alibaba Cloud

  • huawei Huawei Cloud

  • rackspace Rackspace Cloud

  • plusserver PlusServer

  • hetzner Hetzner

  • oracle Oracle Cloud

  • ovh OVHcloud

  • tencent Tencent

  • linode Linode

  • docean Digital Ocean

IPアドレスが登録されている国または地域で検索

攻撃を発生させたIPアドレスが登録されている国または地域で検索するには、country:プレフィックスを使用します。

国/地域名は、標準ISO 3166-1に対応する形式で大文字・小文字のいずれでも指定します。例: 中国からの攻撃の場合はcountry:CNまたはcountry:cn

悪意のあることで知られるIPからのイベントを検索

Wallarmは、公知の悪意のある活動に関連付けられていると広く認識されているIPアドレスについて公開リソースをスキャンします。その後、この情報の正確性を検証し、これらのIPのdenylist登録など必要な対応を容易にします。

これらの悪意のあるIPアドレスから発生したイベントを検索するには、source:maliciousタグを使用します。これはMalicious IPsを表し、denylistの「ソースタイプによるブロック」のセクションでも同名で表示されます。

このオブジェクトのデータは、以下のリソースの組み合わせから取得しています:

サーバーレスポンスステータスで検索

サーバーレスポンスステータスで検索するには、statuscode:プレフィックスを指定します。

レスポンスステータスは次のように指定できます:

  • 100から999までの数値

  • 「N–M」範囲(NとMは100から999までの数字)

  • 「N+」および「N-」範囲(Nは100から999までの数字)

サーバーレスポンスサイズで検索

サーバーレスポンスサイズで検索するには、s:またはs ize:プレフィックスを使用します。

任意の整数値で検索できます。999を超える数値はプレフィックスなしで指定できます。数値が999を超える場合でも「N–M」「N+」「N-」の範囲をプレフィックスなしで指定できます。

HTTPリクエストメソッドで検索

HTTPリクエストメソッドで検索するには、method:プレフィックスを指定します。

GETPOSTPUTDELETEOPTIONSを検索する場合、大文字で指定すればプレフィックスなしで検索文字列を指定できます。それ以外の値についてはプレフィックスを指定してください。

攻撃/インシデント内のHits数で検索

攻撃やインシデントをHits数で検索するには、N:プレフィックスを指定します。

例えば、attacks N:>100で100Hitsを超える攻撃を検索できます。attacks N:<10で10Hits未満の攻撃を検索できます。

ドメインで検索

ドメインで検索するには、d:またはdomain:プレフィックスを使用します。

第2レベル以上のドメインになり得る文字列は、プレフィックスなしで指定できます。任意の文字列はプレフィックス付きで指定できます。

ドメイン内ではマスクを使用できます。*は任意の長さの文字列、?は任意の1文字に一致します。

パスで検索

パスで検索するには、次のいずれかを行います:

  • u:またはurl:プレフィックスを使用し、/で始まるパスを引用符で囲んで指定します(例: url:"/api/users"

  • プレフィックスなしで/から入力を開始します(例: /api/users

アプリケーションで検索

攻撃が送信されたアプリケーションで検索するには、application:またはapp:プレフィックスを使用します(以前のpool:プレフィックスもサポートされていますが推奨しません)。

属性値は、SettingsApplicationsタブで設定されたアプリケーション名です。例: application:'Example application'

パラメータまたはパーサーで検索

パラメータまたはパーサーで検索するには、p:param:parameter:プレフィックス、または=サフィックスを使用します。サフィックスを使用する場合、/で始まらない文字列はパラメータと見なされます(末尾の=文字は値に含まれません)。

可能な属性値:

  • 対象となるパラメータ名。

    例えば、xssパラメータを狙った攻撃(例: GETパラメータにxssを含むSQLインジェクション攻撃)を見つけたいが、XSS攻撃そのものではない場合は、検索文字列にattacks sqli p:xssを指定します。

  • Wallarm nodeがパラメータ値を読み取るために使用したパーサー名。名前は大文字で指定する必要があります。

    例: attacks p:*BASE64は、base64パーサーで解析された任意のパラメータを狙う攻撃を検索します。

  • パラメータとパーサーのシーケンス。

    例: attacks p:"POST_JSON_DOC_HASH_from"は、リクエストのJSONボディ内fromパラメータで送られた攻撃を検索します。

値内ではマスクを使用できます。*は任意の長さの文字列、?は任意の1文字に一致します。

イベントの異常を検索

イベントの異常を検索するには、a:またはanomaly:プレフィックスを使用します。

異常検索を絞り込むには、次のパラメータを使用します:

  • size

  • statuscode

  • time

  • stamps

  • impression

  • vector

例:

attacks sqli a:sizeは、リクエストのレスポンスサイズに異常があるすべてのSQLインジェクション攻撃を検索します。

リクエスト識別子で検索

攻撃やインシデントをリクエスト識別子で検索するには、request_idプレフィックスを指定します。
request_idパラメータの値形式はa79199bcea606040cc79f913325401fbです。読みやすくするため、以下の例ではこのパラメータを省略形のプレースホルダー<requestId>に置き換えています。

例:

  • attacks incidents request_id:<requestId>: request_id<requestId>に等しい攻撃またはインシデントを検索します。

  • attacks incidents !request_id:<requestId>: request_id<requestId>に等しくない攻撃とインシデントを検索します。

  • attacks incidents request_id: 任意のrequest_idを持つ攻撃とインシデントを検索します。

  • attacks incidents !request_id: request_idを持たない攻撃とインシデントを検索します。

サンプリングされたHitsを検索

サンプリングされたHitsを検索するには、検索文字列にsampledを追加します。

ノードUUIDで検索

特定のノードで検出された攻撃を検索するには、node_uuidプレフィックスに続けてノードUUIDを指定します。

例:

  • attacks incidents today node_uuid:<NODE UUID>: <NODE UUID>のノードで本日見つかったすべての攻撃とインシデントを検索します。

  • attacks today !node_uuid:<NODE UUID>: <NODE UUID>のノードを除く任意のノードで本日見つかったすべての攻撃を検索します。

新しい攻撃のみを検索

ノードUUIDで検索する場合、2023年5月31日以降に検出された攻撃のみが表示されます。

ノードUUIDはNodesセクションのnode detailsで確認できます。UUIDをクリックするとコピーできます。またはView events from this node for the dayをクリックします(Attacksセクションに切り替わります)。

仕様による検索

特定の仕様ポリシー違反に関連するイベント一覧を取得するには、検索フィールドにspec:'<SPECIFICATION-ID>'を指定します。<SPECIFICATION-ID>を取得するには、API Specificationsで対象の仕様を編集モードで開きます。ブラウザのアドレス欄にspecidが表示されます。

Specification - セキュリティポリシー適用に使用

設定されたポリシー違反時のアクションに応じて、ブロック済みイベントとモニターイベントが表示されます。イベントの詳細には、違反タイプと原因となった仕様へのリンクが表示されます。

正規表現ベースのカスタマールールで検索

正規表現ベースのカスタマールールで検出された攻撃一覧を取得するには、検索フィールドにcustom_ruleを指定します。

この種の攻撃の詳細には、対応するルールへのリンク(複数の場合あり)が表示されます。必要に応じてリンクをクリックしてルールの詳細を開き、編集できます。

正規表現ベースのカスタマールールで検出された攻撃 - ルールの編集

!custom_ruleを使用すると、正規表現ベースのカスタマールールに関連しない攻撃の一覧を取得できます。