Fastly が Rapid Reset のような新種の大規模な DDoS 攻撃からお客様を保護する方法
Fastly のお客様のトラフィックは、最近発見され、大規模な被害をもたらしている DDoS攻撃「Rapid Reset」の影響を受けません。
Rapid Reset と呼ばれる DDoS 攻撃が最初に発生した際、私たちは大量のリクエストを確認し、対処しないと CPU の使用率上昇につながるリスクがあることに気づきました。しかし Fastly の自律システムが攻撃者による手法を検知して、適切な対策を素早く展開したのです。
大規模攻撃に対する Fastly の防御は、スタックを処理するカーネルとネットワークアプリケーションレイヤーにビルトインされた検出機能と防御機能によって、エッジで自動的に行われます。これらのシステムは Fastly のすべてのお客様を大規模攻撃から保護します。これは、ご契約いただいているパッケージやセキュリティソリューションの種類を問わず、すべてのお客様のために Fastly ネットワークを稼働し続けることを最優先しているためです。Fastly は Next-Gen WAF</u>、Edge Rate Limiting</u>、Managed Security Services</u> (MSS) など、お客様固有のニーズに応じてより詳細なセキュリティルールを定義できるセキュリティプロダクトを提供していますが、Fastly のセキュリティシステムによって、お客様とトラフィックはこうした大規模攻撃から追加費用なしで保護されます。このようなセキュア・バイ・デザインを実現する機能が、Fastly ネットワークに直接ビルドインされているのです。
Rapid Reset 攻撃に関する詳細は、これまで他社のブログ</u>でも詳しく説明されてきました。今回の記事では、お客様を保護するために私たちが採用している新しい攻撃の検出方法や、攻撃を迅速かつ効果的に軽減する方法をご紹介します。世界中のお客様やエンドユーザーに一貫して優れたパフォーマンスや信頼性を提供するために、Fastly は DDoS 攻撃に対して他とは異なるアプローチを採用しています。私たちは、他のベンダーに深刻な被害をもたらすような記録的に大規模なボットネット攻撃を受けている場合でも、ユーザーが平常時との違いをまったく感じないようにすることを目指しています。undefined
イベントタイムライン
2023年8月下旬に約3分間で2億5,000万 RPS 近くの大量のトラフィックが発生したことを受け、新たな Rapid Reset 攻撃の問題が初めて自動検出されました。
Fastly の DDoS 攻撃向けフォレンジックシステムは、これまで類を見ないようなレベルの攻撃を即座に把握し、この増幅レベルに至るのに攻撃者が利用した方法を正確に特定することに成功しました。
Fastly のエンジニアは、エッジにある DDoS 攻撃向けミティゲーションエンジンに新機能を簡単に追加し、今後こうした攻撃を効果的に緩和できるようにしました。
2023年10月10日に、CVE-2023-44487 (Google 等によって報告されている Rapid Reset 攻撃) が公開されました。この脆弱性によって Fastly のお客様にリスクがもたらされることはありませんでした。Fastly は以前もこの攻撃に対応したことがあり、効果的な対策をすでに実施していたからです。つまり Fastly には影響を及ぼしませんでした。
大規模な DDoS 攻撃に対応する際の Fastly の原則と、Rapid Reset 攻撃への防御で役割を果たした実際の機能を以下でご説明します。
DDoS 攻撃への対策に関する Fastly の原則
DDoS 攻撃に対する Fastly のネットワーク保護対策は3つの基本原則で構成されています。
まずは、悪意のあるトラフィックを迅速かつ正確に検知する
対応策は安全に実行できなければならない。誤検知を決して生み出さない
攻撃者に簡単に把握されない保護戦略を構築し、攻撃者たちに返されるシグナルを最小限に抑える
DDoS 攻撃の構造とエコノミー
DDoS 攻撃には基本的に、PPS (Packet Per Second)、ボリューメトリック、RPS (Requests per Seconds) の3種類があります。
PPS 攻撃は、パス上のパケット処理用エンジンに過負荷を生み出そうとします (レイヤー3および4のネットワークレイヤー攻撃)。これはパケット処理用エンジンのパフォーマンスの限界を把握しようとする攻撃ともいえます。攻撃者が使用するネットワーク帯域が少ないため、実行にかかるコストが比較的安価です。一方、「ボリューメトリック」攻撃は、大きなパケットを大量に送信してネットワークを詰まらせ、ネットワークの転送能力を過負荷の状態にしようとします。近年これらの攻撃はあまり一般的ではなくなったものの、実行される場合も依然としてあります。
RPS 攻撃は、Webサイトやアプリケーションに探りを入れ、コンピューティングリソースを多く消費するオブジェクトを特定し、それに対して相当数のリクエストの送信を開始します。複雑な正規表現のリクエストが大量に送信されることで CPU スパイクが発生し、CDN から提供される静的な画像のリクエストより何倍もの負担がインフラにかかります。
DDoS 攻撃者たちは攻撃の増幅要因を常に探しています。つまり、最小限のボットネットリソースを利用して甚大な被害を生み出せる方法であれば、その手段は問わないということです。運用者たちがコンピューティングリソースに料金を払う必要があるのと同様に、攻撃者もボットネットの実行にはお金が必要です。つまりボットネットのノードを大量に有効にするには費用が伴うのです。攻撃者は少ないノード数で大きな効果を得る方法に常に関心を抱いています。例えば、1ノードあたり1秒間に1回の攻撃を送信できる場合、1秒間に100万回の攻撃を送信するのに100万個のノードが必要になります。しかし、より少ないノードで何倍ものリクエストを送信する方法を見つければ、同じ攻撃量をより安い費用で発生させることが可能になります。Rapid Reset 攻撃では、比較的少ない接続とボットネットノードで1秒間に何億ものリクエストを送信できます。
新種の攻撃?
大半のネットワーク攻撃は、「十分に理解されている攻撃」と、「新種の攻撃」の2種類に簡単に分類できます。十分に理解されている攻撃とは通常、これまでに何度も確認されている攻撃を指し、攻撃者が対応策を回避できるより良い方法を模索したり、引き続き攻撃を展開できるよう対応策の新たな弱点を探したりするのに伴い、時間をかけて少しずつ内容が変化していきます。OWASP トップ10</u> はこの種の攻撃の典型例です。基本的に誰もがその攻撃内容を理解していますが、攻撃者は常にその内容を調整して進化させ、これまでにない方法で対応策の隙を狙ってくるので、先手を打つ必要があります。
新種の攻撃とは、前例のないまったく新しいアプローチが採用されていることを意味します。こうした攻撃には新たな対策を講じる必要があり、その準備や実行に時間を要することがあります。そのためこれらの攻撃が発生すると大きな影響を及ぼし、さまざまな被害が生まれかねません。
10月10日に公開された Rapid Reset 攻撃は、これまで悪用されたことがなかった HTTP/2 プロトコルの性質に依存している面から、新種の攻撃とみなされました。
正確なフィンガープリントによる迅速な検出
攻撃に対する効果的な対策には、迅速な検出が不可欠です。DDoS 攻撃は急速に加速した後に一気に収まることが多いため、効果的に保護するには攻撃を正確に検出し、正常なトラフィックと悪質なトラフィックをリアルタイムで判別する必要があります。
攻撃は 0 RPS (1秒当たりのリクエスト数) からわずか数秒後には100万 RPS、あるいは数億 RPS へと急増し、その後1分以内に攻撃が収束することも珍しくありません。2023年7月1日から2023年10月12日の期間に Fastly で確認された攻撃*に関するデータを示す上記のグラフから、以下のことがわかります。
90%の攻撃で持続時間が150秒以下
50%の攻撃で持続時間が52秒未満
攻撃に気づいて対応する準備が整う頃には、攻撃自体が終わっている場合が多いのです。そのタイミングでルールを適用するのは、すでに病気から回復した翌週にワクチンを打つようなものです。ワクチンは次に同じ菌に感染した際に役立つかもしれませんが、最初の病気で受けた影響に対する解決策にはなりません。脅威を自動的に検出して応答する機能を備えた Fastly では、人手を介さずに検出と応答を行い攻撃を軽減することが可能です。
Rapid Reset のような高度な攻撃の場合、悪質なトラフィックを識別するために特性を把握する必要があります。そうでないと、攻撃がオーガニックトラフィックに紛れて誤検知が増え、その結果、顧客の Webサイトやアプリケーションに問題が発生し、インターネットの一部に問題が生じたりするといった、皆さんもよくご存じの悪影響が起こります。
Attribute Unmasking 機能で正確かつ自動のシグネチャ抽出を実現
フィンガープリントはネットワーク上で特定の攻撃を把握し、オーガニックトラフィックと識別する手段です。この最もシンプルな例として、攻撃全体がひとつの IP アドレスから送信されているケースが考えられます。通常、その IP アドレスからのトラフィックはネットワーク上で全く確認できません。しかし、攻撃中に大量のトラフィックをその IP アドレスから受信するのです。フィンガープリント技術により、単にそのデータセンターの IP アドレスを特定してブロックすることができます。これで攻撃を阻止できるのです。この方法の問題点として、攻撃者がトラフィックを他の正当なトラフィックに紛れ込ませるといった高度な技術を使用するようになり、攻撃の識別や区別が次第に困難になることが挙げられます。そしてこれは、攻撃を軽減するために対策チームにより多くの負担 (時間、リソース、コンピューティング、ビジネスへの悪影響など) が強いられることも意味しています。数年前に発生したボットネット「Meris」は、病院や大学といった組織内のさまざまなキャンパスネットワークのインフラを乗っ取り、悪意のあるトラフィックをルーティングすることで、攻撃の出先がこれらの組織であるかのように見せかけました。
こうした正規トラフィックとの混在は状況を複雑にします。攻撃の出自である IP アドレスを把握したとしても、不特定にトラフィックを丸ごとブロックすることは、同時に大量の正規トラフィックをブロックすることにもなり、甚大な被害を引き起こすからです。これはどのような状況でも悪影響を生みますが、特に病院や ISP などの組織の場合は、ネットワークの遮断で起こる深刻な影響は計り知れません。
この問題への対策として、Fastly は「Attribute Unmasking」という技術を採用し、高度な攻撃を受けた際にネットワークトラフィックから正確なフィンガープリントを迅速に抽出します。ネットワークを通過するすべてのリクエストには、レイヤー3やレイヤー4のヘッダー、TLS 情報、レイヤー7の詳細など、トラフィックを特徴づけるのに使用できる数多くの特性があります。AI の概念を採用している Attribute Unmasking システムは、Fastly のネットワーク上のインバウンドリクエストからメタデータを取り込み、攻撃の形状や規模に合致するトラフィックの形状と規模に一致する要素を抽出します。
まずこのシステムは、ネットワーク上における攻撃の曲線との類似性を示すものを発見するまで各属性を検証します。
これによりシステムは検証対象の候補を得たことになります。その後、最初に特定した属性を他の属性と組み合わせ、一連の属性を検証し、攻撃により発生したネットワーク上の余剰トラフィック全体をより正確に再現する攻撃の曲線を構築していきます。段階的により優れた属性セットが特定されるのに伴い、さらにモデルを改善するのに必要な自由度が縮小し、最終的にこれ以上マッチするセットを作れない状況に達すると、攻撃を特定する最適化されたフィンガープリントが出来上がる仕組みです。
計算集約型のプロセスのように聞こえるかもしれませんが、識別やフィンガープリント、保護対策がすべてリアルタイムで行われています。
Fastly の Attribute Unmasking システムは、私たちが今後も投資を継続していく分野のひとつですが、現時点でも素晴らしい成果を上げています。私たちは、これまでの努力の結果によって、他社のネットワークに被害をもたらしている攻撃から Fastly のネットワークを保護できていることを、本当に誇りに思っています。
差別化要因としての高速なフィンガープリント機能
Fastly は一か所に機能を集中させて必然的にボトルネックを抱えるのを避け、エッジで可能な限り多くの処理や決定を行うという原則に基づいてネットワークを構築しています。これは完全にソフトウェア定義型の Fastly ネットワークだからこそ実現できるのです。ルーター などの特定のハードウェアやその他のコンポーネントへの依存から脱却することで、Fastly はサーバー間でより分散された方法で並行して関数を実行できます。Fastly は速度を優先しており、お客様とエンドユーザーのエクスペリエンスに影響を及ぼさずにこのような処理を行うには、エッジで実行する必要があるのです。Fastly では処理や決定の分散化が可能なため、このようにエッジで効果的なソリューションを実装してトラフィックの処理や分析、診断を行い、脅威に対応できる優れた能力と柔軟性が得られます。
迅速にフィンガープリントを取得できても、新種の攻撃に素早く対応し、即座に対応策を実行できなければ意味がありません。Fastly のシステムはモジュール型なので、新種の攻撃が発見されても、それに対処するのに新しいメカニズムを一から開発する必要がなく、検出機能と防御機能を素早く強化することが可能です。Rapid Reset のような攻撃を受けた場合、いくつかの関数を検出とレスポンスのモジュールに追加するだけで、新種の攻撃にも驚くほど短時間で対処できます。
Fastly のお客様は、このイノベーションがもたらす利益を直接体験しているわけですが、重要なのは、対応策がうまく機能しているため、お客様は攻撃がいつ起こっているか気づかないということです。こうした自動化の実現は非常に困難です。それには Fastly だけが採用しているような真に分散型のアーキテクチャや、簡単には集められない人材プールが必要です。しかし、それによって Fastly が提供するサービスの品質に明確な差が生まれるのであれば、それらの構築に取り組む価値があります。
誤検知を減らす安全な対応策
自動化システムには、誤検知が生まれ、正当なトラフィックがブロックされるリスクがつきものです。IT の世界では自動化システムのせいで、あるいは人為的ミスも相まって問題のある状況が生まれ、ネットワーク障害を発生させてきた長い歴史があります。一方であまりに防御が緩いと、本物の攻撃を許してしまうリスクを抱えることになります。この繊細な境界線の間を歩むために、Fastly は基本的に2種類のカテゴリーのセキュリティルールをネットワークに適用しています。そのいくつかは基本的なルールの一部であり、常に有効な状態になっています。私たちはこうしたルールは問題を起こすことなく、常に安全に実行できると考えています。これらのルールはさまざまな検証や通常のコードレビューのプロセスを経ているので、常に安全性が保証されているとみなされるためです。Fastly の Attribute Unmasking 技術に基づくルールは非常に効果がありますが、このようなルールは常に変化し続けるため、誤検出のリスクも高くなります。こうしたルールを「危険シグナル」と照合して、ネットワークが攻撃されている間にのみ適用します。攻撃を受けているタイミングこそ、これらのルールが攻撃の緩和に役立つためです。これによってルールの影響が制限され、攻撃が起こっていない際の誤検知を防ぐことができます。
攻撃に対する防御戦略としての策略
DDoS 攻撃において、情報は力です。攻撃者がネットワークやこれまでの攻撃の試みに関して何かを学ぶと、彼らは次回の攻撃を計画するためにそれを活用します。これは常に進化し続ける猫とネズミのゲームに似ています。攻撃者から情報を隠すと、攻撃方法を変更する必要性や、どのように変化させるべきかを判断するのに、攻撃者はより多くの労力を費やすことになります。プラットフォームの大半は攻撃を検知すると、迅速に応答して攻撃者の接続を切断するか、または別の方法でプラットフォームへのアクセスを拒否します。これにより、攻撃者は自分の攻撃が特定され、同じアプローチを再度試みた場合、より簡単に検出、ブロックされてしまうことに気づきます。
そのため Fastly は攻撃者に送り返される情報 (形式を問わず) を、意図的に最小限に抑えます。その一例として、接続をオープンのままの状態にしたり、攻撃者に自分たちがまだ発見されていないと思わせるような対策を講じたりして、攻撃が計画通りに進行していると見せかける方法があります。第二次世界大戦期にアラン・チューリングとブレッチリー・パークのチームが暗号機「エニグマ」の解読に取り組んだ際、彼らは暗号が解読された旨を非公表とすることの重要性を理解していました。解読の事実を公表してしまうと、敵はより迅速に対応し、優位性を奪い返そうとするからです。
Attribute Unmasking の最近の実例
Attribute Unmasking が自動検出した攻撃の興味深い例を、以下で紹介します。同システムはネットワーク上のトラフィック量の増加を検知し、数秒以内に攻撃の曲線に実質的に一致するシグネチャをコンパイルしました。翌日にこの攻撃の詳細を確認した際にヘッダーの中身を見たところ、User-Agent が以下のように非常に不思議なものになっていました。
User-Agent: 🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡
*攻撃期間のデータは、2023年7月1日から2023年10月12日にかけて発生した Fastly ネットワークへのイングレスリクエストを確認して収集しました。攻撃の開始は予想されるベースラインから30%の増加が検出された際に登録され、トラフィックが予想されるレベルに戻った際に終了したと判断しました。このデータセットからは、既知のオーガニックトラフィックのスパイクと負荷テストを除外しました。