アプリケーション(レイヤー 7)DDoS 保護

Azure WAF には、分散型サービス拒否(DDoS)攻撃を防ぐのに役立ついくつかの防御機構があります。 DDoS 攻撃は、ネットワーク レイヤー(L3/L4)またはアプリケーション レイヤー(L7)の両方をターゲットにできます。 Azure DDoS は、大規模なネットワーク レイヤーの帯域幅消費型攻撃から顧客を保護します。 レイヤー7 で動作する Azure WAF は、HTTP フラッドなどの L7 DDoS 攻撃から Web アプリケーションを保護します。 これらの防御により、攻撃者がアプリケーションに到達し、そのアプリケーションの可用性やパフォーマンスに影響を与えることを防止できます。

どうすればサービスを保護できるでしょうか?

これらの攻撃は、Web アプリケーション ファイアウォール (WAF) を追加するか、サービスの前に DDoS を配置して不正な要求を除去することで軽減できます。 Azure は、Azure Front Door を使用してネットワーク エッジで実行される WAF と、Application Gateway を使用してデータ センターで実行される WAF を提供します。 これらの手順は一般化された一覧であり、アプリケーション要件サービスに合わせて調整する必要があります。

  • Azure Front Door Premium または Application Gateway WAF v2 SKU を使用して Azure Web アプリケーション ファイアウォール (WAF) をデプロイして、L7 アプリケーション レイヤー攻撃から保護します。
  • 十分な予備容量が確保されるように、配信元インスタンス数をスケールアップします。
  • 送信元のパブリック IP で Azure DDoS Protection を有効にして、レイヤー 3 (L3) およびレイヤー 4 (L4) の DDoS 攻撃からパブリック IP を保護します。 Azure の DDoS オファリングでは、Web サイトに多数のパケットを送信する L3 および L4 ボリューム攻撃からほとんどのサイトを自動的に保護できます。 Azure では、既定で Azure でホストされているすべてのサイトにインフラストラクチャ レベルの保護も提供されます。

Azure Front Door を使用した Azure WAF

Azure WAF には、HTTP フラッド、キャッシュ バイパス、ボットネットによって起動される攻撃など、多数のさまざまな種類の攻撃を軽減するために使用できる多くの機能があります。

  • 既知の不適切なボットから保護するには、ボット保護マネージド ルール セットを使用します。 詳細については、ボット保護の構成に関するページをご覧ください。

  • レート制限を適用して、IP アドレスがサービスを頻繁に呼び出すのを防ぎます。 詳細については、レートの制限に関するページをご覧ください。

  • 悪意があるものと特定された IP アドレスと範囲をブロックします。 詳細については、IP の制限に関するページをご覧ください。

  • 定義された地理的リージョン外、またはアプリケーションのトラフィック パターンに適合しない定義されたリージョン内からのトラフィックをブロックするか、静的 Web ページにリダイレクトします。 詳細については、geo フィルタリングに関するページを参照してください。

  • 既知の署名を持つ HTTP または HTTPS 攻撃を自動的にブロックし、レート制限するためのカスタム WAF ルールを作成します。 特定のユーザー エージェントなどの署名、またはヘッダー、Cookie、クエリ文字列パラメーターや複数の署名の組み合わせを含む特定のトラフィック パターン。

WAF を超えて、Azure Front Door では、L3/4 DDoS 攻撃から保護するための既定の Azure インフラストラクチャ DDoS 保護も提供されます。 Azure Front Door でキャッシュを有効にすると、エッジでの突然のピーク トラフィック量を吸収したり、バックエンドの配信元を攻撃から保護したりするのにも役立ちます。

Azure Front Door の機能と DDoS 保護の詳細については、「Azure Front Door での DDoS 保護」を参照してください。

Azure Application Gateway を使用した Azure WAF

L7 DDoS 攻撃から防御するには、L7 DDoS 軽減機能などの最新の機能を備えた Application Gateway WAF v2 SKU を使用することをお勧めします。

Application Gateway WAF SKU を使用すると、多くの L7 DDoS 攻撃を軽減できます。

  • 自動スケールアップし、最大インスタンスの数が適用されないように Application Gateway を設定します。

  • ボット保護マネージド ルール セットを使用すると、既知の不適切なボットに対する保護が提供されます。 詳細については、ボット保護の構成に関するページをご覧ください。

  • レート制限を適用して、IP アドレスがサービスを頻繁に呼び出すのを防ぎます。 詳細については、「レート制限カスタム ルールの構成」を参照してください。

  • 悪意があるものと特定された IP アドレスと範囲をブロックします。 詳細については、「v2 カスタム ルールを作成して使用する」の例をご覧ください。

  • 定義された地理的リージョン外、またはアプリケーションのトラフィック パターンに適合しない定義されたリージョン内からのトラフィックをブロックするか、静的 Web ページにリダイレクトします。 詳細については、「v2 カスタム ルールを作成して使用する」の例をご覧ください。

  • 既知の署名を持つ HTTP または HTTPS 攻撃を自動的にブロックし、レート制限するためのカスタム WAF ルールを作成します。 特定のユーザー エージェントなどの署名、またはヘッダー、Cookie、クエリ文字列パラメーターや複数の署名の組み合わせを含む特定のトラフィック パターン。

その他の注意事項

  • 配信元でのパブリック IP へのアクセスをロックダウンし、Azure Front Door または Application Gateway から配信元へのトラフィックのみを許可するように受信トラフィックを制限します。 Azure Front Door に関するガイダンスを参照してください。 Application Gateway は仮想ネットワークにデプロイされるため、一般に公開される IP は存在しなくなります。

  • WAF ポリシーを防止モードに切り替えます。 このポリシーを検出モードでデプロイすると、ログでのみ動作し、トラフィックがブロックされません。 運用トラフィックを使用して WAF ポリシーを検証およびテストし、誤検知を減らすために微調整した後、ポリシーを防止モード (ブロック/防御モード) に切り替える必要があります。

  • Azure WAF ログを使用してトラフィックを監視し、異常がないか確認します。 カスタムルールを作成して、問題のあるトラフィック (異常に多くのリクエストを送信する疑わしいIP、異常なユーザーエージェント文字列、異常なクエリ文字列パターンなど) をブロックできます。

  • 既知の正当なトラフィックに対して WAF をバイパスするには、誤検知を減らすために [許可] のアクションを使用して [カスタム一致ルール] を作成します。 これらのルールは、他のブロック ルールやレート制限ルールよりも高い優先順位 (数値が小さい) で構成する必要があります。

  • 少なくとも、単一の IP アドレスからの高レートの要求をブロックするレート制限ルールが必要です。 たとえば、単一のクライアント IP アドレスがウィンドウごとに XXX を超えるトラフィックをサイトに送信できないようにレート制限ルールを構成できます。 Azure WAF では、要求を追跡するための 2 つのウィンドウ (1 分と 5 分) がサポートされています。 HTTP フラッド攻撃をより効果的に軽減するには、5 分のウィンドウを使用することをお勧めします。 このルールは、このルールの前に一致するより具体的なレート制限ルールまたは一致ルールを作成できるように、最も低い優先順位のルールである必要があります (優先順位は 1 が最も高い優先事項であるように順序付けされます)。 Application Gateway WAF v2 を使用している場合は、追加のレート制限構成を使用して、クライアント IP 以外の方法でクライアントを追跡およびブロックできます。 Application Gateway WAF のレート制限の詳細については、 「レート制限の概要」を参照してください。

    次の Log Analytics クエリは、上記のルールに使用する必要があるしきい値を決定するのに役立ちます。 同様のクエリで Application Gateway を使用する場合は、"FrontdoorAccessLog" を "ApplicationGatewayAccessLog" に置き換えます。

    AzureDiagnostics
    | where Category == "FrontdoorAccessLog"
    | summarize count() by bin(TimeGenerated, 5m), clientIp_s
    | summarize max(count_), percentile(count_, 99), percentile(count_, 95)
    
  • マネージド ルールは、DDoS 攻撃からの防御を直接のターゲットにはしておらず、その他の一般的な攻撃からの保護を提供します。 詳細については、マネージド ルール (Azure Front Door) またはマネージド ルール (Application Gateway) に関するページを参照して、これらのルールが保護に役立つさまざまな攻撃の種類の詳細を確認してください。

WAF ログの分析

次のクエリを使用して、Log Analytics で WAF ログを分析できます。

Azure Front Door

AzureDiagnostics
| where Category == "FrontdoorWebApplicationFirewallLog"

詳細については、「Azure Front Door を使用した Azure WAF」をご覧ください。

Azure Application Gateway

AzureDiagnostics
| where Category == "ApplicationGatewayFirewallLog"

詳細については、「Azure Application Gateway を使用した Azure WAF」をご覧ください。

次の手順