HTTP DDoS ruleset in Azure Front Door WAF

適用対象: ✔️ Front Door Premium

HTTP層のフラッドは依然としてアプリケーションの可用性インシデントの最も頻繁な主な要因であり、IPやジオフィルタ、固定レート制限などの静的制御は分散型ボットネットに追いつきにくいことが多いです。 HTTP DDoSルールセットは、Azure Web Application Firewall(WAF)の自動化されたレイヤー7保護モデルで、最小限のユーザー設定で学習、検出、防御を行います。 一度割り当てされると、ルールセットは各Azure Front Doorプロファイルの通常のトラフィックのベースラインを継続的に学習し、トラフィックの急増が攻撃を示す場合には、緊急調整なしで攻撃トラフィックを選択的に緩和します。

HTTP DDoS ルールセットのしくみ

HTTP DDoSルールセットがAzure Front Door Premiumプロファイルに付与されたポリシーに適用されると、ローリングウィンドウを使ってトラフィックベースラインが計算されます。 過去7日間のうち少なくとも50%の日でトラフィックを受け取っているプロファイルに対して、ルールセットはベースラインを計算し、24〜36時間以内にスパイクの検出を開始します。 Front Doorプロファイルに十分なトラフィックがなければ(過去7日間のうち50% 未満)、信頼できるベースラインを確立できる十分なトラフィックが揃うまで、ルールセットは攻撃を検出または緩和できません。

要求のしきい値は、グローバル プロファイル レベルで学習されます。 HTTP DDoS ルールセットで構成された 1 つの WAF ポリシーが複数の Azure Front Door プロファイルに割り当てられている場合、トラフィックのしきい値は、ポリシーがアタッチされているプロファイルごとに個別に計算されます。

ルールセットは2段階の設計を採用しています。 グローバルプロファイルの閾値に加え、個々のクライアントIPアドレスに対するより狭い閾値、さらに 地理ルール を使用すると各国・地域ごとの閾値を学習します。 リクエストのプロファイル閾値が突破されるまでは、より狭い閾値は適用されません。 このアプローチにより、少数のクライアントからのトラフィックスパイクに対してルールセットが作用するのを防ぎます。ただし、プロファイル全体のリクエストレートが閾値を超えた場合を除きます。

HTTP DDoS ルール セット内の各ルールには、それぞれ異なるしきい値に対応する 3 つの秘密度レベルが用意されています。 感度を高く設定すると、そのルールのしきい値が低くなりますが、感度の低い設定ではより高いしきい値が適用されます。 既定の推奨設定は中程度の感度です。

ルールセットを割り当てると、そのルールはデフォルトで Log アクションと中感度で有効になります。 ログを確認し、それぞれのルールのアクションを自分のアプリケーションに合わせて設定してください。

HTTP DDoS ルールセットは、カスタム 規則の前であっても、Azure WAF によって評価される最初のルールセットです。

Important

Allowアクションで設定されたカスタムルールはHTTP DDoSルールセットを回避できませんが、他のすべてのWAF検査を回避します。 信頼トラフィックをHTTP DDoSルールセットから除外するには、例外を使用します。

ペナルティ ボックス

プロファイルの閾値を超えると、ルール500100または500110の閾値を超えるクライアントIPアドレスはペナルティボックスに入れられます。 IPアドレスが一定時間ブロック状態にある間、WAFはルールの設定されたアクションをそのリクエストに適用します。 ペナルティボックスの期間が終了すると、IPアドレスは通常通り評価され、再び閾値を超えるとペナルティボックスに戻ります。

ルールセットの規則

HTTP DDoSルールセットは、WAFポリシーの管理ルールに Microsoft_HTTPDDoSRuleSet_1.0 として表示され、4つのルールがあります。 各ルールは、その条件に合致するトラフィックごとに別々のトラフィックベースラインを維持し、それぞれ独自の感度やアクションで設定可能です。

ルール識別子 ルール 基準とするもの Status
500100 クライアントリクエスト率が高いことで異常が検出されました 各クライアントIPアドレスからのリクエスト 一般公開
500110 高い頻度でリクエストを送信している疑いのあるボット Microsoft Threat Intelligenceがボットと分類したIPアドレスからのリクエスト 一般公開
500310 大量の送信元地域からの高頻度のリクエストで異常が検出される 各件数の多い国・地域からのリクエスト Preview
500320 低ボリュームのソースジオからの高いリクエスト率で異常を検出 その他すべての国や地域からの統合されたリクエスト Preview

ルール500100: クライアントリクエスト率が高い異常を検出: このルールは、ポリシーが付随するプロファイル上のすべてのトラフィックを追跡し、基準値を確立します。 クライアントが確立されたしきい値を超えると、対応する構成済みアクションがトリガーされます。

ルール500110:高頻度のリクエストを送信する疑わしいボット:このルールでは、Microsoft脅威インテリジェンスによってボットと分類されたトラフィックに基づいて異なる感度レベルを設定できます。 疑わしいボットの場合、既定のしきい値は、他のすべての IP アドレスの既定のしきい値よりも厳しくなります。 高リスクとして分類されたボットは、グローバル プロファイルのしきい値に違反すると、この規則によって直ちにブロックされます。

ルール500310および500320はジオルールで、次のセクションで説明します。

ジオルール (プレビュー)

Important

HTTP DDoSルールセットのジオルール、ルール500310および500320は現在プレビュー中です。 残りのHTTP DDoSルールセットは一般に利用可能です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

Per-IP 閾値は、各クライアントが大量のリクエストを送信する攻撃に対して効果的に機能します。 ボットネットが多数のIPアドレスにトラフィックを分散させ、それぞれが自分の閾値以下にとどまるような高度分散型攻撃にはあまり効果的ではありません。 ジオルールは、クライアントごとではなく国や地域ごとにトラフィックのベースラインを設定する第二の防御層を追加します。

ジオルールの仕組み

ほとんどのアプリケーションは、正当なトラフィックの大部分をごく少数の高ボリュームな国や地域から受け取っています。 ジオルールはそのパターンを使用します:

  • ルール500310は、取引量の多い国または地域ごとに別々の閾値を学習します。
  • ルール500320は、他のすべての国や地域に対して1つの結合しきい値が設定されます。 これらすべての低ボリュームソースからのリクエストは、この単一のしきい値に対して合算されます。

例えば、プロフィールのトラフィックの大部分が米国、Australia、Franceから来ているとします。 ルール500310はこれら3つそれぞれの閾値を学び、ルール500320は他のすべての場所からの集約されたトラフィックに対して1つの閾値を学習します。 攻撃中、米国からのサージは米国の閾値に対して測定され、他の多くの場所に薄く分散した攻撃は合計閾値に対して測定されます。

ジオルールは他のルールセットと同様に2段階の設計に従い、プロファイルの全体のリクエスト率が学習済みの閾値を超えた場合にのみ動作します。 その場合、高ボリュームの国や地域からのリクエスト率が閾値を超えた場合、ルール500310はその国または地域からのリクエストにそのアクションを適用します。 他のすべての国や地域からの合計リクエスト率が閾値を超えると、ルール500320はこれらすべての低ボリュームソースからのリクエストにそのアクションを適用します。

以下の行動を念頭に置いてください:

  • ジオルールは過去約7日間のトラフィックから基準値を学習し、定期的に再計算することで、時間の経過によるトラフィックの変化を追跡します。
  • 閾値は平均ではなくピークトラフィックを反映しているため、通常の1日のピークはその値を下回ります。
  • 国や地域にマッピングされていないIPアドレスからのリクエストは、未知国または地域(ZZ)としてグループ化され、他の国や地域と同様にベースライン化されます。
  • もしプロファイルに十分なトラフィック履歴がなく、信頼できるベースラインを学習できない場合、ジオルールはそのプロファイルに対して対応しません。
  • ジオルールはルール500100の後に評価されます。 クライアントが各クライアントの1IPあたりの閾値を超えた場合は、まずper-IPルールで処理され、その後、1IPあたり閾値以下にとどまる分散トラフィックに対してジオルールが適用されます。

ジオルールのアクションと感度を選択する

ジオルールは個々のクライアントではなく、国や地域全体のトラフィックに作用します。 ジオルールが一致すると、そのアクションはその国や地域の正当なユーザーにも攻撃トラフィックにも適用されます。 デフォルトのアクションを変更する前に、事前に計画しておいてください:

  • ログアクションから始めましょう。 ジオルールはデフォルトでログアクションで有効化されています。 通常のトラフィック時と急増時のログを必ず確認してから、それらを適用してください。
  • 障害よりも挑戦を好みます。 JavaScript チャレンジ により、正当なブラウザは通過可能となり、ほとんどのスクリプトクライアントは停止されるため、影響を受ける国や地域の実際のユーザーへの影響を限定しています。
  • 予想される地域的な急増に対する感度を下げてください。 特定の国や地域から正当な急増が予想される場合、例えば地域のキャンペーンや製品発売時に、イベント前に影響を受けるルールの感度を下げてください。

信頼トラフィックをルールセットの適用対象から除外する

Allowアクション付きのカスタムルールはHTTP DDoSルールセットを回避しません。 ヘルスプローブ、合成監視、ロードテスト、パートナー統合などの既知の正常なトラフィックがルールセットを回避できるようにするには、WAF例外を使用します。 HTTP DDoSルールセット内の特定のルールまたはルールセット全体に例外の適用範囲を限定し、リモートIPアドレス、リクエストURI、またはリクエストヘッダーでマッチングできます。

例外の範囲はできるだけ狭くしましょう。 例えば、ロードテストツールがルール500100からの解放だけが必要な場合、ツールをルールセット内の他のルールから免除しないでください。

HTTP DDoS ルールセットの監視

HTTP DDoSルールセットには以下の監視オプションが利用可能です:

  • IPアドレスがルール500100または500110の閾値を初めて超えた場合、そのIPアドレスについて、ルールのアクションを含むログエントリが記録され、WAF管理ルールのマッチメトリックが増加します。
  • ルールの一致は、Web Application Firewallのリクエストカウントメトリックとルール名によるフィルタリングで監視できます。 ジオルールの一致はルールID500310および500320で記録されます。
  • Web Application Firewall HTTPDDoSRuleset Is Active メトリックは、ルールセットが学習を完了し、学習した閾値を超えるトラフィックに対処できる状態になると1の値を持ちます。