WAF ルールセット

要求と応答の脅威カテゴリごとにルールを有効にできます。これらは、「ルールセット」と呼ばれます。ルールセット内には、偽陽性が発生する場合に個々のルールを無効にするオプションがあります。​「個々のルールの無効化」​を参照してください。

ルールは、さまざまなソースで実行できます。たとえば、URI、ヘッダー、引数、セッション ID、Cookie、リクエストボディ、応答本文などで実行できます。

最適なパフォーマンスを得るには、Web アプリケーションのテクノロジに適用するルールのみを有効にします。

要求ルールセット

要求ルールセットは、10 個の脅威カテゴリ (ルールセットと呼ばれる) に分類されます。各ルールセットで 3 つのアクションのいずれかのみを適用できます。

  • Disable ruleset (ルールセットを無効化)​ - (デフォルト) ルールセット検出はオフ。

  • Detect and allow violations (違反を検出して許可)​ - 違反を検出し、インシデントごとに INFO レベルでログの情報を取得します。
    これは、ERROR レベル (エッジポリシーのデフォルトのログレベル) で概要レポートにも含まれます。
    Enable Inbound Traffic on Anypoint Runtime Fabric​を参照してください。

  • Detect and reject violations (違反を検出して拒否)​ - 要求を拒否し、​HTTP/1.1 400 BAD REQUEST - web application firewall​ の応答状況を返します。

    要求ルールセットの場合、ルールがトリガされたことが DoS に通知されます。​DoS が WAF エラー用に設定されている​場合、DoS はその WAF 関連のカウンタを更新し、必要に応じてアクションを実行します。DoS が WAF エラー用に設定されていない場合、DoS は WAF から受信した通知を無視します。
    要求ルールセットと応答ルールセットの両方の場合、違反に関する情報もインシデントごとに INFO レベルでログに送信されます。

10 個の脅威カテゴリは次のとおりです。

  • Scanner detection (スキャナ検出)

  • Protocol enforcement (プロトコル強制)

  • Protocol attack (プロトコル攻撃)

  • Local file inclusion (ローカルファイルインクルージョン)

  • Remote file inclusion (リモートファイルインクルージョン)

  • Remote code execution (リモートコード実行)

  • PHP injectionPHP (インジェクション)

  • Cross-site scripting (クロスサイトスクリプティング)

  • SQL injection (SQL インジェクション)

  • Session fixation (セッション固定)

応答ルールセット

応答ルールセットは、要求ルールセットと似ています。応答ルールセットは、バックエンドサーバからの応答をチェックして、応答に存在すべきでない情報を探します。

応答ルールセットも、脅威カテゴリに分類されます。要求ルールセットと同じアクション ([Disable ruleset (ルールセットを無効化)]、[Detect and reject violations (違反を検出して拒否)]、[Detect and allow violations (違反を検出して許可)]) が適用されます。応答ルールセットの場合、DoS には通知されませんが、それ以外については、これらの意味は要求ルールセットと同じです。

応答ルールセットの脅威カテゴリは次のとおりです。

  • Data leakages (データ漏洩)

  • SQL data leakages (SQL データ漏洩)

  • Java data leakages (Java データ漏洩)

  • PHP data leakages (PHP データ漏洩)

  • IIS data leakages (IIS データ漏洩)

RAML でデータを表示する

Anypoint Security RAML (​security-fabric-policies-api-<version>.raml​) でルールを表示すれば、各ルールを構成する正規表現を理解できます。各カテゴリのすべての OWASP CRS ルールが WAF ポリシーで有効になっているわけではありません。さまざまな理由により、ごく少数のルールが含まれていません。RAML で正確なコンテンツと含まれるルール ID を確認してください。

  1. Anypoint Exchange に移動します。

  2. 「Security Fabric Policies API」(Security Fabric ポリシー API) を検索して RAML をダウンロードします。

  3. ZIP ファイルを抽出します。

  4. <Download_location>/security-fabric-policies-api-<version>-raml/dataTypes/policies/WafRules/Rulesets.json​ に移動します。

Runtime Fabric ポリシーの概要

Runtime Fabric ポリシーの概要には、WAF の概要が含まれます。WAF の概要ログメッセージは、1 分ごとに生成されます。​View and Configure Logging in Runtime Fabric​を参照してください。未加工のログメッセージのコンテンツには、WAF と DoS の概要統計が含まれます。

次に例を示します。

waf summary log raw

この例の未加工データを JSON で書式設定すると、ルール 920210 が 63,193 回起動し、ルール 920310 が 1 回起動したことがわかります。これはルール 920210 で偽陽性が発生していることを示しています。

...
"requestProtocolEnforcement": {
  "920100": 0,
  "920120": 0,
  "920121": 0,
  "920130": 0,
  "920140": 0,
  "920160": 0,
  "920170": 0,
  "920180": 0,
  "920190": 0,
  "920200": 0,
  "920201": 0,
  "920202": 0,
  "920210": 63193,
  "920220": 0,
  "920230": 0,
  "920240": 0,
  "920250": 0,
  "920260": 0,
  "920270": 0,
  "920271": 0,
  "920272": 0,
  "920273": 0,
  "920274": 0,
  "920280": 0,
  "920290": 0,
  "920300": 0,
  "920310": 1,
  "920311": 0,
  "920320": 0,
  "920330": 0,
  "920340": 0,
  "920350": 0,
  "920360": 0,
  "920370": 0,
  "920380": 0,
  "920390": 0,
  "920400": 0,
  "920410": 0,
  "920420": 0,
  "920430": 0,
  "920440": 0,
  "920450": 0,
  "920460": 0
},
...

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub