Azure Web Application Firewall(WAF)は、SQLインジェクション、クロスサイトスクリプト、その他のOpen Worldwide Application Security Project(OWASP)トップ10攻撃など、一般的なエクスプロイトや脆弱性からウェブアプリケーションを集中保護します。 WAFはAzure Front Door、Azure Application Gateway、Azure Application Gateway for Containersで利用可能で、エッジや仮想ネットワーク内のインターネット対応アプリケーションを保護するのに役立ちます。
この記事では、Azure Web Application Firewallに関するセキュリティ推奨事項を提供します。 これらの推奨事項は、セキュリティ義務を果たし、展開時の全体的なセキュリティ体制を向上させるのに役立ちます。 Azureのネットワークセキュリティサービスの概要とそれらがどのように連携しているかについては、「Azureネットワークセキュリティとは何か?」をご覧ください。
この記事のセキュリティに関する推奨事項では、ゼロ トラストの原則 ("明示的に確認する"、"最小限の特権アクセスを使用する"、"侵害を想定する") が実装されています。 包括的なゼロ トラスト ガイダンスについては、 ゼロ トラスト ガイダンス センターを参照してください。
ネットワークのセキュリティ
Azure Web Application Firewallのネットワークセキュリティは、アプリケーショントラフィックの検査、一般的なウェブ攻撃へのリスク低下、各保護アプリケーションに合ったWAFポリシー設定の適用に重点を置いています。
すべての公開アプリケーションエントリーポイントにWAFを展開する:Azure Front Door、Application Gateway、またはコンテナ用アプリケーションゲートウェイでWAFを用いてインターネット対応のウェブアプリケーションを保護します。 グローバルなエッジ保護にはFront Door WAF、仮想ネットワーク内の地域レイヤー7保護にはApplication Gateway WAF、Kubernetes Gateway APIワークロードにはコンテナWAFを使いましょう。 詳細については、Azure Web Application Firewallの概要をご覧ください。
各サイトまたはアプリケーションごとに1つのWAFポリシーを使用:各発信元、サイト、またはアプリケーションに専用のWAFポリシーを割り当て、カスタムルール、除外、管理ルールのオーバーライド、レート制限をそのワークロードに限定します。 このパターンにより、ポリシー変更で誤検知が発生したりロールバックが必要になった場合の影響が軽減されます。 詳細については、Azure Front Doorの「Azure Web Application Firewallのベストプラクティス」およびWAFポリシー概要をご覧ください。
プラットフォームでサポートされている最新のマネージドルールセットを適用する:マネージドルールセットのバージョンを定期的にレビューし、アップグレードしましょう。 フロントドアプレミアムおよびアプリケーションゲートウェイWAFは、OWASP CRS 3.3.4に基づくDRS 2.2をサポートしています。 DRS 2.1はOWASP CRS 3.3.2を基にしており、サポートされているシナリオでも引き続き利用可能です。 Application Gateway for Containers の WAF は DRS 2.1 のみをサポートしており、従来の CRS マネージド ルール セットはサポートしていません。 詳細については、Front Door WAF DRS ルール グループおよびルール、Application Gateway WAF DRS および CRS ルール グループおよびルール、および Application Gateway for Containers 上の Azure Web Application Firewall を参照してください。
防止モードの前に検出モードで管理されたルールセットを開始する:検出モードで新規またはアップグレードされたルールセットを展開し、WAFログを確認し、除外とオーバーライドを調整し、その後防御モードに切り替えて攻撃をブロックします。 この段階的アプローチは誤検知を減らしつつ、チューニング後の強制を可能にします。 詳細については、 アプリケーションゲートウェイのWAFモード および フロントドアのWAFモードをご覧ください。
カスタムルールを使って悪意のあるトラフィックをブロックする:IPアドレス、IP範囲、地理的位置、リクエストヘッダー、リクエストメソッド、レート制限のカスタムルールを作成しましょう。 カスタムルールは管理されるルールより先に実行され、既知の悪質なソースをブロックしたり、既知の信頼されたトラフィックを許可したりできます。 詳細については、「Azure Front DoorのWeb Application Firewallのカスタムルール」およびAzure Application Gatewayの「Web Application Firewall v2のカスタムルール」をご覧ください。
アプリケーション層のレジリエンス性のためのレート制限を実装する:指定された期間内に各クライアントIPアドレスから許可されるリクエスト数を制御するレート制限ルールを設定します。 正当なトラフィックのブロックを避けつつ、再試行ストーム、スクレイピング、アプリケーション層のサービス拒否(DoS)攻撃パターンから保護できるよう、閾値を十分高く設定してください。 詳細については、「Azure Front Doorのレート制限とは何か?」および「Application Gateway上のWeb Application Firewallのレート制限とは何か?」をご覧ください。
サポートされている場所でボット保護を有効にする:Bot Manager管理ルールセットを使って悪質なボットを特定しブロックし、検索エンジンクローラーなどの正当なボットは許可します。 ボット保護は認証情報の詰め込み、スクレイピング、自動攻撃のトラフィックを減らすのに役立ちます。 詳細については、「Azure Front DoorでWeb Application Firewallのボット保護を構成」および「Azure Application GatewayのConfigure bot protection for Web Application Firewall」をご覧ください。
地域別アプリケーションにジオフィルタリングを活用:アプリケーションが特定の地理的地域のユーザーに対応している場合、予想される国や地域外からのリクエストをブロックするようにジオフィルタリングを設定してください。 ジオフィルタリングを使う際は、未マッピングのIPアドレスからの有効なリクエストをブロックしないように、未知(
ZZ)国コードを含めてください。 詳細については、「Azure Front Doorのドメインにおけるジオフィルタリングとは何か?」および「Azure WAFジオマッチカスタムルールを使ってネットワークセキュリティを強化する」をご覧ください。除外を慎重に調整する:除外は特定の誤検知にのみ適用し、可能な限り狭いマッチ変数、セレクター、ルール、ルールグループ、またはルールセットに限定します。 広範な除外は、機密性の高いリクエストデータの検査にギャップを生じさせる可能性があります。 詳細については、Azure Front Door 上の Azure Web アプリケーション ファイアウォールの除外リストおよびApplication Gateway を使用した Web アプリケーション ファイアウォールの除外リストを参照してください。
アイデンティティとアクセス管理
Azure Web Application Firewallのアイデンティティおよびアクセス管理は、WAFポリシーや関連ネットワークリソースの作成、修正、承認、監視を行えます。
Microsoft Entra IDを集中認証に活用:Microsoft Entra IDをWAFリソース管理のための中央認証および認可システムとして使用しましょう。 Microsoft Entra IDは、Azure環境全体で一貫したアイデンティティ管理を提供します。 詳細については、「Microsoft Entra ID とは」を参照してください。
Azure RBACの最小権限ロールを割り当てる:Azureの役割ベースのアクセス制御を使い、WAFポリシー、フロントドアプロファイル、アプリケーションゲートウェイ、診断設定、監視宛先の管理に必要な権限のみを付与します。 スコープ付きのカスタムロールで十分な場合、オーナーのような広範な役割を割り当てるのは避けましょう。 詳細については、Azure ポータルを使用して Azure ロールを割り当てる を参照してください。
該当する場合、WAFポリシー管理にマネージドIDを使用:Azure Resource Manager、Bicep、またはCI/CDワークフローを通じてWAFポリシーを展開、エクスポート、更新する自動化にはマネージドIDを使用。 管理されたアイデンティティには、ターゲットリソースグループ、フロントドアプロファイル、アプリケーションゲートウェイ、診断宛先に関する必要な権限のみを付与します。 詳細については、「 Azure リソースのマネージド ID」を参照してください。
管理アクセスのインベントリを保持する:管理グループ、サブスクリプション、リソースグループ、リソーススコープで、WAFポリシー、フロントドアプロファイル、アプリケーションゲートウェイ、監視宛先を含むAzure RBACの役割割り当てを確認しましょう。 古い割り当てを削除し、WAF管理に必要でない特権割り当てを調査しましょう。 詳細については、「 Azure portal を使用して Azure ロールの割り当てを一覧するを参照してください。
管理者に多要素認証を義務付ける:WAFリソースおよび関連するネットワークリソースの管理者権限を持つすべてのユーザーに多要素認証を義務付けます。 MFAは、認証情報が侵害された場合に重要な保護層を追加します。 詳細については、「Microsoft Entraで多要素認証を有効にする方法」をご覧ください。
条件付きアクセスで管理アクセスを制限する:Azure Resource Managerリソースを管理する管理者向けに、指定された場所、準拠デバイス、強力な認証を備えた条件付きアクセスポリシーを設定しましょう。 詳細については、「Microsoft Entra 条件付きアクセスの場所の条件とは」を参照してください。
WAF管理に特権アクセス制御を活用する:WAFポリシー変更には専用管理アカウント、特権アクセスワークステーション、ジャストインタイムアクセスを活用してください。 これらの管理は、セキュリティルールや除外事項の不正な変更リスクを減らします。 詳細については、 特権アクセスの確保概要をご覧ください。
アクセスを定期的に見直し調整する:Microsoft Entra IDのアクセスレビューを用いて、WAFリソースを変更できるユーザーのグループメンバーシップや役割割り当てを管理しましょう。 不要なアクセス権を削除してください。 詳細については、「 アクセスレビューとは何か?」をご覧ください。
アイデンティティリスクや疑わしい管理活動を監視する:Microsoft Entraのサインイン、監査、リスクログをAzure MonitorまたはMicrosoft Sentinelに送信します。 リスクの高いサインイン、特権ロール割り当ての変更、予期せぬWAFポリシーの更新に関するアラート。 詳細については、「Microsoft Entra logs with Azure Monitor logsの統合」をご覧ください。
データ保護
Azure Web Application Firewallのデータ保護は、機密性の高いリクエストデータ、ログ、ポリシーエクスポート、関連するテレメトリを不正アクセスや開示から保護することに焦点を当てています。
暗号化を確実にする:Azure Front DoorやApplication Gatewayを経由するクライアントおよびバックエンド接続にはTLS 1.2以降の対応を義務付けてください。 各デプロイメントの一環として証明書やプロトコル設定を検証してください。 詳細については、「Azure Front Door でのエンドツーエンド TLS および Application Gateway による TLS 終了およびエンドツーエンド TLS の概要」をご覧ください。
サポートされている場合はログスクラビングによる機密データ保護を有効にする:フロントドアおよびアプリケーションゲートウェイのWAFポリシーでは、パスワード、秘密、個人データなどの機密値を書き込む前にWAFログから削除するログスクラビングルールを設定してください。 このアプローチは、セキュリティの可視性を維持しつつ、監視システムへの露出を減らすのに役立ちます。 詳細については、Azure Front Door の Azure Web Application Firewall Sensitive Data Protection および Application Gateway の Azure Web Application Firewall Sensitive Data Protection をご覧ください。
WAFログとポリシーエクスポートを保護する:WAF診断ログ、Azure Resource Managerテンプレート、Bicepファイル、エクスポートされたポリシー定義は、アプリケーションパス、カスタムルール、除外事項、オリジンの詳細を明らかにする可能性があるため、機密データとして扱うべきです。 リポジトリ、ストレージアカウント、または最小権限アクセスの Log Analytics ワークスペースに保存してください。 詳細については、「 Log Analytics ワークスペースへのアクセスの管理」を参照してください。
関連ストレージには顧客管理キーを使用する:組織がキーライフサイクルの直接制御を必要とする場合、WAFログを受信するAzure Storageアカウントに顧客管理キーを使用し、Event HubsやLog Analyticsワークスペースなど他のログ宛先にも同等のキー管理管理を適用してください。 詳細については、「Azure Storage 暗号化のカスタマー マネージド キー」を参照してください。
必要に応じてリクエストボディの検査:フォームデータ、JSON、XML、またはファイルのアップロードを受け取るアプリケーションに対してリクエストボディ検査を有効にします。 リクエストサイズの制限を確認し、除外リストを設定してセキュリティカバーとアプリケーション互換性のバランスを取ってください。 詳細については、Application Gateway WAFリクエストサイズ制限およびWeb Application Firewall除外リストをご覧ください。
機密情報を扱うリソースにタグを付ける:タグを使ってWAFポリシー、ゲートウェイ、フロントドアプロファイルを特定し、目的地や機密情報を処理・保存する関連リソースをログにします。 タグはコンプライアンス報告や運営の所有に役立ちます。 詳細については、「 タグを使用して Azure リソースを整理する」を参照してください。
ログ記録と監視
Azure Web Application Firewallのログ記録と監視により、検査されたトラフィック、ルールマッチング、ブロックされたリクエスト、設定変更、運用の健全性を可視化できます。
すべてのWAFリソースで診断設定を有効にする:Azure Front DoorおよびApplication GatewayのWAFログとメトリクスをLog Analyticsワークスペース、ストレージアカウント、Event Hubsに送信します。 診断ログには、WAF が何を評価し、検出し、ブロックしたかが示されます。 詳細については、Azure Web Application Firewall monitoring and logging for Azure Front Door and Application Gateway diagnosticsをご覧ください。
Microsoft SentinelでWAFイベントを集中管理:AzureのWAFログをMicrosoft Sentinelや他のセキュリティ情報・イベント管理(SIEM)プラットフォームに接続し、WAF検出とアイデンティティ、エンドポイント、ネットワーク、アプリケーションのテレメトリを関連付けます。 詳細については、「Microsoft Web Application FirewallからMicrosoft Sentinelまでのデータを接続する」をご覧ください。
検出モード中およびルール変更後にWAFログを確認する:新規展開やルールセットのアップグレード後に管理されたルールマッチ、カスタムルールマッチ、除外、異常スコアを確認しましょう。 これらの発見をもとにポリシーを調整してから、予防モードを有効にする。 詳細については、「Azure Front Door 用に Azure Web Application Firewall (WAF) を調整する」を参照してください。
異常な活動に対するアラートを作成する:ブロックされたリクエストの急増、高いルールマッチ数、不健康なバックエンド、設定変更に対してAzure Monitorアラートを設定しましょう。 アラートは、アクティブな攻撃や意図しないポリシー変更を迅速に検出するのに役立ちます。 詳細については、「アラート規則を作成または編集する」を参照してください。
リソース構成の変更を監視する:Azureアクティビティログを使って、WAFポリシー、カスタムルール、管理されたルールのオーバーライド、除外、フロントドアプロファイル、アプリケーションゲートウェイ、診断設定の変更を検出します。 詳細は「 アクティビティログを見る」をご覧ください。
調査にはWAFワークブックを活用してください:Azure MonitorのワークブックやMicrosoft Sentinelのワークブックを使って、トップルールマッチ、ブロックされたクライアント、URIパス、トレンドをレビューしましょう。 ワークブックは、セキュリティチームが攻撃と誤検知を区別するのに役立ちます。 詳細については、「 Azure Web アプリケーション ファイアウォールでの Microsoft Sentinel の使用」を参照してください。
インシデント対応やコンプライアンスのためにログを保存する:Log Analyticsで保持を設定したり、組織のコンプライアンスや調査要件に応じてログをストレージアカウントにアーカイブしてください。 詳細については、「Log Analytics workspace でデータ保持を設定する」をご覧ください。
コンプライアンスとガバナンス
Azure Web Application Firewallのコンプライアンスとガバナンスは、サブスクリプションやアプリケーション間で一貫したポリシー設定、在庫管理、タグ付け、執行を確保するのに役立ちます。
Azure Policyを使ってWAFの展開と設定を強制する:WAF保護なし、ログなしのWAFポリシー、非準拠WAFモードの監査、拒否、または補正にAzure Policyの定義を割り当てます。 詳細については、Azure Web Application Firewall および Azure Policy をご覧ください。
WAF構成をコードとして定義する:ARMテンプレート、Bicep、Terraform、その他のインフラストラクチャ・アズ・コードワークフローでWAFポリシーを管理します。 コードとしての構成は、レビュー、繰り返し可能な展開、ルール除外管理、ドリフト検出を簡素化します。 詳細については、Azure Front DoorのAzure Web Application Firewallに関するベストプラクティスをご覧ください。
承認されたWAFリソースインベントリを維持しましょう:Azure Resource Graphを使ってWAFポリシー、アプリケーションゲートウェイ、フロントドアプロファイル、エンドポイント、診断設定、関連する公開エントリーポイントをサブスクリプションごとに発見します。 定期的に在庫を照合し、不正なリソースを除去しましょう。 詳細については、「Quickstart: Azure Resource Graph Explorerを使って最初のリソースグラフクエリを実行する」をご覧ください。
一貫したタグと所有メタデータを適用する:WAFポリシーおよび関連リソースにアプリケーション、環境、データ分類、所有者、コストセンターの情報をタグ付けします。 タグは運用上の説明責任やコンプライアンス報告をサポートします。 詳細については、「 タグを使用して Azure リソースを整理する」を参照してください。
管理グループとサブスクリプションで環境を整理する:セキュリティとコンプライアンスの境界を反映した管理グループとサブスクリプションを使って、本番環境、テスト環境、開発環境を分離します。 適切な範囲で政策イニシアチブを適用しましょう。 詳細については、「 管理グループを作成」をご覧ください。
必要に応じてPremium機能を求める:管理されたWAFルールセット、ボット保護、Private Link to Originsが必要なワークロードに対して、ガバナンスコントロールを使ってAzure Front Door Premiumを義務付けましょう。 詳細については、「Azure Front Door tiersの機能比較」をご覧ください。
Azure Resource Managerのアクセスを制限する:Microsoft Azure Managementクラウドアプリで条件付きアクセスを使い、誰がどこからAzureリソースを管理できるかを制限します。 詳細については、「Azure Management のための条件付きアクセスの設定」をご覧ください。
バックアップと回復
Azure Web Application Firewallのバックアップと復旧は、ポリシー定義の保持、ポリシーエラーの影響の制限、障害や変更失敗時の既知の保護の復元に重点を置いています。
WAFポリシーを定期的にエクスポートする:WAFポリシーをAzure Resource ManagerのテンプレートまたはBicepとしてエクスポートし、ソース管理に保存します。 WAFポリシーは、カスタムルール、除外、管理されたルールオーバーライド、ポリシーモード、要求ボディ検査設定を含むため、真実の情報源として扱ってください。 詳細は「Azureポータルからのエクスポートテンプレート」をご覧ください。
各サイトごとに1つのWAFポリシーを使い、リカバリ分離を行ってください。各発信元、サイト、またはアプリケーションごとに別々のWAFポリシーを割り当てます。 サイトごとのポリシー分離は、他のアプリケーションの保護を弱めることなく、あるアプリケーションのポリシーをロールバックまたは置き換えするのに役立ちます。 詳細については、Azure Front DoorのAzure Web Application Firewallに関するベストプラクティスをご覧ください。
ルールセットのアップグレードを強制前に段階的に行う:まず検出モードで新規またはアップグレードされた管理ルールセットを適用し、誤検知を調整し、検証後に防止モードに移行します。 以前の正常なポリシー定義を、迅速にロールバックできるように保持しておく。 詳細については、「Azure Front Door 用に Azure Web Application Firewall (WAF) を調整する」を参照してください。
マルチリージョンWAF展開を設計する:Azure Front Door WAFはグローバルですが、Application Gateway WAFは地域限定であり、アプリケーションをホストする各リージョンにデプロイする必要があります。 マルチリージョンアーキテクチャでは、WAFポリシーとゲートウェイ設定を複製し、リージョンフェイルオーバーが検査を回避しないようにしましょう。 詳細については、「 How to Choose Your WAF platform」をご覧ください。
ポリシーロールバック手順のテスト:既知の有効なポリシーを復元する方法を文書化しテストします。 Application Gateway WAF の場合、Application Gateway またはリスナーのポリシー参照を、正常に動作することが確認されている WAF ポリシーに置き換えます。 Front Door WAFの場合は、セキュリティポリシーの関連付けを既知の有効なWAFポリシーバージョンに切り替えるか、ソース制御から既知の良好なポリシー定義を再展開してください。 詳細については、「Azure Front DoorのWAFポリシーおよびルール」および「Application Gatewayの「Create Web Application Firewall policies」をご覧ください。
モニタリングによる回復の検証:ロールバックやフェイルオーバー後、WAFログ、診断設定、アラート、SIEM接続が依然として有効であることを確認しましょう。 ポリシーの強制が回復されていても監視が欠如している場合、復旧は不完全です。 詳細については、Azure Web Application Firewall monitoring and logging for Azure Front Doorをご覧ください。
次のステップ
- Azure Web Application Firewall の概要
- Azure Front Door 上の Azure Web アプリケーション ファイアウォールの概要
- Azure Application Gateway 上の Azure Web アプリケーション ファイアウォールの概要
- Azure Web Application Firewall and Azure Policy
- Microsoft クラウド セキュリティ ベンチマークの概要
- Microsoft Azure Well-Architected Framework: セキュリティの柱
- クラウド導入フレームワーク: セキュリティで保護された概要