Cloudflare の DDoS システムが攻撃を検出して緩和すると、攻撃の種類に応じて、パケット、DNS クエリ、または HTTP リクエストを破棄、レート制限、またはチャレンジします。
主な DDoS 緩和システムは 3 つです。
DDoS マネージドルールセットには、多数の個別ルールが含まれます。各ルールは、DDoS 攻撃トラフィックの識別方法をシステムに指示するヒューリスティックを提供します。マネージドルールセットが攻撃を識別すると、攻撃トラフィックに一致するリアルタイムのフィンガープリントを生成し、そのフィンガープリントを使って攻撃を緩和する一時的な緩和ルールをインストールします。
攻撃の開始時刻は、緩和ルールがインストールされたときです。そのルールに一致するトラフィックがなくなったときが終了です。これが 1 件の DDoS 攻撃イベントです。
DDoS 攻撃には開始時刻、終了時刻、および次のような追加の攻撃メタデータがあります。
- 攻撃 ID
- 攻撃ベクトル
- 緩和ルール
- 合計バイト数とパケット数
- 攻撃対象
- 緩和アクション
この情報は、Network Analytics ダッシュボードの エグゼクティブサマリー に使われます。
GraphQL API の dosdAttackAnalyticsGroups ノードからも取得できます。
現時点で、DDoS 攻撃イベントという概念があるのは Network-layer DDoS マネージドルールセット だけです。ほかのシステムでは、個別のパケット、クエリ、HTTP リクエストをこのようにまとめていません。
low and slow DDoS 攻撃 ↗ は、多くの場合ボリューム型ではありません。攻撃者は少量の HTTP リクエストを、ゆっくり送ります。検知されにくくし、時間をかけてリソースを枯渇させることが目的です。
Slowloris ↗ は、low and slow 攻撃の一種です。攻撃者は、多くの場合 HTTP または HTTPS を使い、対象サーバーへ TCP 接続 を確立します。
Slowloris 攻撃では、攻撃者は不完全な HTTP ヘッダー行を送り、HTTP リクエストを完了しません。サーバーは完全なリクエストを待ち、接続を開いたままにします。攻撃者は、追加の HTTP ヘッダーフィールドや途中までの行を定期的に送り、接続を維持します。部分的な HTTP ヘッダーを送るか、content-length ヘッダーで実際より大きなメッセージ本文サイズを宣言することで実現できます。
low and slow 攻撃への防御のベストプラクティスは、Cloudflare の CDN や WAF のような HTTP リバースプロキシを使うことです。リバースプロキシは盾として機能します。完全な HTTP リクエストを待ってから、Origin へ転送するか、キャッシュから配信するか、ユーザー設定に基づくほかのアクションを適用します。ゾーンを設定すると、リクエストを Cloudflare がバッファし、low and slow 攻撃を吸収できます。プロキシは完全な HTTP リクエストを待ってから先へ渡します。バッファ付きリクエストを有効にするには、Request Body Buffering を参照してください。
該当する場合、リクエストは Cloudflare の Cache または Workers から配信されます。そうでなければ、リクエストが完全に完了し、WAF の検査を通過した場合にだけ Origin へ送られます。そのため、TCP Slowloris 攻撃への保護と同様に、攻撃は実質的に存在しません。
さらに、リバースプロキシは一連の keepalive プローブ のあと、未完了の HTTP リクエストをタイムアウトします。
発動の最小しきい値はありません。ただし、追加のセキュリティとして、カスタムファイアウォールルールがペイロードサイズを確認し、内容が想定どおりかを基本的に検査します。
RUDY(R-U-Dead-Yet?)DDoS 攻撃は、対象サーバーに対して低速攻撃を行う DoS ツールの一種です。
短時間に大量のリクエストでサーバーを圧倒する従来の DDoS 攻撃とは異なり、RUDY は少数の長時間リクエストを作ります。フォームデータを極端に遅いペースで送信し、Web サーバーを占有して正規トラフィックを処理できないようにします。トラフィックは正規に見え、従来の DDoS 保護が反応するようなリクエストの洪水にもならないため、検知が難しいことがあります。
RUDY は、Web フォームのデータ送信の扱いを悪用し、Web サーバーのアプリケーション層(レイヤー 7)を狙います。アプリケーションの POST フィールドに 1 バイトずつ情報を注入し、待機します。アプリケーションスレッドはフォーム送信の完了を無限に待ち、サーバーのリソースを枯渇させ、正規リクエストの処理を妨げます。
RUDY 攻撃の詳細は ラーニングセンター ↗ を参照してください。
BEAST、Poodle、CRIME などの SSL/TLS ベースの攻撃は、Cloudflare の TLS 設定、構成、暗号の制限で緩和します。Cloudflare は HTTP リバースプロキシとして機能するため、TLS 枯渇型の攻撃は、HTTP リクエストを Origin サーバーへ渡す前に TLS セッションを終端することで緩和します。適切な TLS ハンドシェイクが完了しない限り、TLS トラフィックは Origin サーバーへプロキシされません。さらに、自動の DDoS 検出・緩和システムは、暗号スイート、パケットフィールド、HTTP リクエストの属性とメタデータ、Origin の健全性、トラフィックプロファイリング、機械学習モデル、脅威インテリジェンスを使い、追加の SSL ベース攻撃を検出して緩和します。
使います。Anycast ネットワークと Traffic Manager、Unimog、Plurimog を組み合わせ、正規トラフィックと攻撃トラフィックの負荷を自動で分散します。大規模攻撃の緩和時も含め、ネットワークの性能を維持します。
Cloudflare は四半期ごとの DDoS レポートと、大規模な DDoS 攻撃の解説を公開しています。公開物は ブログ ↗ と、Cloudflare Radar Reports ↗ のインタラクティブレポートで確認できます。
これらのレポートの 方法論 も参照してください。
ほぼリアルタイムの洞察と動向は、Cloudflare Radar ↗ でも確認できます。
Ping of Death(PoD)攻撃は、不正な形式または過大なパケットを別のコンピューターやサーバーへ送り、システムのフリーズ、クラッシュ、再起動を引き起こします。パケットはインターネット上で送られるデータの断片です。IP プロトコルではパケットの最大サイズが 65,535 バイトである必要があり、Ping of Death はこの点を悪用します。このサイズを超えるパケットを送ることで、対象の TCP/IP スタックの脆弱性を突き、バッファオーバーフローと、クラッシュを含む予測不能な動作を引き起こせます。最近のシステムやネットワーク機器の多くは、こうした異常を扱うパッチ済みであるため、この種の攻撃は以前より少なくなっています。
LOIC は、よく使われるネットワーク負荷テストおよび DoS 攻撃アプリケーションです。サーバーに TCP、UDP、または HTTP リクエストを洪水のように送り、サービスを妨害します。操作が単純で、ハッキング経験が少ない人でも使えることで知られています。ユーザーが小さなサーバーを攻撃対象にすると、リクエストの過負荷でサーバーが遅くなったりクラッシュしたりします。2010 年頃、ハッカーグループ Anonymous が大手企業や組織への攻撃に使ったことで有名になりました。
HOIC は LOIC の上位版で、特に検出と緩和の面で一部の制約を克服するよう設計されています。同時に複数の Web サイトへ、より大量のリクエストで強力な DoS 攻撃を仕掛けられます。HOIC には、防御側が攻撃トラフィックを識別・緩和しにくくする機能もあります。一部には、トラフィックを正規の HTTP トラフィックに似せる手法を使うためです。従来のネットワークセキュリティツールでは検知が難しくなります。HOIC は「ブースター」スクリプトにも対応し、複数の Web サイトを同時に狙えるため、広範囲の DoS 攻撃ツールとしての威力が高まります。
これらのツールと攻撃は、ネットワークプロトコルと振る舞いの異なる側面を悪用し、不要なトラフィックで対象を圧倒してサービス拒否を引き起こします。悪用されうるため、テスト目的の管理された環境以外での使用は違法かつ非倫理的です。
できます。オーバーライド を作成し、式フィールドでそのユーザーエージェントの HTTP リクエストに一致させます。使える フィールド は複数あります。
そのうえで、感度レベル または 緩和アクション を調整できます。
オーバーライドの作成 の手順を参照してください。
式フィールドの利用可否は 提供状況 に従います。
しません。2017 年以降、Cloudflare は 無料・無計量・無制限の DDoS 保護 ↗ を提供しています。DDoS 攻撃の件数、継続時間、規模に上限はありません。Cloudflare の課金システムは、利用量から DDoS 攻撃トラフィックを自動で除外します。
DDoS の マネージドルール は、攻撃パケット間の共通点を見つけ、リアルタイムのフィンガープリントを生成して攻撃を検出・緩和します。
攻撃が高度にランダム化され、マネージドルールが攻撃パケットの共通パターンを検出できない場合、Advanced TCP Protection はステートフルな TCP フロー追跡で、パケットが正規かどうかを判断します。Advanced TCP Protection は、より単純な TCP ベースの攻撃も緩和します。
Advanced TCP Protection が必要で利用できるのは、Magic Transit のお客様だけです。Spectrum と HTTP サービスでは、高度にランダム化された TCP ベースの DDoS 攻撃の緩和にリバースプロキシを使います。
超局所的な DDoS 攻撃は、特定の PoP やデータセンターの近くにあるボットネットノードから、その拠点を狙い、停止やサービス障害を起こそうとする攻撃です。
ただし Cloudflare の防御はこうした攻撃に強く、インテリジェントなトラフィックエンジニアリング、グローバル Anycast、リアルタイムの自律 DDoS 緩和を組み合わせて、特定の PoP の容量を一時的に超える場合でも超局所的な DDoS 攻撃を扱います。
Anycast では、複数のサーバー(PoP)が同じ IP アドレスを共有します。BGP(Border Gateway Protocol)のルーティングにより、ユーザートラフィックは最も近い、またはコストが最も低いノードへ送られます。
ある PoP が局所的な DDoS 洪水や容量不足で圧倒されると、BGP ルートの広報を調整して、その PoP からトラフィックを移せます。Cloudflare は特定のピアまたは上流への BGP 広報を取り下げ、より余裕のある PoP へトラフィックを迂回させることもできます。DDoS トラフィックは複数の地域から届くため、Anycast とトラフィックエンジニアリングが攻撃を Cloudflare のフル容量 Anycast ネットワーク ↗ 全体に分散し、単一 PoP への負担を減らします。
Cloudflare はリアルタイムデータとインテリジェンスシステムを使い、トラフィックの経路、負荷分散、輻輳管理を判断します。
特定の PoP が飽和したり攻撃トラフィックを受けたりすると、Cloudflare 内部のトラフィックエンジニアリングは、トラフィックシェーピング、経路を意識したルーティング、動的な DNS 応答を使い、代替経路へ動的に誘導します。
システムは CPU 負荷、ネットワーク輻輳、トラフィック種別を監視し、接続の迂回や抑制を判断します。
レイヤー 7(アプリケーション層)の攻撃では、アプリケーションサーバーに届く前にチャレンジやレート制限をかけられます。これは、保守のために一部の PoP を停止する場合とある程度似ています。Traffic Manager で自動的に行え、必要なら Site Reliability Engineers(SRE)が対応します。
DDoS マネージドルールと Advanced DDoS Protection は自律的で、各サーバーで独立に動きつつ、ローカルとグローバルでも協調します。各サーバーと PoP の耐性に寄与します。これらのシステムは各 PoP のネットワークエッジ近くで動くため、検出と緩和は迅速で、多くの場合目立つ影響の前に完了します。トラフィックが 1 つの PoP の容量を超えると、緩和ルールはほかの PoP へ複製され、あふれを吸収します。
- DDoS マネージドルール: DDoS 攻撃をリアルタイムで検出して緩和します。攻撃を検出すると、数秒以内にルールを展開して悪意のあるトラフィックを緩和します。
- Advanced TCP Protection: 異常な TCP/IP の振る舞いを識別し、アプリケーションサーバーに届く前に破棄します。
- Advanced DNS Protection: 異常な DNS クエリの振る舞いを識別し、DNS サーバーに届く前に破棄します。
Protected Learning 機能により、Advanced TCP Protection はインターネットルーティングの乱れを乗り越えつつ、正規トラフィックを通し、エッジで DDoS 攻撃をブロックできます。
Anycast と BGP は、トラフィックを最も近い、または最適なデータセンターへ送るインターネットルーティングのプロトコルです。データセンターの保守停止やインターネットルーティングの変化など、まれなネットワーク事象により、確立済み接続が別のデータセンターへ再ルーティングされることがあります。
Cloudflare のフロー推論機能(Protected Learning とも呼びます)は、この状況向けです。TCP 接続(フロー)が新しいデータセンターへ移ると、システムはローカルのフローテーブルにない既存接続だと判断します。DDoS 攻撃の一部かもしれない未知の接続としてすぐブロックするのではなく、独自の手順で正規かどうかを確認します。フローの ACK(確認応答)パケットにチャレンジし、DDoS 攻撃の一部でないことを確かめる場合があります。検査を通過したフローは、中断なく継続を許可します。まれな正規のトラフィック移動でも長時間接続を切らさず、DDoS 攻撃からはネットワークを保護します。
防ぎません。Cloudflare DDoS Protection は、OSI モデルのレイヤー 3、4、7 における DDoS 攻撃から、Web およびネットワークインフラを守ります。対象は TCP、UDP、DNS、HTTP/S トラフィックです。
DDoS Protection は、SMTP、IMAP、POP3 などのメールプロトコルで届く脅威を検査・緩和しません。フィッシング、ビジネスメール詐欺(BEC)、なりすまし、メール経由のマルウェアなど、メール由来の脅威には Cloudflare Email Security を使います。