要求と応答の脅威カテゴリごとにルールを有効にできます。これらは、「ルールセット」と呼ばれます。 ルールセット内には、偽陽性が発生する場合に個々のルールを無効にするオプションがあります。「個々のルールの無効化」を参照してください。
ルールは、さまざまなソースで実行できます。たとえば、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 を確認してください。
-
Anypoint Exchange に移動します。
-
「Anypoint Security Policy and Runtime Fabric Inbound Traffic API」 (Anypoint Security ポリシーおよび Runtime Fabric インバウンドトラフィック API) を検索して RAML をダウンロードします。
-
ZIP ファイルを抽出します。
-
<Download_location>/security-fabric-policies-api-<version>-raml/dataTypes/policies/WafRules/Rulesets.json に移動します。
Runtime Fabric ポリシーの概要
Runtime Fabric ポリシーの概要には、WAF の概要が含まれます。WAF の概要ログメッセージは、1 分ごとに生成されます。「Runtime Fabric でのログの表示および設定」を参照してください。未加工のログメッセージのコンテンツには、WAF と DoS の概要統計が含まれます。
次に例を示します。
この例の未加工データを 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
},
...