最も高度なDNSベースのDDoS攻撃から保護するために設計された堅牢な防御メカニズムであるAdvanced DNS Protectionシステムを紹介できることを誇りに思います。このシステムは、トップレベルのセキュリティを提供するように設計されており、進化する脅威に直面してもデジタルインフラストラクチャが回復力を維持できるようにします。
当社の既存のシステムは、DNSに対する「より単純な」DDoS攻撃の検知と軽減には成功していますが、より複雑な攻撃には苦戦しています。Advanced DNS Protectionシステムは、このブログ記事で紹介する新技術を活用して、このギャップを埋めることができます。
現在ベータ版のAdvanced DNS Protectionは、Magic Transitのすべてのお客様は、追加費用なしで利用できます。DNSのDDoS攻撃、新システムの仕組み、そして今後期待される新機能の詳細については、こちらをお読みください。
DNSサーバーの保護、可用性、パフォーマンスを維持するために当社がどのような支援ができるか、関心のある項目を登録してください。
すべてのDDoS攻撃の3分の1がDNSサーバを標的にしています
分散型サービス拒否(DDoS)攻撃は、サイバー攻撃の一種で、Webサイトやその他のオンラインサービスを中断し、ダウンさせることを目的としています。DDoS攻撃が成功し、Webサイトが閉鎖されると、大きな収益損失と評判に損害を与えることにつながります。
2023年のDDoS攻撃タイプの分布
Webサイトを中断し、ダウンさせる一般的な方法の1つは、そのサーバーが処理できる以上のトラフィックを送り込み、サーバーをフラッディングすることです。これはHTTPフラッド攻撃として知られています。これはDDoS攻撃の一種で、大量のHTTPリクエストを使用してWebサイトを_直接_標的にします。当社の最新のDDoSトレンドレポートによると、2023年には、当社のシステムが自動的に520万件のHTTP DDoS攻撃を軽減しました—これは、DDoS攻撃全体の37%を占めていました。
HTTPフラッド攻撃の図
しかし、Webサイトをダウンさせる別の方法があります:それは、Webサイトを_間接的に_標的にすることです。脅威アクターは、Webサイトのサーバーをフラッディングする代わりに、DNSサーバーをフラッディングします。DNSサーバーが容量を超えるクエリで圧倒されると、ホスト名からIPアドレスへの変換に失敗し、DNSサーバーが正当なクエリに応答できなくなるため、Webサイトが間接的に機能停止に陥ります。
顕著な例としては、2016年10月にDNSプロバイダーのDynを標的とした攻撃です。悪名高いMiraiボットネットが着手した壊滅的なDDoS攻撃でした。この攻撃により、Airbnb、Netflix、Amazonなどの主要サイトの中断を引き起こし、サービスの復旧にDynは丸1日かかりました。これは、サービスの中断にとって長い時間でした。評判や収益に重大な影響を与える可能性があります。
7年以上経った今でも、Mirai攻撃やDNS攻撃は非常に一般的です。2023年には、DNS攻撃は、2番目に多い一般的な攻撃タイプでした。—DDoS攻撃(460万件)全体の33%を占めています。Mirai亜種ボットネットによって開始された攻撃は、ネットワーク層DDoS攻撃の5番目に多い一般的なタイプで、ネットワーク層DDoS攻撃全体の3%を占めています。
DNSクエリフラッド攻撃の図
高度なDNSベースのDDoS攻撃とは?
DNSベースのDDoS攻撃は、各クエリに繰り返し発生するパターンがある場合、軽減しやすくなります。これが「攻撃指紋」と呼ばれるものです。指紋ベースの軽減システムは、これらのパターンを識別し、正当なトラフィックに影響を与えずに、攻撃トラフィックを外科手術のように慎重にフィルタリングする軽減ルールをデプロイします。
例えば、攻撃者がターゲットにDNSクエリを大量に送信するシナリオを考えてみましょう。この例では、攻撃者は送信元IPアドレスだけをランダム化しました。他のクエリフィールドはすべて一貫しています。軽減システムは、パターン(送信元ポートが1024で、クエリされたドメインが「example.com
」である)を検出し、それらのクエリをフィルタリングするための短期的な軽減ルールを生成します。
攻撃指紋概念の簡易図
しかし、DNSベースのDDoS攻撃は、はるかに高度でランダム化され、明らかな攻撃パターンがありません。一貫したパターンがない場合、指紋ベースの軽減システムがロックオンするパターンがなくなり、攻撃を軽減することは事実上不可能になります。さらに、高度にランダム化された攻撃で攻撃パターンが検出されたとしても、そのパターンはおそらく一般的なものであるため、正当なユーザートラフィックを誤って軽減したり、攻撃全体を捕捉したりすることはないでしょう。
この例では、攻撃者はDNSクエリフラッド攻撃でクエリされたドメインもランダム化しています。同時に、正当なクライアント(またはサーバー)も「example.com
」をクエリしています。これらにはランダムなポート番号が割り当てられましたが、それはたまたま1024でした。軽減システムは、指紋に一致する攻撃部分のみを捕捉するパターン(ソースポートが1024で、クエリされたドメインが「example.com
」)を検出しました。軽減システムは他のホスト名をクエリした攻撃部分を見逃していました。最後に、軽減システムが誤って、攻撃トラフィックと類似しているように見える正当なトラフィックを検知しました。
ランダム化DNSフラッド攻撃の簡易図
これは、指紋法がランダム化されたDDoS攻撃を阻止する際にどのように失敗する可能性があるのかを示した、非常に単純な一例です。この課題は、攻撃者が信頼される公開DNSリゾルバー(DNSリゾルバーは、再帰DNSサーバーとも呼ばれ、さまざまな他のDNSサーバーからWebサイトのIPアドレスを追跡する責任を負うDNSサーバーの一種です)を介して攻撃トラフィックを「ロンダリング」する場合にさらに深刻化します。これはDNSロンダリング攻撃として知られています。
DNS解決プロセスの図
DNSロンダリング攻撃中、攻撃者が被害者の権威DNSサーバーが管理するドメインのサブドメインを照会します。サブドメインを定義するプレフィックスはランダム化され、複数回使用されることはありません。ランダム化要素により、再帰DNSサーバーはキャッシュされたレスポンスを持つことはなく、被害者となる権威DNSサーバーにクエリを転送する必要があります。権威DNSサーバーは膨大なクエリにさらされることになり、正当なクエリに対応できなくなるか、あるいは完全にクラッシュすることとなります。
DNSロンダリング攻撃の図
高度なDNS DDoS攻撃の複雑さは、その逆説的な性質にあります。つまり、DNS DDoS攻撃は、比較的容易に検出できる一方で、効果的に軽減することは非常に困難であるということです。この難しさは、権威DNSサーバーも正当なリクエストを行うため、再帰DNSサーバーからのクエリを単純にブロックすることができないという事実に起因しています。さらに、権威DNSサーバーは、アクセス可能な状態を維持する必要がある本物のドメインであるため、ターゲットドメインを対象としたクエリをフィルタリングすることができません。
Advanced DNS Protectionシステムによる、高度なDNSベースのDDoS攻撃の軽減
この種の高度なDNSベースのDDoS攻撃の増加により、当社は新たなソリューションを開発する必要に迫られました。—これは、より適切にお客様を保護し、従来の指紋法との間のギャップを埋めるソリューションです。そのソリューションがAdvanced DNS Protectionシステムです。Advanced TCP Protectionシステムと同様に、これは当社が構築したソフトウェア定義のシステムであり、当社のステートフルな軽減プラットフォームである_flowtrackd_(フロー追跡デーモン)が搭載されています。
Advanced DNS Protectionシステムは、当社の既存のDDoS防御システムスイートを補完するものです。当社の他のDDoS防御システムと同様のアプローチを取り、Advanced DNS Protectionシステムも分散型システムであり、そのインスタンスは世界中のすべてのCloudflareサーバーで実行されます。システムが開始されると、各インスタンスは一元的な規制を必要とせずに自律的に攻撃を検出して軽減できます。検知と軽減は瞬時に行われます(ゼロ秒)。各インスタンスは、データセンター内の他のサーバー上の他のインスタンスとも通信します。脅威インテリジェンスを持つ人々が、会話をし、脅威インテリジェンスを共有して、各データセンター内で包括的な軽減を実現します。
Cloudflareダッシュボードのスクリーンショットが、Advanced DNS Protectionシステムによって軽減されたDNSベースのDDoS攻撃を示しています
指紋法に基づくシステム(DDoS攻撃対策マネージドルールセット)とステートフルな軽減システムを組み合わせることで、最も高度でランダム化されたDNSベースのDDoS攻撃に対する強固な多層防御戦略を提供します。また、このシステムはカスタマイズ可能であるため、Cloudflareのお客様はニーズに合わせてカスタマイズできます。設定オプションの詳細については、当社のドキュメントを参照してください。
CloudflareのDDoS攻撃対策システムの図
また、お客様がDNSトラフィックのパターンや攻撃をさらに理解できるように、DNSを中心とした新しいデータポイントを追加しました。これらの新しいデータポイントは、Cloudflareネットワーク分析ダッシュボード内の新しい「DNS保護」タブで利用できます。新しいタブには、どのDNSクエリが受け入れられたか、どのDNSクエリが破棄されたか、そしてクエリされたドメイン名やレコードタイプなどのクエリの特性に関する洞察が提供されます。分析結果は、Cloudflare GraphQL APIを使用したり、Logpushを介してログを独自の監視ダッシュボードにエクスポートしたりすることによっても取得できます。
DNSクエリ:適切なクエリと不適切なクエリの見分け方
高度にランダム化されたDNSベースのDDoS攻撃から保護するには、お客様にとって正当である可能性が高いDNSクエリを適切に判断できるようにする必要がありました。しかし、クエリ名だけを基にして何が正当であるか、そして何が攻撃の一部である可能性が高いかを推測するのは容易ではありません。一見ランダムなクエリ、例えばabc123.example.comのようなクエリが正当な場合があるため、指紋ベースの検出メカニズムだけに頼ることはできません。その逆もまた真なりで、mailserver.example.comのクエリは正当に見えるかもしれませんが、実際にはお客様の実在するサブドメインでない可能性があります。
さらに悪いことに、当社のレイヤー3パケットルーティングベースの軽減サービスであるMagic Transitは、ダイレクトサーバーリターン(DSR)を使用しているため、当社は、DNS配信元サーバーの応答を確認して、最終的にどのクエリが正当であるかについてフィードバックを提供できません。
ダイレクトサーバーリターン(DSR)を使用したMagic Transitの図
当社は、こうした攻撃に対抗する最善の方法は、当社が構築した履歴の記録に基づいて、各お客様の予想されるDNSクエリのデータモデルを構築することだと判断しました。このモデルを使用することで、どのクエリが正当なものかをより高い確信度で判断し、正当でないと思われるクエリを削除して、お客様のDNSサーバーを保護することができます。
このことが、Advanced DNS Protectionの基礎となります。Magic Transitのお客様に送信されるすべてのDNSクエリを検査し、データモデルと各お客様の個別設定に基づいてクエリを受け入れるか破棄するかを決定します。
そのために、当社のグローバルネットワークの各サーバーは、クエリのタイプ(例:Aレコード)やクエリされたドメイン(ただし、クエリの送信元は含まれません)などの特定のDNS関連データを絶えず当社のコアデータセンターに送信しています。ここで、各お客様のDNSクエリトラフィックのプロファイルを定期的に計算しています。これらのプロファイルは当社のグローバルネットワーク全体に分配され、どのクエリが適切であり、どのクエリが不適切かをより確信を持ってかつ正確に判断するために参照されます。お客様の設定に基づく予期せぬDNSクエリに対する許容度を考慮し、不適切なクエリを削除し、適切なクエリを受け入れます。
Advanced DNS Protectionシステム設計時に浮上した技術的課題の解決
このシステムを構築するにあたり、当社はいくつかの具体的な技術的課題に直面しました:
データ処理
当社は、Cloudflareの他のDNS製品スイートを除いて、Magic Transitのお客様の当社のグローバルネットワーク全体で1日あたり数千万件のDNSクエリを処理し、上記のDNS関連データを使用してカスタムのクエリトラフィックプロファイルを構築しています。この種のデータを分析するには、データパイプラインを注意深く処理する必要があります。これらのトラフィックプロファイルを構築する際には、必要なデータの書き込み時と読み込み時にそれぞれサンプルオンライトとアダプティブビットレートテクノロジーを使用して、データインフラストラクチャを保護しながらきめ細かな粒度でデータをキャプチャし、エンドユーザーのプライバシーに影響を与える可能性のある情報を破棄します。
クエリデータのコンパクトな表現
当社のお客様の中には、1日あたりだけで数千万件のDNSクエリを処理するところもあります。このような量のデータを非圧縮形式で保存し、分配するには法外なコストがかかります。この課題を解決するために、当社は各お客様のトラフィックプロファイルに対してカウントブルームフィルターを使用することに決めました。これは確率的なデータ構造であり、各お客様のDNSプロファイルを簡潔に保存、分配し、パケット処理時にお客様のDNSプロファイルを効率的にクエリすることができます。
データ分配
当社は定期的に、データセンター間の各お客様のDNSトラフィックプロファイルをフリート内の各サーバーに対し、再計算し、再分配する必要があります。この作業を大幅に簡素化するために、当社独自のR2ストレージサービスを使用しました。地域ヒントとカスタムドメインを有効にして、キャッシングを有効にし、少数のR2バケットのみを使用しました。エッジフリート全体で顧客データモデルのグローバルビューを更新するたびに、転送されるデータの98%がキャッシュから提供されます。
組み込み許容値
新しいドメイン名がサービスに投入されても、これらの名前のクエリはこれまで見たことがないため、データモデルはすぐには認識しません。このような潜在的な誤検知の理由から、システムには一定の許容度を持たせて、潜在的に正当なクエリを通す必要があります。それを実現するために、トークンバケットアルゴリズムを活用しています。お客様は、Advanced DNS Protectionシステムの感度レベルを変更することで、トークンバケットのサイズを設定できます。感度が低いほど、トークンバケットは大きくなります—その逆も同様です。トークンバケットが大きいほど、予期しないDNSクエリやプロファイルから逸脱したDNSクエリに対する許容度が高まります。高感度レベルは、トークンバケットを小さくし、アプローチを厳しくします。
Cloudflareのグローバルなソフトウェア定義ネットワークの活用
結局は、Cloudflareが解決に優れているのは、このようなタイプの課題なのです。お客様のトラフィックを処理し、インターネットプロパティの保護、可用性、パフォーマンスを確保することで、当社はお客様から信頼を得ています。当社はその信頼を非常に大切にしています。
Advanced DNS Protectionシステムは、当社のグローバルインフラストラクチャとデータ処理機能を、インテリジェントなアルゴリズムとデータ構造とともに活用して、お客様を保護します。
まだCloudflareをご利用でないお客様は、DNSサーバーの保護をご希望であればお知らせください。既存のCloudflareのお客様は、アカウントチームまたはCloudflareのサポートにご連絡いただくことで、新しいシステムを有効にすることができます。