Web アプリケーションファイアウォールポリシーの作成

[Anypoint Security] > [Security Policies (セキュリティポリシー)]​ で Web アプリケーションファイアウォール (WAF) ポリシーを作成し、Web アプリケーションとクライアントエンドポイント間にファイアウォールセキュリティポリシーを適用できます。WAF 違反検出ポリシーをサービス拒否 (DoS) にエスカレーションして、IP と接続をブロックすることもできます。

  1. Anypoint Platform にサインインし、​[Anypoint Security]​ に移動します。

  2. [Security Policies (セキュリティポリシー)]​ ページで、​[Create Policy (ポリシーを作成)]​ をクリックして ​[Web Application Firewall (WAF) (Web アプリケーションファイアウォール (WAF))]​ を選択します。

  3. ポリシーの​名前​を入力して ​[Save Policy (ポリシーを保存)]​ をクリックします。
    ポリシーは ​[Security Policies (セキュリティポリシー)]​ リストに表示され、そこでポリシーを編集および削除できます。

security policy list

要求ルールセットを設定する

Web アプリケーションへの要求トラフィックを許可またはブロックするルールを設定します。要求ルールセットについての詳細は、​「要求ルールセット」​を参照してください。

  1. 左側のメニューで、​[Request Rulesets (要求ルールセット)]​ をクリックします。
    デフォルトではすべてのルールが無効になっています。各ルールで次の操作を実行できます。

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

    • Detect and allow violations (違反を検出して許可)​ - 違反が検出され、インシデントごとに ​INFO​ レベルでログに情報が記録される。

    • Detect and reject violations (違反を検出して拒否)​ - 要求は拒否され、​HTTP/1.1 400 BAD REQUEST - web application firewall​ の応答状況が返され、ルールがトリガされたことが DoS に通知される。​DoS が WAF エラー用に設定されている​場合、DoS はその WAF 関連のカウンタを更新し、必要に応じてアクションを実行します。DoS が WAF エラー用に設定されていない場合、DoS は WAF から受信した通知を無視します。
      違反に関する情報もインシデントごとに ​INFO​ レベルでログに送信されます。

      各ルールの右にある ​i​ にカーソルを置くと、そのルールセットのルール ID 範囲が表示されます。この情報はルールセットのテストに使用できます。

      waf rule set
  2. [Advanced performance options (高度なパフォーマンスオプション)]​ で、次のいずれかのオプションを選択します。

    • Disable body scanner (ボディスキャナを無効化)​。デフォルトでは、リクエストボディが 1 MB より小さければリクエストボディがスキャンされ、大きければスキャンがスキップされます。
      リクエストボディのスキャンが必要ない場合や、CPU 消費量を削減する場合、このオプションをオンにします。

      リクエストボディが 1 MB より大きい場合、​[Disable body scanner (ボディスキャナを無効化)]​ をオンにしていなくてもスキャンはスキップされます。
    • Detect sensitive information (機密情報を検出)​ - このオプションをオンにすると、リクエストボディの機密情報がスキャンされます。WAF ポリシーを Runtime Fabric に適用している場合は、検出された機密情報パターンの数と数値 (ルール ID) がログの概要 (​rtfWafSecurityPolicySummary​) に記録されます。

      このオプションは、​[Disable Body Scanner (ボディスキャナを無効化)]​ がオンになっていると使用できません。 また、機密情報のインスタンスの API、ルール、方向、数が含まれる ​rtfSidSummary​ ログも生成されます。
  3. [Save Policy (ポリシーを保存)]​ をクリックします。

応答ルールセットを設定する

Web アプリケーションへの応答を許可またはブロックするルールを設定します。応答ルールセットについての詳細は、​「応答ルールセット」​を参照してください。

  1. 左側のメニューで、​[Response Rulesets (応答ルールセット)]​ をクリックします。
    デフォルトではすべてのルールセットが無効になっています。各ルールで次の操作を実行できます。

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

    • Detect and allow violations (違反を検出して許可)​ - 違反が検出され、インシデントごとに ​INFO​ レベルでログに情報が記録される。

    • Detect and reject violations (違反を検出して拒否)​ - 要求は拒否され、​HTTP/1.1 400 BAD REQUEST - web application firewall​ の応答状況が返され、違反に関する情報もインシデントごとに INFO レベルでログに送信される。

  2. [Advanced Performance Options (高度なパフォーマンスオプション)]​ で、次のいずれかのオプションを選択します。

    • Disable body scanner (ボディスキャナを無効化)​ - デフォルトでは、レスポンスボディが 1 MB より小さければレスポンスボディがスキャンされ、大きければスキャンがスキップされます。
      レスポンスボディのスキャンが必要ない場合や、CPU 消費量を削減する場合、このオプションをオンにします。
      このオプションは要求ルールセットの場合と同様に機能しますが、いくつかの重要な追加注意事項があります。

    • 応答メッセージのコンテンツタイプヘッダーには、次のいずれかの MIME タイプが必要。これがない場合、WAF ルールは評価されません。

      • text/plain

      • text/html

      • text/xml

      • application/json

    • Detect sensitive information (機密情報を検出)​ - このオプションをオンにすると、レスポンスボディの機密情報がスキャンされます。WAF ポリシーを Runtime Fabric に適用している場合は、検出された機密情報パターンの数と数値 (ルール ID) がログの概要 (​rtfWafSecurityPolicySummary​) に記録されます。

      このオプションは、​[Disable Body Scanner (ボディスキャナを無効化)]​ がオンになっていると使用できません。 また、機密情報のインスタンスの API、ルール、方向、数が含まれる ​rtfSidSummary​ ログも生成されます。
  3. [Save Policy (ポリシーを保存)]​ をクリックします。

個々のルールを無効にする

個々のルールによって偽陽性が発生する場合、それらを無効にできます。ルールセット内の 1 つのルールのみで偽陽性が発生している場合は、「プロトコル攻撃」のようにルールセット全体を無効にする必要がないため、これは便利です。

ログ内の WAF 概要メッセージを調べて、どのルール ID が起動しているかを判断できます。Anypoint Security ポリシーの RAML でルール ID の完全なリストをチェックすることもできます。

  1. [Anypoint Security] > [Security Policies (セキュリティポリシー)]​ ページで、ルールを無効にする WAF ポリシーの ​[Edit (編集)]​ をクリックします。

  2. 左側のメニューで、​[Disabled Rule IDs (無効化されたルール ID)]​ をクリックします。

  3. 無効にするルールの個々のルール ID をカンマで区切って追加します。

  4. [Save Policy (ポリシーを保存)]​ をクリックします。

WAF ポリシーを設定して保存したら、(必要に応じて) 既存の DoS ポリシーを編集して WAF ポリシー用の DoS を有効にしてから、そのポリシーを Runtime Fabric にデプロイできます。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub