A deep-dive into Cloudflare’s autonomous edge DDoS protection

本日は、自律的なDDoS(分散サービス妨害)攻撃対策システムをみなさまにご紹介いたします。このシステムは、Cloudflareの200を超えるデータセンターでデプロイされており、人の介入を必要とせず、(OSI 参照モデルの)レイヤー3からレイヤー7を狙うDDoS攻撃からすべてのお客様を保護しています。当社はDDoS攻撃対策を定額制にする取り組みを行っており、DDoS攻撃を受けた際もお客様から追加料金をいただくことはありません。

エッジを自律的に保護

お客様をDDoS攻撃から迅速かつ正確に保護するため、エッジで自律的な検出と軽減システムを構築し、コンセンサスを集約するのではなく、エッジ独自で意思決定を行えるようにしました。これは完全にソフトウェア定義であり、コモディティサーバー上にあるCloudflareのエッジで実行されます。当システムでは、元々2019年半ばにL3/L4 DDoS攻撃から保護するために使用されはじめたサービス拒否デーモン(dosd)を活用しています。それ以来、当社では攻撃者の先を行くため、そして攻撃者の活動を阻止するために、同機能を強化し向上させるための投資を継続的に行ってきました。最新版の改善では、L3/4に加えて、L7攻撃対策にもエッジ軽減コンポーネントを拡大させています。

このシステムは、エッジにある全データセンターの全サーバーで稼働しています。パケットとHTTPリクエストを常に分析し、DDoS攻撃がないかスキャンしています。攻撃を検出すると、軽減ルールとリアルタイムで生成された証明書が、Linaxスタック内で最もコスト効率よく軽減策が適用される場所に向かってプッシュされます。

A conceptual diagram of Cloudflare DDoS mitigation systems
Cloudflare DDoS軽減システムの概念図‌‌

Cloudflareのエッジ検出機能は、当社のネットワークコアにある、既存のグローバル脅威検出メカニズムである、Gatebotを補完するものです。Gatebotを使用するネットワークコアでの攻撃の検出は、Cloudflareエッジ全体にわたる調整を必要とする大規模な分散型の帯域幅消費型攻撃には最適です。しかし、小規模でローカライズされた攻撃では、異なるアプローチが必要になります。ネットワーク層とHTTP攻撃をエッジで検出するということは、より高速にサンプリングを行い、小規模攻撃と大規模攻撃の両方を検出し、すぐに軽減ルールが生成できることを意味します。この数か月、すべてのL3/4 DDoS攻撃の98.6%が、dosd機能で検出されています。同様に、dosdの拡張バージョンをデプロイして以来、すべてのL7攻撃の81%が軽減されています。

以前のブログで、Gatebotflowtrackdをご紹介しました。このブログでは、拡張されたdosd機能に焦点を当てたいと思います。

Linuxネットワークを利用してパケットとリクエストをワイヤースピードでドロップ

10年前、Linuxネットワークのスピードは遅いものでした。今は、Linuxのおかげで(具体的には、LinuxのiptablesとeXpress Data Path:XDP)ワイヤースピードでパケットがドロップできています。

パケットの寿命

Cloudflareで保護されているお客様が送信先となっているパケットは、直近のCloudflareデータセンターに向かうときBGPエニーキャストを使います。データセンターに到着すると、ルーターからネットワークスイッチを介して、等価コストマルチパスルーティンググループ(ECMP)アルゴリズムを使うサーバーに渡されます。サーバーに到着すると、パケットは、eXpress Data Path(XDP)のグループに送られます。XDOプログラムの最初のグループ、L4Dropが、前回検出された攻撃から軽減ルールを適用し、今後の分析のために、パケットサンプルをdosdに送信します。

パケットが悪意のあるものとしてドロップされなかった場合、パケットはUnimogに渡されます。これは当社独自のL4 ロードバランサーです。Unimogは、サーバーの正常性とパフォーマンス指標を使用して、パケットを同じサーバに保存するか、より良い処理が行えるデータセンター内の別のサーバーに渡して処理するかを決定します。Unimogの後、パケットは、iptablesファイアウォールを通過し、その後、L7アプリケーション(例えば、Cloudflare WAFによって保護されたサービス)をターゲットとする場合、当社のHTTPリバースプロキシに渡されます。リバースプロキシはユーザースペースで実行され、その中でパケットは HTTP リクエストになり、Webアプリケーションファイアウォールを通過し、アプリケーションファイアウォールルール、および追加のカスタマー設定がこれに適用されます。パケットが TCP/UDP アプリケーション(Spectrum)、またはプロキシではなくルーティングされた(Magic Transit)IPの宛先に向けて送信された場合は、当社のHTTPプロキシではなくそれらのシステムを通過します。

Life of a packet
パケットの寿命

L4Dropに加えて、当社のHTTPプロキシは、HTTPリクエストのサンプルとメタデータもdosdに送信します。このエッジサンプリングは、コアサンプリングの10倍の速度で行われます。これは、コアデータセンターに送られるのではなく、ローカルで信号を分析(および処理)することができるためです。同様に、パケットは、Gatebotの81倍の速度でdosdによってサンプリングされます。

dosd、gatebot、flowtrackdは共に受信したサンプルを分析し、DDoS攻撃が検出されたときに軽減ルールを適用します。HTTP攻撃を軽減するために、これらは軽減ルールをWebプロキシにプッシュします。攻撃リクエストは、システムの判断に応じて、ブロック、レート制限、またはチャレンジアクションを使って処理されます。ただし、攻撃の規模が非常に大きい場合は、よりコスト効率のよい軽減を行うため、軽減ルールは下位層のiptablesファイアウォールまでプッシュダウンされ、L7攻撃はIP Jailを使ってL4でドロップされます。同様に、L3/4攻撃は、iptablesファイアウォールで、L4Dropの内部にある拡張されたBerkeley Packet Filter (eBPF)プログラムを使って軽減されます。これらのコンポーネントを活用することで、大規模なDDoS攻撃を自動的に軽減できます。

攻撃活動を途絶させる

Cloudflareの拡張された自律システムは、前述のとおり、既存の脅威軽減コンポーネントとともに、非常に簡単に、そして安価に仕掛けられるようになったDDoS攻撃からお客様を保護するために開発されました。これらの攻撃は、Webサイト、モバイルアプリ、ゲームの停止や、インターネットに接続されたプロパティの削除を目的とする悪意のあるアクターによって仕掛けられます。当社のDDoSトレンドレポートに記載されているように、過去1年間でこの攻撃数が増加したため、保護を拡大することが必要でした。さらに、攻撃はますます大きく、そして高度化しており、この種の攻撃としてアコースティックビートを模した攻撃も、出現しています。しかし、小さい攻撃であっても、小規模のWebプロパティを削除する可能性があります。つまり、攻撃の規模が大きくても小さくてもすべてブロックすることが重要なのです。

DDoS攻撃に関しては多くの場合、攻撃者が公に利用可能なツールを使用すれば無料で、またはダークウェブのMootbotなどのDDoS-as-a-service (サービスとしてのDDoS) ボットネットを使えば安価で攻撃を開始することができます。2020年のダークウェブ価格指数によると、DDoS攻撃の料金は、1時間の攻撃が、1 秒あたり1万~5万件のリクエストの割合で10ドルからとなっています。攻撃は、攻撃によって引き起こされるダメージよりも攻撃を仕掛ける方がはるかに割安です。システム障害や、サービスを低下させるだけでも、攻撃者は被害者にかなりの損害を与えることができます。たとえば、eコマースのWebサイトを停止すれば、ユーザーがログインして購入できないようになります。遅延が増加するだけで、ユーザーはショッピングカートを放棄して競合他社に飛び移る可能性があります。1分間のダウンタイムが、何万ドルもの損失になるのです。

頻度、技巧、規模が高まるDDoS攻撃には、迅速で正確な、高精度の新しいアプローチが必要です。これが、当社がこの記事で紹介した保護を拡大するシステムを開発した理由です。

より良いインターネットの構築を支援

Cloudflareのミッションは、安全で、より速く、すべての人にとってより信頼性の高いインターネットを構築することです。DDoSチームのビジョンは、このミッションに由来しています。そして、我々の目標は、DDoS攻撃の影響を過去のものにすることです。90年代と2000年代にスパムメールが深刻な問題になりました。今日ではメールサービスがスパムをフィルタリングしてくれます。CloudflareはDDoS攻撃についても同じことを目指しています。

CloudflareのDDoS攻撃対策に関する詳細につきましては、こちらにお問い合わせください。また、CloudflareのFreeプランをお試しになりたい場合は、 こちらのサイトからお申し込みいただけます。