Application Gateway のAzure Web Application Firewallに関してよく寄せられる質問

この記事では、Azure Application GatewayのAzure Web Application Firewallの機能に関する一般的な質問に回答します。

Azure Web Application Firewallとは

Azure Web Application Firewall (WAF) は、SQL インジェクション、クロスサイト スクリプティング、その他の Web 悪用などの一般的な脅威から Web アプリケーションを保護するのに役立ちます。 カスタムルールとマネージドルールの組み合わせで構成される WAF ポリシーを定義して、Web アプリケーションへのアクセスを制御できます。

Azure Application Gateway、Application Gateway for Containers、またはAzure Front Door上でホストされているウェブアプリケーションにWAFポリシーを適用できます。

WAF 製品レベルでサポートされている機能

Application Gateway の WAF レベルでは、Standard レベルで使用できるすべての機能がサポートされています。

WAF を監視する方法

診断ログを使用して WAF を監視します。 詳細については、「 Application Gateway の診断ログ」を参照してください。

検出モードではトラフィックがブロックされますか?

いいえ。 検出モードでは、WAF 規則をトリガーするトラフィックをログに記録するにとどまります。

WAF ルールはカスタマイズできますか?

はい。 詳細については、「 WAF ルールのカスタマイズ」を参照してください。

WAF で現在使用できるルールは何ですか?

WAF の最新かつ最も推奨されるルールセット バージョンは、既定の規則セット (DRS) 2.2 です。 Open Web Application Security Project (OWASP) で識別される上位 10 件の脆弱性のほとんどに対するベースライン セキュリティに加えて、DRS 2.2 には、SQL インジェクション、XSS、およびアプリケーション セキュリティ攻撃パターン全体の対象範囲を拡大する、Microsoft Threat Intelligence チームによって開発された追加の独自の保護規則が含まれています。

  • SQL インジェクションに対する保護
  • クロスサイト スクリプティングに対する保護
  • コマンド インジェクション、HTTP 要求の密輸、HTTP 応答の分割、リモート ファイルのインクルードなど、一般的な Web 攻撃に対する保護
  • HTTP プロトコル違反に対する保護
  • 不足している HostUser-AgentAccept ヘッダーなどの HTTP プロトコルの異常に対する保護
  • ボット、クローラー、スキャナーの防止
  • 一般的なアプリケーションの構成ミスの検出 (Apache や IIS など)

詳細については、 OWASP の上位 10 件の脆弱性を参照してください。

古いルールセットのバージョンと WAF のマネージド ルールセット サポート ポリシーの詳細については、[こちら] を参照してください。(ruleset-support-policy)

WAF はどのコンテンツ タイプをサポートしていますか?

Application Gateway と Application Gateway for Containers WAF では、マネージド ルールに対して次のコンテンツ タイプがサポートされています。

  • application/json
  • application/xml
  • application/x-www-form-urlencoded
  • multipart/form-data

カスタム ルールの場合:

  • application/x-www-form-urlencoded
  • application/soap+xmlapplication/xmltext/xml
  • application/json
  • multipart/form-data

WAF は DDoS 保護をサポートしていますか?

はい。 アプリケーション ゲートウェイがデプロイされている仮想ネットワークで、分散型サービス拒否 (DDoS) 保護を有効にすることができます。 この設定により、Azure DDoS Protection サービスは、アプリケーション ゲートウェイの仮想 IP (VIP) の保護にも役立ちます。

WAF は顧客データを格納しますか?

いいえ。WAF は顧客データを格納しません。

WAF は WebSocket でどのように機能しますか?

Azure Application Gatewayは WebSocket をネイティブにサポートします。 Application Gateway WAF 上の WebSocket では、追加の構成は必要ありません。 ただし、WAF は WebSocket トラフィックを検査しません。 クライアントとサーバー間の最初のハンドシェイクの後、クライアントとサーバー間のデータ交換は任意の形式 (バイナリや暗号化など) にすることができます。 そのため、WAF は常にデータを解析できるわけではありません。 データのパススルー プロキシとして機能するだけです。

詳細については、「Application Gateway での WebSocket のサポートの概要」を参照してください。

なぜ私のWAFポリシーがコンテナのアプリケーションゲートウェイのトラフィックを検査しないのですか?

コンテナ用アプリケーションゲートウェイ上のWAFは、2つの別々の設定を必要とします。

  1. AzureのSecurityPolicy子リソースで、あなたのWAFポリシーを参照しています。
  2. 同じWAFポリシーを参照し、保護したいリソースをターゲットにするKubernetesクラスター内の WebApplicationFirewallPolicy カスタムリソースです。

Azureの設定のみを完了すると、AzureポータルにはWAFポリシーが関連付けられていますが、トラフィックは検査されません。 WAFはトラフィックを評価しないため、ファイアウォールログも生成しません。 もしWAFログのエントリが全く見られないなら、Kubernetesの設定が最有力な原因です。

WebApplicationFirewallPolicyカスタムリソースを適用して設定を完了します。

詳細については、「コンテナ用アプリケーションゲートウェイ上のAzure Web Application Firewallとは何か?」をご覧ください。

コンテナのアプリケーションゲートウェイ上でWAFポリシーを単一のルートにスコープ化するにはどうすればいいですか?

HTTPRoute カスタムリソースで WebApplicationFirewallPolicytargetRef.kind に設定し、特定のルートに名前を付けてください。

targetRef.kindGatewayに設定すると、このポリシーはGatewayリソースが扱うすべてのリスナーとルートに適用され、これはルートレベルの保護を超えて広範囲に及びます。

Application Gateway for ContainersでWAFポリシーがどの範囲で適用されるかはどうやって確認すればいいですか?

ファイアウォールのログを確認してください。 policyScopeNameフィールドはポリシーが割り当てられたスコープの種類を報告し、policyScopeフィールドはそのスコープが適用されるKubernetesリソース参照を報告します。

詳細については、 コンテナログのアプリケーションゲートウェイを参照してください。

WAF はエアギャップ クラウドをサポートしていますか?

はい、エアギャップクラウドはサポートされています。 しかし、地オフィルタリングのカスタムルールセット、ボット保護ルールセット、レート制限のカスタムルールは、エアギャップクラウドではサポートされていません。

WAF を実行している Application Gateway または Application Gateway for Containers で要求バッファリングを無効にすることはできますか?

Application GatewayやApplication Gateway for ContainersのWAF SKUを使っている場合は、リクエストバッファリングを無効にすることはできません。 WAF では、処理の一環としてリクエスト全体をバッファリングする必要があります。 したがって、アプリケーションゲートウェイやコンテナ用アプリケーションゲートウェイ内でリクエストバッファリングを無効にしても、WAFはリクエストをバッファリングします。 応答バッファリングは WAF の影響を受けません。