WAF ルールセット

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

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

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

要求ルールセット

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

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

  • Detect and allow violations (違反を検出して許可)​ - 違反を検出し、インシデントごとに INFO レベルでログの情報を取得します。
    これは、ERROR レベル (Edge ポリシーのデフォルトのログレベル) で概要レポートにも含まれます。
    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. 「Anypoint Security Policy and Runtime Fabric Inbound Traffic API」 (Anypoint Security ポリシーおよび Runtime 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 分ごとに生成されます。​「Runtime Fabric でのログの表示および設定」​を参照してください。未加工のログメッセージのコンテンツには、WAF と DoS の概要統計が含まれます。

次に例を示します。

フォーマットされていない WAF 概要ログメッセージからの未加工データ。

この例の未加工データを 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
},
...