Azure Application Gateway 上の Azure Web アプリケーション ファイアウォールとは

Azure Application Gateway 上の Azure Web Application Firewall (WAF) は、一般的な悪用や脆弱性から Web アプリケーションを積極的に保護します。 Web アプリケーションが悪意のある攻撃の対象となる頻度が高くなるにつれて、これらの攻撃は、SQL インジェクションやクロスサイト スクリプティングなどの既知の脆弱性を悪用することが多くなっています。

Application Gateway 上の WAF は、Open Web Application Security Project (OWASP) のコア ルール セット (CRS) に基づいています。

以下に示す WAF 機能はすべて WAF ポリシー内に存在します。 複数のポリシーを作成して、Application Gateway、個々のリスナー、または Application Gateway のパスベースのルーティング規則に関連付けることができます。 これにより、必要に応じて、Application Gateway の後ろにあるサイトごとに個別のポリシーを設定できます。 WAF ポリシーの詳細については、「WAF ポリシーの作成」を参照してください。

注意

Application Gateway WAF SKU には、2 つのバージョン (Application Gateway WAF_v1 と Application Gateway WAF_v2) があります。 WAF ポリシーの関連付けは、Application Gateway WAF_v2 SKU でのみサポートされます。

Application Gateway の WAF の図

Application Gateway は、アプリケーション配信コントローラー (ADC) として機能します。 これにより、トランスポート層セキュリティ (TLS) (以前は Secure Sockets Layer (SSL) と呼ばれていました) 終端、Cookie ベースのセッション アフィニティ、ラウンドロビンの負荷分散、コンテンツベースのルーティング、複数の Web サイトをホストする機能、セキュリティ強化機能が提供されます。

Application Gateway は、TLS ポリシー管理とエンド ツー エンド TLS サポートを通してセキュリティを強化します。 WAF を Application Gateway に統合することで、アプリケーション セキュリティが強化されます。 この組み合わせは、Web アプリケーションを一般的な脆弱性から積極的に保護し、一元的に管理可能で構成が容易な場所を提供します。

メリット

このセクションでは、Application Gateway 上の WAF によって得られる主なメリットについて説明します。

保護

  • バックエンド コードを変更しなくても、Web アプリケーションを Web の脆弱性および攻撃から保護できます。

  • 同時に複数の Web アプリケーションを保護できます。 Application Gateway のインスタンスは、Web アプリケーション ファイアウォールによって保護されている最大 40 個の Web サイトをホストできます。

  • 同じ WAF の内側にある各種サイト用にカスタム WAF ポリシーを作成できます。

  • IP 評判のルールセットを使用して、悪意のあるボットから Web アプリケーションを保護します。

  • DDoS 攻撃からアプリケーションを保護します。 詳細については、「アプリケーション DDoS Protection」をご覧ください。

監視

  • リアルタイムの WAF ログを使用して、Web アプリケーションに対する攻撃を監視できます。 このログは Azure Monitor と統合されているため、WAF のアラートを追跡し、傾向を簡単に監視できます。

  • Application Gateway の WAF は Microsoft Defender for Cloud と統合されています。 Defender for Cloud を使用すると、Azure、ハイブリッド、マルチクラウドのすべてのリソースのセキュリティ状態を一元的に把握できます。

カスタマイズ

  • ご使用のアプリケーションの要件に合わせて WAF の規則と規則グループをカスタマイズし、誤検出を排除できます。

  • WAF の内側にある各サイトに WAF ポリシーを関連付けて、サイト固有の構成を許可することができます。

  • アプリケーションのニーズに合わせてカスタム ルールを作成することができます。

特徴

  • SQL インジェクションからの保護。
  • クロスサイト スクリプティングからの保護。
  • その他の一般的な Web 攻撃からの保護 (コマンド インジェクション、HTTP 要求スマグリング、HTTP レスポンス スプリッティング、リモート ファイル インクルードなど)。
  • HTTP プロトコル違反に対する保護。
  • HTTP プロトコル異常に対する保護 (ホスト ユーザー エージェントと承認ヘッダーが見つからない場合など)。
  • クローラーおよびスキャナーに対する保護。
  • 一般的なアプリケーション構成ミスの検出 (Apache や IIS など)。
  • 下限と上限を指定した、構成可能な要求サイズ制限。
  • 除外リストを使用すると、WAF の評価から特定の要求属性を省略できます。 一般的な例として、認証フィールドまたはパスワード フィールドにおいて使用される、Active Directory で挿入されたトークンが挙げられます。
  • 特定のアプリケーションのニーズに合わせてカスタム ルールを作成することができます。
  • トラフィックを geo フィルタリングすることで、特定の国/地域を対象に、アプリケーションへのアクセスを許可したりブロックしたりできます。
  • ボット軽減策ルールセットを使用してアプリケーションをボットから保護できます。
  • 要求本文で JSON と XML を検査します。

WAF のポリシーと規則

Application Gateway 上で Web アプリケーション ファイアウォールを有効にするには、WAF ポリシーを作成する必要があります。 このポリシーには、すべてのマネージド規則、カスタム ルール、除外、そしてファイル アップロード制限などのその他のカスタマイズが含まれます。

保護のために、WAF ポリシーを構成して、そのポリシーを 1 つまたは複数のアプリケーション ゲートウェイに関連付けることができます。 WAF ポリシーは、2 種類のセキュリティ規則で構成されます。

  • 作成したカスタム ルール

  • Azure で管理される事前に構成された一連のルールのコレクションであるマネージド ルール セット

両方ともある場合、マネージド規則セットの規則が処理される前に、カスタム規則が処理されます。 規則は、一致条件、優先順位、およびアクションで構成されます。 サポートされているアクションの種類は次のとおりです: ALLOW、BLOCK、LOG。 マネージド規則とカスタム規則を組み合わせることで、特定のアプリケーション保護要件を満たす完全にカスタマイズされたポリシーを作成することができます。

ポリシー内の規則は、優先順位に従って処理されます。 優先順位は、規則の処理順序を定義する一意の整数です。 整数値が小さいほど高い優先順位を表し、大きい整数値の規則より前に評価されます。 規則が一致すると、規則で定義されている対応するアクションが要求に対して適用されます。 このような一致が処理された後、優先順位の低い規則はそれ以上処理されません。

Application Gateway を使用して配信する Web アプリケーションには、グローバル レベル、サイトごとのレベル、または URI ごとのレベルで、WAF ポリシーを関連付けることができます。

コア ルール セット

Application Gateway では、CRS 3.2、CRS 3.1、CRS 3.0 など、複数のルール セットがサポートされています。 これらの規則は、悪意のあるアクティビティから Web アプリケーションを保護します。

詳細については、「Web アプリケーション ファイアウォール CRS の規則グループと規則」を参照してください。

カスタム規則

Application Gateway はカスタム ルールもサポートしています。 カスタム ルールを使用すると、WAF を通過する要求ごとに評価される独自の規則を作成できます。 これらの規則は、マネージド規則セット内の他の規則よりも高い優先度を持ちます。 一連の条件が満たされた場合、許可またはブロックするためのアクションが実行されます。

カスタム ルールで Geomatch 演算子が利用できるようになりました。 詳細については、Geomatch カスタム ルールに関するページをご覧ください。

カスタム ルールの詳細については、Application Gateway のカスタム ルールに関する記事を参照してください。

ボット保護規則セット

マネージド ボット保護規則セットを有効にすると、すべてのボット カテゴリからの要求に対してカスタム アクションを実行することができます。

次の 3 つのボット カテゴリがサポートされています。

  • 不良

    悪性ボットとは、悪意のある IP アドレスを持つボットや、ID が改ざんされたボットのことです。 悪性ボットには、侵害に関する Microsoft 脅威インテリジェンス フィードの信頼性の高い IP 指標と IP レピュテーション フィードをソースとする悪意のある IP アドレスが含まれます。 また、良性ボットと自称しているが、その IP アドレスは正当なボット発行元に属さないボットも含まれます。

  • 良好

    良性ボットとは、信頼できるユーザー エージェントのことです。 良性ボット規則は、WAF ポリシー構成をきめ細かく制御できるように複数のカテゴリに分類されます。 これらのカテゴリには次のものが含まれます。

    • 検証済みの検索エンジン ボット (Googlebot や Bingbot など)
    • 検証済みのリンク チェッカー ボット
    • 検証済みのソーシャル メディア ボット (Facebookbot や LinkedInBot など)
    • 検証済みの広告ボット
    • 検証済みのコンテンツ チェッカー ボット
    • その他の検証済みのボット
  • 不明

    不明ボットとは、追加の検証が行われていないユーザー エージェントのことです。 不明なボットには、Microsoft 脅威インテリジェンス フィードの信頼レベルが中程度の IP 侵害インジケーターによって検出された悪意のある IP アドレスも含まれます。

WAF プラットフォームは、ボット シグネチャを積極的に管理して動的に更新します。

Microsoft_BotManagerRuleSet_1.0 は、[マネージド ルールセット][割り当て] オプションを使用して割り当てることができます。

マネージド ルール セットの割り当てのスクリーンショット。

ボット保護が有効になっている場合、これは構成済みのアクションに基づいてボット ルールに一致する受信要求のブロック、許可、ログ記録を行います。 これは既定で、悪意のあるボットをブロックし、検証済みの検索エンジン クローラーを許可し、不明な検索エンジン クローラーをブロックし、不明なボットをログに記録します。 さまざまな種類のボットのブロック、許可、ログ記録を行うカスタム アクションを設定するオプションが存在します。

ストレージ アカウント、イベント ハブ、ログ分析から WAF ログにアクセスしたり、パートナー ソリューションにログを送信したりできます。

Application Gateway ボット保護の詳細については、「Azure Application Gateway 上の Azure Web Application Firewall のボット保護の概要」を参照してください。

WAF のモード

Application Gateway の WAF は、次の 2 つのモードで実行するように構成できます。

  • 検出モード:すべての脅威アラートを監視してログに記録します。 [診断] セクションで Application Gateway の診断ログの記録をオンにしてください。 また、必ず WAF のログを選択してオンにしてください。 Web アプリケーション ファイアウォールは、検出モードで動作しているときに受信要求をブロックしません。
  • 防止モード:規則で検出された侵入や攻撃をブロックします。 攻撃者に "403 不正アクセス" の例外が送信され、接続が終了します。 防止モードでは、このような攻撃を WAF ログに記録します。

Note

新しくデプロイされる WAF は、運用環境で短期間、検出モードで実行することをお勧めします。 こうすると、防止モードに移行する前に、ファイアウォール ログを取得し、例外や カスタム ルールを更新することができます。 これは、予期しないブロックされたトラフィックの発生を減らすのに役立ちます。

WAF エンジン

Azure Web Application Firewall (WAF) エンジンとは、トラフィックを検査し、要求に潜在的な攻撃を表す特徴が含まれているかどうかを判断するコンポーネントです。 CRS 3.2 以降を使用すると、WAF によって新しい WAF エンジンが実行され、それによりパフォーマンスが向上し機能セットが強化されます。 旧バージョンの CRS を使用すると、以前のエンジンが WAF により実行されます。 新機能は、新しい Azure WAF エンジンでのみ利用できます。

WAF のアクション

要求がルールの条件に一致したときにどのアクションが実行されるかを選択できます。 次のアクションがサポートされています。

  • 許可: 要求は WAF を通過し、バックエンドに転送されます。 それより優先順位の低い規則によって、この要求をブロックすることはできません。 許可アクションはボット マネージャー ルールセットにのみ適用され、コア ルール セットには適用されません。
  • ブロック: 要求はブロックされ、WAF はバックエンドに要求を転送せず、クライアントに応答を送信します。
  • ログ: 要求は WAF ログに記録され、WAF によって優先順位の低い規則の評価が続行されます。
  • 異常スコア: これは CRS ルール セットの既定のアクションで、このアクションを含む規則が一致すると、合計異常スコアがインクリメントされます。 異常スコアリングはボット マネージャー ルールセットには適用されません。

異常スコアリング モード

OWASP には、トラフィックをブロックするかどうかを決定するための 2 つのモードがあります。従来モードと異常スコアリング モードです。

従来モードでは、いずれかの規則に一致するトラフィックが、他の規則の一致とは無関係に考慮されます。 このモードは簡単に理解できます。 しかし、特定の要求に一致する規則の数に関する情報が不足することが制限事項です。 そのため、異常スコアリング モードが導入されました。 OWASP 3.x ではこれが既定です。

異常スコアリング モードでは、ファイアウォールが防止モードの場合、いずれかの規則に一致するトラフィックがすぐにブロックされることはありません。 規則には特定の重大度があります。 [重大][エラー][警告] 、または [通知] です。 その重大度は、異常スコアと呼ばれる要求の数値に影響します。 たとえば、1つの [警告] 規則の一致によって、スコアに 3 が与えられます。 1つの [重大] 規則の一致では 5 が与えられます。

重大度
Critical 5
エラー 4
警告 3
注意事項 2

異常スコアでトラフィックがブロックされるしきい値は 5 です。 そのため、防止モードであっても、Application Gateway の WAF が要求をブロックするには、 [重大] 規則の一致が 1 つあるだけで十分です。 しかし、1 つの [警告] 規則の一致では、異常スコアは 3 増加するだけで、その一致だけではトラフィックをブロックするには不十分です。

Note

WAF ルールがトラフィックと一致したときにログに記録されるメッセージには、アクション値 "Matched" が含められます。一致したすべてのルールの合計異常スコアが 5 以上で、WAF ポリシーが防止モードで実行されている場合、要求があるとアクション値 "Blocked" を持つ必須の異常ルールがトリガーされて、要求が停止されます。 ただし、WAF ポリシーが検出モードで実行中の場合、要求があるとアクション値 "Detected" がトリガーされ、要求はログに記録されてバックエンドに渡されます。 詳細については、「Azure Application Gateway の Web アプリケーション ファイアウォール (WAF) のトラブルシューティング」を参照してください。

構成

どの WAF ポリシーも、Azure portal、REST API、Azure Resource Manager テンプレート、Azure PowerShell を使用して構成およびデプロイできます。 Firewall Manager 統合 (プレビュー) を使用して、Azure WAF ポリシーを大規模に構成、管理することもできます。 詳細については、「Azure Firewall Manager を使用してWeb Application Firewall ポリシーを管理する (プレビュー)」を参照してください。

WAF の監視

アプリケーション ゲートウェイの正常性を監視することは重要です。 WAF とそれが保護するアプリケーションを、Microsoft Defender for Cloud、Azure Monitor、および Azure Monitor ログと統合することでこれをサポートできます。

Application Gateway の WAF 診断の図

Azure Monitor

Application Gateway のログは、Azure Monitor と統合されます。 そのため、WAF のアラートやログなどの診断情報を追跡できます。 この機能には、ポータルの Application Gateway リソースの [診断] タブからアクセスするか、またはAzure Monitor から直接アクセスできます。 ログの有効化の詳細については、Application Gateway の診断に関する記事を参照してください。

Microsoft Defender for Cloud

Defender for Cloud は、脅威の防御、検出、対応に役立ちます。 Azure リソースのセキュリティに対する可視性と制御を強化します。 Application Gateway は Defender for Cloud と統合されています。 Defender for Cloud では、環境をスキャンして、保護されていない Web アプリケーションを検出します。 これらの脆弱なリソースを保護するために、Application Gateway の WAF が推奨されます。 Defender for Cloud から直接ファイアウォールを作成します。 これらの WAF インスタンスは Defender for Cloud と統合されます。 それらによって、アラートおよび正常性情報がレポートとして Defender for Cloud に送信されます。

Defender for Cloud の概要ウィンドウ

Microsoft Sentinel

Microsoft Sentinel は、スケーラブルでクラウドネイティブのセキュリティ情報イベント管理 (SIEM) およびセキュリティ オーケストレーション自動応答 (SOAR) ソリューションです。 Microsoft Sentinel は、高度なセキュリティ分析と脅威インテリジェンスを企業全体で実現し、アラートの検出、脅威の可視性、予防的な捜索、および脅威への対応のための 1 つのソリューションを提供します。

組み込みの Azure WAF ファイアウォール イベント ブックを使用すると、WAF 上のセキュリティ イベントの概要を把握できます。 これにはイベントや一致したルール、ブロックされたルールなど、ファイアウォールのログに記録されるあらゆる情報が含まれます。 ログについての詳細情報が後に続きます。

WAF ファイアウォール イベントのスクリーンショット。

WAF の Azure Monitor ブック

このブックを使用すると、複数のフィルター可能なパネルでセキュリティ関連の WAF イベントをカスタムで可視化することができます。 Application Gateway、Front Door、CDN などのすべての WAF の種類と連携でき、WAF の種類や特定の WAF インスタンスに基づいてフィルター処理できます。 ARM テンプレートまたはギャラリー テンプレートを使用してインポートします。 このブックをデプロイするには、WAF ブックに関するページを参照してください。

ログ記録

Application Gateway の WAF は、検出した各脅威について詳細なレポートを提供します。 ログ記録は Azure 診断ログに統合されています。 アラートは json 形式で記録されます。 これらのログは、Azure Monitor ログと統合できます。

Application Gateway の診断ログ ウィンドウ

{
  "resourceId": "/SUBSCRIPTIONS/{subscriptionId}/RESOURCEGROUPS/{resourceGroupId}/PROVIDERS/MICROSOFT.NETWORK/APPLICATIONGATEWAYS/{appGatewayName}",
  "operationName": "ApplicationGatewayFirewall",
  "time": "2017-03-20T15:52:09.1494499Z",
  "category": "ApplicationGatewayFirewallLog",
  "properties": {
    {
      "instanceId": "ApplicationGatewayRole_IN_0",
      "clientIp": "203.0.113.145",
      "clientPort": "0",
      "requestUri": "/",
      "ruleSetType": "OWASP",
      "ruleSetVersion": "3.0",
      "ruleId": "920350",
      "ruleGroup": "920-PROTOCOL-ENFORCEMENT",
      "message": "Host header is a numeric IP address",
      "action": "Matched",
      "site": "Global",
      "details": {
        "message": "Warning. Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host ....",
        "data": "127.0.0.1",
        "file": "rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf",
        "line": "791"
      },
      "hostname": "127.0.0.1",
      "transactionId": "16861477007022634343"
      "policyId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/drewRG/providers/Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies/globalWafPolicy",
      "policyScope": "Global",
      "policyScopeName": " Global "
    }
  }
} 

Application Gateway の WAF SKU の価格

価格モデルは、WAF_v1 SKU と WAF_v2 SKU で異なります。 詳細については、「Application Gateway の価格」を参照してください。

新機能

Azure Web Application Firewall の新機能については、「Azure の更新情報」を参照してください。

次のステップ