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

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

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

これらの攻撃を軽減するには、Web Application Firewall (WAF) を追加するか、サービスの前に DDoS Protection を配置して、不適切な要求を除外します。 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/L4 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、通常とは異なるユーザー エージェント文字列、異常なクエリ文字列パターンなど、問題のあるトラフィックをブロックするカスタム ルールを作成できます。

  • "許可して誤検知を減らす" アクションを使用して Match Custom Rules を作成することで、既知の正当なトラフィックに対して WAF をバイパスできます。 これらのルールは、他のブロックおよびレート制限ルールよりも優先度の高い (数値が小さい) 構成します。

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

    次の Log Analytics クエリは、前のルールに使用するしきい値を決定するのに役立ちます。 同様のクエリで Application Gateway を使用する場合は、 FrontdoorAccessLogApplicationGatewayAccessLog に置き換えます。

    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」をご覧ください。