Azure Web Application Firewall (WAF) は、SQL インジェクション、クロスサイト スクリプティング、その他の OWASP Top 10 攻撃などの一般的な悪用や脆弱性から Web アプリケーションを一元的に保護します。 アプリケーションと潜在的な脅威の間に位置する重要なセキュリティ コンポーネントとして、WAF デプロイを適切にセキュリティで保護して、その有効性を最大化し、全体的なセキュリティ体制を維持することが不可欠です。
この記事では、Azure Web Application Firewall のデプロイを最適にセキュリティで保護する方法に関するガイダンスを提供します。
ネットワークのセキュリティ
Azure Web Application Firewall のネットワーク セキュリティは、適切なトラフィック管理によるアプリケーションの保護、悪意のある IP アドレスのブロック、WAF モードの適切な構成に重点を置いています。 これらの制御は、Web ベースの攻撃に対する包括的な保護を維持しながら、正当なトラフィックのみがアプリケーションに到達することを保証するのに役立ちます。
ベースライン期間後に防止モードで WAF を構成する: 検出モードから開始してトラフィック パターンを理解し、誤検知を特定した後、防止モードに切り替えて攻撃を積極的にブロックします。 防止モードは、ルールによって検出された侵入と攻撃をブロックし、攻撃者に "403 不正アクセス" 例外を送信します。 Application Gateway の WAF モードと Front Door の WAF モードを参照してください。
カスタム ルールを使用して悪意のある IP アドレスをブロックする: IP アドレス、範囲、または地理的な場所に基づいてトラフィックを許可およびブロックするカスタム ルールを作成します。 これにより、アプリケーションにアクセスできるユーザーをきめ細かく制御でき、既知の不適切なアクターからの攻撃を防ぐことができます。 Web アプリケーション ファイアウォールの CRS 規則グループと規則を参照してください。
WAF ルールをカスタマイズして誤検知を減らす: サイト固有の WAF ポリシーを適用し、Web アプリケーションの要件に合わせてルールとルール グループをカスタマイズします。 これは、本物の脅威に対する保護を維持しながら、誤検知を排除するのに役立ちます。 サイト固有の構成を許可するために、サイトごとに一意の Azure WAF ポリシーを関連付けます。
包括的なログ記録と監視を有効にする: 検出モードで動作しているときに診断ログと WAF ログを有効にして、すべての脅威アラートを監視およびログに記録します。 これにより、WAF が評価、照合、ブロックしている内容を可視化できます。 ログの概要を参照してください。
整理されたネットワーク セキュリティ管理にタグを使用する: Azure Application Gateway サブネットおよび関連するネットワーク セキュリティ リソースの WAF に関連付けられているネットワーク セキュリティ グループにタグを適用します。 個々の NSG ルールの [説明] フィールドを使用して、ビジネス ニーズと期間を指定します。 タグを作成して使用する方法を参照してください。
ネットワーク リソース構成の監視: Azure アクティビティ ログを使用してネットワーク リソースの構成を監視し、WAF デプロイに関連するネットワーク設定とリソースの変更を検出します。 重要なネットワーク設定の変更が発生したときにトリガーされるアラートを Azure Monitor 内に作成します。 Azure アクティビティ ログ イベントを表示および取得する方法を参照してください。
DDoS 攻撃を防ぐためにレート制限を実装する: 指定された期間に各クライアント IP アドレスから許可される要求の数を制御するようにレート制限規則を構成します。 再試行の嵐や DDoS 攻撃から保護しながら正当なトラフィックをブロックしないように、レート制限のしきい値を十分に高く設定します。 「Azure Front Door のレート制限とは」を参照してください。
ボット保護を有効にして悪意のあるボットをブロックする: ボット保護管理ルール セットを使用して、検索エンジン クローラーなどの正当なボットを許可しながら、不適切なボットを特定してブロックします。 ボット保護ルールは、ボットを適切、悪い、または不明として分類し、悪意のあるボット トラフィックを自動的にブロックする可能性があります。 Web アプリケーション ファイアウォールのボット保護の構成に関するページを参照してください。
地域アプリケーションの geo フィルタリングを実装する: アプリケーションが特定の地理的リージョンのユーザーにサービスを提供する場合は、予期される外部の国または地域からの要求をブロックするように geo フィルタリングを構成します。 マップされていない IP アドレスからの有効な要求をブロックしないように、不明な (ZZ) の場所を含めます。 Azure Front Door のドメインでの geo フィルタリングの概要を参照してください。
最新のマネージド ルール セット バージョンを使用する: 現在の脅威から保護するために、Azure で管理されている最新の規則セットバージョンに定期的に更新します。 Microsoft は、脅威ランドスケープと OWASP Top 10 攻撃の種類に基づいて、マネージド ルールを定期的に更新します。 Azure Web アプリケーション ファイアウォールの DRS 規則グループと規則を参照してください。
ID 管理
Azure Web Application Firewall の ID 管理により、WAF リソースへの管理アクセスが適切に制御および監視されます。 これには、管理アカウントのインベントリの維持、一元化された ID システムの使用、WAF 展開を管理するすべてのユーザーに対する強力な認証メカニズムの実装が含まれます。
一元化された認証に Azure Active Directory を使用する: WAF リソースを管理するための中央認証および承認システムとして Azure AD を使用します。 Azure AD は強力な暗号化でデータを保護し、Azure 環境全体で一貫した ID 管理を提供します。 Azure AD インスタンスを作成して構成する方法を参照してください。
管理アカウントのインベントリを維持する: クエリ可能であり、明示的に割り当てる必要がある Azure AD 組み込みロールを使用します。 Azure AD PowerShell モジュールを使用してクエリを実行し、WAF リソースにアクセスできる管理グループのメンバーであるアカウントを検出します。 PowerShell を使用して Azure AD でディレクトリ ロールを取得する方法を参照してください。
管理アクセスの多要素認証を有効にする: WAF リソースへの管理アクセス権を持つすべてのユーザーに MFA を要求します。 これにより、パスワードが侵害された場合でも、セキュリティの重要な追加レイヤーが追加されます。 Microsoft Defender for Cloud の ID とアクセス管理に関する推奨事項に従います。 Azure で多要素認証を有効にする方法を参照してください。
標準の手順で専用の管理アカウントを使用する: Azure WAF インスタンスにアクセスできる専用の管理アカウントの使用に関する標準的な操作手順を作成します。 Microsoft Defender for Cloud の ID およびアクセス管理機能を使用して、管理アカウントの数を監視します。 「 Microsoft Defender for Cloud の ID とアクセスについて」を参照してください。
承認された場所からのアクセスのみを管理する: 名前付きの場所で条件付きアクセス ポリシーを構成して、WAF リソースへのアクセスを制限します。 IP アドレス範囲または国と地域の論理的なグループを作成し、機密性の高いリソースへのアクセスを構成済みの名前付き場所に制限します。 Azure Active Directory 条件付きアクセスの場所の条件を参照してください。
疑わしいアカウント アクティビティの監視とアラート: Azure AD セキュリティ レポートと Microsoft Defender for Cloud を使用して、ID とアクセスアクティビティを監視します。 疑わしいアクティビティまたは安全でないアクティビティのアラートを設定し、高度な脅威検出のために Microsoft Sentinel と統合します。 危険なアクティビティのフラグが設定された Azure AD ユーザーを識別する方法を参照してください。
特権アクセス
Azure Web Application Firewall の特権アクセス制御では、WAF リソースへの管理アクセスの制限と監視に重点を置きます。 これらの対策は、セキュリティ構成に対する未承認の変更を防ぎ、特権操作が適切に追跡および監査されるようにするのに役立ちます。
Azure RBAC を使用してリソース アクセスを制御する: Azure ロールベースのアクセス制御を使用して、Azure WAF リソースへのアクセスを制御します。 最低限必要なアクセス許可のみをユーザーとサービスに割り当てることで、最小限の特権の原則を適用します。 Azure で Azure RBAC を構成する方法を参照してください。
管理タスクに Privileged Access Workstations を使用する: Azure WAF および関連リソースにログインして構成するために構成された多要素認証を使用して、専用の堅牢化されたワークステーションを使用します。 これにより、標準のユーザー ワークステーションを介した管理上の侵害のリスクが軽減されます。 特権アクセス ワークステーションの詳細を参照してください。
ユーザー アクセスを定期的に確認して調整する: Azure Identity Access Reviews を使用して、グループ メンバーシップ、エンタープライズ アプリケーションへのアクセス、WAF リソースのロールの割り当てを効率的に管理します。 ユーザー アクセスを定期的に確認して、アクティブなユーザーのみが引き続きアクセスできることを確認します。 Azure ID アクセス レビューの使用方法に関するページを参照してください。
非アクティブ化された資格情報へのアクセスを監視する: Azure AD サインイン アクティビティ、監査、およびリスク イベント ログ ソースを Microsoft Sentinel またはその他の SIEM ツールと統合します。 Azure AD ユーザー アカウントの診断設定を作成し、監査ログとサインイン ログを監視用の Log Analytics ワークスペースに送信します。 Azure アクティビティ ログを Azure Monitor に統合する方法を参照してください。
疑わしいアクティビティへの自動応答を構成する: Azure AD のリスクと ID 保護機能を使用して、ユーザー ID に関連する検出された疑わしいアクションに対する自動応答を構成します。 Microsoft Sentinel にデータを取り込んで、さらに調査と対応を行います。 Identity Protection リスク ポリシーを構成して有効にする方法を参照してください。
ログ記録と脅威の検出
包括的なログ記録と脅威検出は、Web アプリケーション ファイアウォールのセキュリティ体制の可視性を維持するために不可欠です。 これらの機能は、WAF 展開全体のセキュリティ イベントを収集して分析することで、脅威の検出、インシデントの調査、コンプライアンスの維持に役立ちます。
Microsoft Sentinel で一元的なログ管理を有効にする: Azure WAF ログを Microsoft Sentinel またはサード パーティの SIEM に送信するように構成します。 これには、AZURE アクティビティ、診断、および WAF が評価、照合、ブロックしているデータに関する分析情報を提供するリアルタイム WAF ログが含まれます。 Microsoft Web アプリケーション ファイアウォールから Microsoft Sentinel へのデータの接続に関するページを参照してください。
包括的な監査ログを有効にする: Azure WAF リソースのログ記録を有効にして、監査、セキュリティ、診断ログをキャプチャします。 Azure WAF では、イベント ソース、日付、ユーザー、タイムスタンプ、アドレスなど、構成された診断ログを通じて、検出された各脅威に関する詳細なレポートが提供されます。 ログの概要を参照してください。
ログ ストレージ保持ポリシーの構成: Azure WAF ログをカスタム ストレージ アカウントに送信し、組織のコンプライアンス要件に基づいて保持ポリシーを定義します。 Azure Monitor を使用して、Log Analytics ワークスペースの保有期間を適切に設定します。 ストレージ アカウントの監視の構成を参照してください。
ログを定期的に監視および確認する: 検出された各脅威に関する詳細なレポートを提供する WAF ログを確認します。 Microsoft Defender for Cloud の推奨事項を使用して、保護されていない Web アプリケーションを検出し、脆弱なリソースを保護します。 セキュリティ イベントの概要については、Microsoft Sentinel の組み込みの WAF ブックを活用してください。 Azure Application Gateway の診断設定を有効にする方法を参照してください。
異常なアクティビティのアラートを作成する: Azure アクティビティ ログ診断設定と WAF 診断設定を有効にして、Log Analytics ワークスペースにログを送信します。 ブロックされた要求が定義されたしきい値を超えた場合など、WAF メトリックに基づいて異常なアクティビティのアラートを作成します。 Azure 内でアラートを作成する方法を参照してください。
承認された時刻同期ソースを使用する: AZURE WAF のネットワーク規則を作成して、UDP 経由のポート 123 などの適切なポートとプロトコルを持つ NTP サーバーへのアクセスを許可し、ログとイベントの正確なタイムスタンプを確保します。
ログ スクラブを使用して機密データ保護を有効にする: WAF ログからパスワード、IP アドレス、個人データなどの機密情報を削除するようにログ スクラブルールを構成します。 これにより、セキュリティの可視性を維持しながら、顧客データが保護されます。 Azure Web アプリケーション ファイアウォールの機密データ保護と Azure Web アプリケーション ファイアウォールの機密データ保護について説明します。
包括的なログ記録の診断設定を構成する: WAF リソースの診断設定を有効にして、ログを Log Analytics、ストレージ アカウント、またはイベント ハブに保存します。 定期的なログ レビューは、WAF ポリシーを調整し、アプリケーションに対する攻撃パターンを理解するのに役立ちます。 Azure Web アプリケーション ファイアウォールの監視とログ記録に関するページを参照してください。
データ保護
Azure Web Application Firewall のデータ保護には、WAF によって処理される機密情報のセキュリティ保護、適切な暗号化の実装、適切なアクセス制御の維持が含まれます。 これらの対策は、アプリケーションとアプリケーションが処理するデータを、不正なアクセスや開示から保護するのに役立ちます。
機密情報を処理するリソースにタグを付ける: タグを使用して、機密情報を格納または処理する Azure WAF および関連リソースを識別して追跡します。 これはコンプライアンス レポートに役立ち、適切なセキュリティ制御が確実に適用されます。 タグを作成して使用する方法を参照してください。
環境の分離を実装する: 開発、テスト、運用環境など、さまざまなセキュリティ ドメインに個別のサブスクリプションと管理グループを使用します。 これにより、環境間のデータの公開が防止され、環境固有のセキュリティ制御が可能になります。 追加の Azure サブスクリプションを作成する方法を参照してください。
転送中の暗号化を確認する: Azure WAF インスタンスと関連リソースに接続しているクライアントが TLS 1.2 以降をネゴシエートできることを確認します。 保存時と転送中の暗号化については、Microsoft Defender for Cloud の推奨事項に従ってください。 「Azure での転送中の暗号化について」を参照してください。
WAF リソースに保存時の暗号化を使用する: Azure WAF や関連リソースを含むすべての Azure リソースに保存時の暗号化を適用します。 Microsoft では、Azure での暗号化キーの管理を許可することをお勧めしますが、特定の要件が存在する場合は、独自のキーを管理できます。 「Azure での保存時の暗号化について」を参照してください。
重要なリソースへの変更を監視する: ベースラインを確立した後に防止モードで実行するように Azure WAF を構成し、重要な WAF リソースまたは構成に変更が発生したときに Azure Monitor を使用してアラートを作成します。 Application Gateway の WAF モードを参照してください。
要求本文の検査を有効にする: ヘッダー、Cookie、URI だけでなく、HTTP 要求本文を検査するように WAF ポリシーを構成します。 これにより、WAF は POST データと JSON ペイロードに隠された脅威を検出できます。 Azure Web アプリケーション ファイアウォールと Azure Policy に関するページを参照してください。
暗号化を強化するためにカスタマー マネージド キーを使用する: プラットフォームで管理されるキーを超える暗号化要件については、Azure Key Vault に格納されているカスタマー マネージド キーの使用を検討してください。 これにより、暗号化キーのライフサイクルとアクセスをさらに制御できます。 カスタマー マネージド暗号化キーを構成する方法を参照してください。
資産管理
効果的な資産管理は、Web アプリケーション ファイアウォール リソースの可視性と制御を維持するのに役立ちます。 これには、自動検出、適切なタグ付け、定期的なインベントリ調整、WAF のデプロイがセキュリティで保護され、準拠した状態を維持するためのポリシーの適用が含まれます。
自動資産検出を使用する: Azure Resource Graph を使用して、サブスクリプション内のコンピューティング、ストレージ、ネットワーク、ポート、プロトコルなど、WAF 関連のすべてのリソースのクエリと検出を行います。 適切な読み取りアクセス許可があり、すべての Azure サブスクリプションとリソースを列挙できることを確認します。 Azure Resource Graph を使用してクエリを作成する方法を参照してください。
タグを使用して資産メタデータを管理する: Azure WAF ポリシーと関連リソースにタグを適用して、アクセスと管理を論理的に整理します。 タグをリソースに関連付け、サブスクリプション内のこれらのリソースへのアクセスを整理するために適用できます。 「タグを作成して使用する方法」を参照してください。
リソースを体系的に整理して追跡する: タグ付け、管理グループ、個別のサブスクリプションを使用して、Azure WAF と関連リソースを整理および追跡します。 インベントリを定期的に調整し、承認されていないリソースがタイムリーにサブスクリプションから削除されるようにします。 管理グループを作成する方法を参照してください。
承認されたリソース インベントリの定義と管理: 組織のニーズに基づいて、構成を含む承認済みリソースのインベントリを作成します。 Azure Policy を使用して、サブスクリプションで作成できるリソースの種類を制限し、現在のすべてのリソースが承認されていることを確認します。 Azure Policy を構成および管理する方法を参照してください。
承認されていないリソースの監視: Azure Policy を使用してリソースの種類に制限を設定し、サブスクリプション内の未承認の Azure WAF リソースを監視します。 Azure Resource Graph を使用してリソースのクエリと検出を行い、環境内のすべての Azure WAF と関連リソースが承認されていることを確認します。 Azure Graph を使用してクエリを作成する方法を参照してください。
Azure Resource Manager のアクセスを制限する: Azure 条件付きアクセスを使用して、"Microsoft Azure Management" アプリの "アクセスをブロック" を構成することで、ユーザーが Azure Resource Manager と対話する機能を制限します。 これにより、WAF リソースに対する未承認の変更を防ぐことができます。 Azure Resources Manager へのアクセスをブロックするように条件付きアクセスを構成する方法を参照してください。
ポリシーのコンプライアンスとガバナンス
ポリシーのコンプライアンスとガバナンスにより、Web アプリケーション ファイアウォールのデプロイが組織の標準と規制の要件を満たしていることを確認します。 これらの制御は、環境全体で一貫したセキュリティ構成を維持し、コンプライアンスの監視と適用を自動化するのに役立ちます。
Azure Policy を使用して WAF デプロイを適用する: Azure Front Door と Application Gateway のリソースに WAF のデプロイを要求する Azure Policy 定義を実装します。 準拠していないリソースを監査、拒否、または自動的に修復するようにポリシーを構成します。 Azure Web アプリケーション ファイアウォールと Azure Policy に関するページを参照してください。
WAF モードのコンプライアンスを義務付ける: Azure Policy を使用して、初期チューニング後にすべての WAF ポリシーが防止モードで動作するように強制します。 これにより、環境全体で一貫した保護が確保され、検出専用モードで WAF が誤ってデプロイされるのを防ぐことができます。 Azure Web アプリケーション ファイアウォールと Azure Policy に関するページを参照してください。
リソース ログのコンプライアンスが必要: すべての WAF 対応サービスでリソース ログとメトリックの有効化を義務付けるポリシーを実装します。 これにより、組織全体のセキュリティ監視とコンプライアンス要件の一貫したログ記録が保証されます。 Azure Web アプリケーション ファイアウォールと Azure Policy に関するページを参照してください。
セキュリティ強化のために Premium レベルの使用を強制する: Azure Policy を使用して、すべてのプロファイルに Azure Front Door Premium レベルを要求し、マネージド ルール セット、ボット保護、プライベート リンク機能などの高度な WAF 機能に確実にアクセスできるようにします。 Azure Web アプリケーション ファイアウォールと Azure Policy に関するページを参照してください。
WAF 構成をコードとして定義する: ARM テンプレート、Bicep、または Terraform を使用してコード プラクティスとしてインフラストラクチャを実装し、環境間で一貫した WAF 構成を維持します。 この方法により、ルールの除外管理が簡素化され、構成の誤差が軽減されます。 Azure Front Door の Azure Web アプリケーション ファイアウォールのベスト プラクティスを参照してください。
自動化されたコンプライアンス監視を実装する: Microsoft Defender for Cloud と Azure Policy を使用して WAF コンプライアンスを継続的に監視し、保護されていない Web アプリケーションの推奨事項を受け取ります。 ポリシー違反とコンプライアンスドリフトの自動アラートを構成します。 Azure Web アプリケーション ファイアウォールと Azure Policy に関するページを参照してください。