DNSフラッド攻撃への理解と防御
DNSフラッド攻撃を理解し、防御するためのガイド
2023年10月23日
翻訳: 竹洞 陽一郎
この記事は米Catchpoint Systems社のチュートリアル記事 "Understanding and Preventing DNS Flood Attacks"の翻訳です。
Spelldataは、Catchpointの日本代理店です。
この記事は、Catchpoint Systemsの許可を得て、翻訳しています。
2016年10月21日、Amazon、GitHub、PlayStation Network、Twitter、PayPalをはじめとする数百の大手メディアやアプリケーションサービスプロバイダがサービス停止を経験しました。
これらのサービスは、一日を通して問題が続き、数百万ドルの収益損失が発生しました。
これらすべての企業のドメインのDNSプロバイダであったDYNが共通の要素でした。
DYNのDNSサーバは、後にDNSフラッド攻撃として特定されるものにターゲットとされました。
これは、インターネットの中核にあるサービス、すなわちドメイン名システムの脆弱性を露呈させる初の主要な出来事の一つでした。
DNSフラッド攻撃は、DNSサーバを対象とする分散型サービス拒否(DDoS)攻撃です。
この記事では、DNSフラッド攻撃の仕組み、存在するDNSフラッド攻撃の種類、DNSフラッド攻撃の影響、仮想的な攻撃がどのように行われるか、そしてDNSフラッド攻撃を防ぐためのベストプラクティスについて探ります。
この記事では、DNS委任のベストプラクティスを探求し、一般的な困難を避ける方法や、最適なパフォーマンスとセキュリティを確保する方法について詳しく説明します。
大規模なDNSインフラを管理するIT専門家であれば、DNSの仕組みについて興味があるだけであれば、この記事はDNS委任とその利点に関する貴重な洞察を提供します。
始めましょう!
DNSフラッド攻撃のキーコンセプトのまとめ
この記事で取り上げる内容を簡単にまとめました。
DNSフラッド攻撃の仕組み | DNSフラッド攻撃は、DNSの問い合わせとレスポンスを使用したDDoS攻撃です。 |
---|---|
DNSフラッド攻撃の種類 | これには、増幅/リフレクション攻撃や水責め/NXDOMAIN攻撃が含まれます。 |
DNSフラッド攻撃の影響 | 影響には、サービスの中断、応答時間の遅延、評判の損害、金銭的な損失、データの損失が含まれます。 |
DNSフラッド攻撃の作成 | ターゲットの選び方や理論的な観点での攻撃の作成方法について見ていきます。 |
ベストプラクティス | DNSフラッド攻撃を予防し、対処するためのベストプラクティスには、レート制限、ACL、DNSキャッシング、ファイアウォール、モニタリング、分散、定期的な更新が含まれます。 |
DNSフラッド攻撃の仕組み
DoS攻撃(DDoSを含む)を理解する
DNSフラッドの動作を理解するためには、まずサービス拒否(DoS)攻撃とその分散型(DDoS)の起源について議論することが重要です。
サービス拒否攻撃は、起源が一つの地点、つまり一つのIPアドレスからリソースをターゲットにし、それに多数のリクエストを送りつけてサーバが正当な問い合わせに応答できなくすることでリソースをダウンさせようとする攻撃です。
分散型サービス拒否攻撃は、複数の起源(複数のIPアドレス)を持ち、それらが協調してリソースを攻撃します。
通常、これらは悪意ある方法を通じて作成または制御されるデバイスです。
これらの攻撃は、他のデバイスのリソースを圧倒するためのさまざまな種類のリクエストやプロトコルを使用します。
ICMPやUDPパケットは、IPアドレスの偽装を通じてこれらの攻撃に人気があります。
DNSフラッド攻撃:DNSのDDoS
DNSは、ドメイン名をIPアドレスに変換するためのプロトコルであり、これによりユーザはインターネット上のWebサイトや他のリソースにアクセスできます。
DNSフラッド攻撃は、基本的にはDNS問い合わせとレスポンスのトラフィックを使用したDNSインフラを対象としたDDoS攻撃です。
DNSフラッド攻撃では、攻撃者は大量のDNS問い合わせやレスポンスでDNSサーバを圧倒し、それらを遅くさせるかクラッシュさせます。
これにより、Webサイトのダウンタイムやインターネット速度の低下などの障害が発生することがあります。
ボットネットのような不正に侵入されたデバイスのネットワークから、DNSフラッド攻撃が開始されることがあり、これらの攻撃源を追跡して停止するのは困難です。
DNSフラッド攻撃の種類
DNSフラッド攻撃にはいくつかの種類があります。
各攻撃は、その攻撃を実行するために使用される特定の技術に基づいて命名されており、その機能の方法に独特の要素が含まれています。
増幅/リフレクション攻撃
増幅/リフレクション攻撃は、攻撃者がクライアントのIPアドレスを犠牲者のIPアドレスに偽装することから始まります(リフレクション)。
これにより、すべてのDNSの返答が犠牲者に直接送信される結果となります(増幅)。
初期のリクエストは非常に小さく、特定のドメインの利用可能なDNSレコードの完全なリスト、サブドメインを含むものをDNSサーバに返してもらうように求めます。
結果として得られる答えは、リクエストよりも大幅に大きいです。
場合によっては100倍以上も大きくなることがあります。
もし脅威となる者が数台のマシンのみを侵害しており、そのすべてがIPを偽装し、犠牲者にレスポンスを送信している場合、その結果として生じるトラフィックは、リクエストの処理サービスのための犠牲者のリソースを十分に占有するほど多量となります。
いくつかのDNSリゾルバがターゲットとされ、任意のソースIPアドレスを許可する構成を持っている場合、この攻撃ははるかに効果的です。
2013年3月に、アンチスパム組織Spamhausが当時としては史上最大規模のDDoS攻撃の対象となった、という実例があります。
この攻撃は、ピーク時で300ギガビット/秒に達し、インターネットサービスに広範な障害を引き起こし、数日間続きました。
攻撃者は、小さなDNS問い合わせを脆弱なサーバに送信し、それに対してサーバは大きなDNSレスポンスで応じました。
攻撃者は問い合わせの送信元IPアドレスを偽装し、リクエストがSpamhausのサーバから来たように見せました。
DNSレスポンスによって生成された大量のトラフィックは、これらのサーバを圧倒し、クラッシュさせ、正当なトラフィックがサイトに到達するのを困難にしました。
この攻撃は、最終的にクラウドベースのDDoS保護サービスを通じてトラフィックをリダイレクトすることで緩和されました。
このSpamhaus攻撃は、DNS増幅攻撃がインターネットの機能に重大な障害を引き起こす可能性を示しています。
水責め / NXDOMAIN攻撃
この種の攻撃は、有効なドメイン名に対してランダムなサブドメインを持つ大量のDNS問い合わせを送信することに関わります。
これらのリクエストにより、DNSサーバは存在しないサブドメインを繰り返し検索することになります。
存在しないドメインへの返信(NXDOMAIN)はキャッシュオーバーフローエラーを引き起こし、サーバは正当なドメインに対するリクエストを処理することができなくなります。
「水責め」という用語は、この種の攻撃を表すために使用されます。
これは、犠牲者(この場合はDNSサーバ)の額に水滴が絶えず落ちる水責めと類似しているからです。
このような攻撃は突然や爆発的ではなく、むしろ遅くて計画的なプロセスですが、それでも長期的には突然の攻撃と同じくらいダメージを与える可能性があります。
下の図では、攻撃者がexample.comをターゲットにしており、権威あるネームサーバとボットによって使用されるリゾルバにキャッシュオーバーフローを引き起こします。
多数の存在しないexample.comのサブドメイン(abc、def、ghi)に対するリクエストは、リゾルバを通過し、その後ルート、.com、権威あるDNSサーバに移動します。
権威あるネームサーバはNXDOMAINで応答し、リゾルバのキャッシュはオーバーフローを始め、権威あるサーバはリクエストを処理し、NXDOMAINの応答を返そうとしてリソースを失い始めます。
NXDOMAIN攻撃とPassionボットネット
2023年1月31日付けのRadware Cybersecurity Advisoryによれば、Passionと呼ばれるロシアのボットネットが出現したとのことです。
KillnetやAnonymous Russiaといったグループと提携しており、Passionは親ロシアのハクティビストに「DDoS-as-a-service(サービスとしてのDDoS攻撃)」を提供しています。
最近では、ウクライナへの支援を行っていた複数の国の医療機関への攻撃にこのボットネットが使用されました。
Passionグループは、ウクライナ侵攻に反対する個人や組織に対するWebページの改ざんやサービス妨害攻撃で知られています。
Radwareは、2023年1月27日に展開されたサイバー攻撃で、Passionボットネットがアメリカ、ポルトガル、スペイン、ドイツ、ポーランド、フィンランド、ノルウェー、オランダ、およびイギリスの医療機関を標的にしたと警告しています。
これらの攻撃を受けて、Health Sector Cyber Security Coordination(H3C)センターは、医療業界に対してNXDOMAIN攻撃や他のフラッド攻撃に対する警告を含むいくつかのレポートを発表しました。
このH3Cのホワイトペーパーと、NXDOMAIN攻撃で使用された戦術に特に焦点を当てたセクターアラートで、詳細情報を得ることができます。
DNSフラッド攻撃の影響
DNSフラッド攻撃は、対象とされたネットワークおよびそのユーザに多くの重大な負の影響を及ぼす可能性があります。
これには直接的な影響と間接的な影響があり、以下のようなものがあります。
- サービスの中断
-
DNSフラッド攻撃の主な影響は、対象となるネットワークやWebサイトサービスの中断です。
攻撃によって生成される大量のDNSリクエストは、ネットワークのDNSサーバに過負荷をかけ、応答しなくなることで、正当なユーザがサービスにアクセスできなくなります。 - 応答時間の遅延
-
サービスが完全に中断するだけでなく、DNSフラッド攻撃は、対象となるネットワークやWebサイトにアクセスしようとするユーザの応答時間を遅くすることもあります。
DNSサーバへの過度な負荷は、DNS解決プロセスに遅延を生じさせ、ページの読み込み時間などが遅くなるなどの影響が出ます。 - 評判の損傷
- ユーザが必要なサービスにアクセスできない場合、彼らはイライラして代わりのプロバイダを探す可能性があり、これが対象となる組織の評判を傷つける可能性があります。
- 財務的損失
- ユーザがサービスにアクセスできないことで、機能しない電子商取引サイトでの売上が減少する、サブスクリプションがキャンセルされる、返金が要求されるなど、大きな収益の損失が発生する可能性があります。
- 混乱
-
場合によっては、DNSフラッド攻撃は他の悪意のある活動、例えばデータ盗難や対象となるネットワークやWebサイトへの不正アクセスを覆い隠すための煙幕として使用されることがあります。
これにより、重要なデータが漏洩する可能性があり、さらに組織の評判や財務に損害を与える可能性があります。
DNSフラッド攻撃の作成
DNSフラッド攻撃がどのように機能するのかをよりよく理解するために、理論的な用語でDNSフラッド攻撃がどのように作成され、実行されるのかを説明しましょう。
対象がどのように選ばれるか
脅威の主体は、対象の業界、規模、評判、脆弱性など、いくつかの要素に基づいてDNS攻撃の対象を選ぶ可能性があります。
DNS攻撃の対象を選ぶ際に脅威の主体が考慮する一般的な点を理解することで、組織のリスクレベルをよりよく評価するのに役立ちます。
- 業界
-
金融、医療、政府など、一部の業界は、データの機密性や攻撃の潜在的な影響により、DNS攻撃の対象となりやすいです。
たとえば、脅威の主体は顧客の口座情報にアクセスするために銀行のDNSサーバを対象とする可能性があります。 - 規模
-
複雑なITインフラストラクチャを持つ大規模な組織は、攻撃者が悪用するための入り口が多いため、DNS攻撃に対してより脆弱である可能性があります。
一方で、セキュリティリソースが限られている小規模企業も対象とされる可能性があります。 - 評判
- 脅威の主体は、その行動に注目や宣伝を集めるために、大きな公的プロフィールを持つ組織(有名なブランドや政府機関など)を対象とする可能性があります。
- 既知の脆弱性
-
DNSインフラストラクチャに既知の脆弱性がある組織は、攻撃者にとって魅力的な対象となる可能性があります。
脆弱性には、未パッチのソフトウェア、弱いパスワード、または誤設定されたサーバが含まれることがあります。 - 関係性
- 脅威の主体は、パートナーまたはサプライヤーなど、ビジネス関係を持つ他の組織にアクセスするために、ある組織のDNSインフラストラクチャを対象とする可能性があります。
- 身代金を支払う意志
- リーダーシップが身代金を支払う意志があると脅威の主体が感じる場合、その組織が攻撃される可能性が高くなります。
攻撃の作成
簡単にするため、このセクションでは仮想のDNSプロバイダに対して実行される増幅攻撃に焦点を当てます。
攻撃者は、リクエストを送信することで攻撃を実行する追加のコンピューティングリソースを確保する必要があります。
これは次の手順で達成できます。
-
攻撃者は、非常に人気のあるWebサイトに似ている偽のドメイン名(例えば、ƒacebook.com)を作成します。
ここでの「ƒacebook」の「f」文字に注意してください。
これは通常の「f」ではなく、実際にはWindows-1252文字セットからコピーされた関数記号(「ƒ」)です。
この場合、ブラウザで表示されると、ドメインは「www.xn--acebook-w1b.com」として表示されます。
ICANNの国際ドメイン名に関する説明で、これらの種類の難解な記号を使用した場合の変換についてさらに情報が提供されています。 - 攻撃者は、本物のFacebookサイトに似た偽のドメイン用のWebサイトをホストするWebサーバを設定します。
- 攻撃者は、人々が偽のFacebookサイトを訪れようとするように誘うページへのリンクを含むコンテンツを配信します。
-
通常、非常に説得力のあるログインプロンプトが資格情報を求め、ユーザがそれを入力すると、平文でキャプチャされます。
攻撃によって被害を受けたマシンは、今や攻撃者の制御下にある「ボット」となります。
攻撃者は、各デバイスから特定のドメイン(レコードの全リストに応答するため)に対するDNSリクエストを生成し始めます。
この目的にはLinuxベースのドメインルックアップコマンドであるdigコマンドが使えます。
各マシンが発行する各digコマンドが必要な問い合わせを作成します。
各マシンは、ヘッダーでソースIPを偽装して被害者のIPからリクエストを送信しているように見せる必要があります。
計画通りにすべてが進むと、攻撃は成功して、被害者がDNSリクエストを解決する責任を負うリソースのほとんどを消費するはずです。
プロバイダでホストされているサイトは、501エラーを返し始めます。
再度書きますが、これは全て非常に基本的で仮定に過ぎません。
もう一つのオプションは、ブラックリストに登録されたWebサイトから「既製の」攻撃を購入することです。
もちろん、これは非倫理的であり誰も試みるべきではありませんが、この形で攻撃が存在しているため、組織はこれを懸念として認識する必要があります。
DNSフラッド攻撃を防ぐおよび対処するためのベストプラクティス
DNSフラッド攻撃を防ぐには、ネットワークインフラストラクチャとアプリケーションレベルのセキュリティ対策を組み合わせた多層的なアプローチが必要です。
DNSフラッド攻撃を防ぐためのベストプラクティスには以下のようなものがあります。
- レート制限の実施
-
レート制限は、DNSサーバが処理できるDNSリクエストの量を制限する手法です。
リクエストを制限することで、組織はDNSフラッド攻撃のリスクを減らし、正当なリクエストを優先することができます。
DNSリゾルバは、「ANY」ソースを持つDNS問い合わせを制限するよう設定することもできます。
存在しないドメインに対する繰り返しの問い合わせも制限することが可能です。 - アクセス制御リスト(ACLs)の使用
-
ACLsは、DNSサーバへのアクセスを制限し、不正なリクエストがサーバに到達するのを防ぐために使用できます。
特に、サイバー攻撃の起点となる外部国からのトラフィックを防ぐためにACLsを使用するのは一般的です。 - DNSキャッシングの有効化
-
DNSキャッシングによって、DNSサーバが処理する必要のあるリクエストの数を減らすことができます。
頻繁にリクエストされるDNSレコードをキャッシュすることで、組織はDNSサーバへの負荷を減らし、DNSフラッド攻撃のリスクを減らすことができます。
ただし、この機能はNXDOMAINキャッシュオーバーフローを防ぐためにレート制限と併用するべきです。 - DNSトラフィックの監視
-
DNSトラフィックを定期的に監視することで、組織はDNSフラッド攻撃を示す可能性のある異常なパターンやトラフィックの急増を識別できます。
Catchpointのインターネットパフォーマンス監視プラットフォームは、リアルタイムでDNS攻撃に対処するために非常に重要なアラートを含みます。 - DNSサービスの分散
-
DNSサービスには単一の障害点が存在してはならず、冗長性と配置は、あらゆるフラッド攻撃中に運用を維持するための重要な要素です。
少なくとも2つのDNSサーバが稼働しており、それらは異なる地理的な場所(仮想または物理的)に位置しているべきです。 - DNSソフトウェアの最新化
- 最新のセキュリティパッチとアップデートを適用することで、DNSフラッド攻撃で既知の脆弱性が悪用されるのを防ぐことができます。
- DNSSECの使用
- ドメインネームシステムセキュリティ拡張(DNSSEC)は、DNSの応答を認証する機能を提供するセキュリティ強化プロトコルです。
これらのベストプラクティスに従う他にも、組織はDNSフラッド攻撃を迅速に検出し、対応するための包括的なインシデント対応計画を整えるべきです。
この計画には、内部および外部のステークホルダーに通知する手続きや、攻撃の影響を緩和し、サービスを可能な限り早く復旧するための手順が含まれるべきです。
主要な概念の要約
DNSフラッドは、基本的にはDNSサーバを対象としたDDoS攻撃です。
この記事では、これらの攻撃がどのように機能するのか、DNSフラッドのさまざまなタイプについて説明し、その潜在的な影響について議論しました。
このような方法で誰かを対象にするためにボットを獲得するのがどれほど簡単かを理解していただくために、潜在的な攻撃者の視点から攻撃がどのように設定されるかについても文脈を提供しました。
この情報は、これらの危険がどれほど深刻でスケーラブルかを理解するのに役立つはずです。
また、DNSフラッド攻撃を防ぐためのベストプラクティスのリストも提供しました。
それには、レート制限、ACL、キャッシング、監視、分散DNS、定期的なアップデート、およびDNSSECが含まれます。
ベストプラクティスに従い、DNSセキュリティに対して積極的なアプローチを維持することで、DNSフラッド攻撃のリスクを減らし、ネットワークとユーザをサイバー犯罪の影響から保護することができます。
次は?
1. DNS委任
DNS委任のアプリケーションと利点について全て学びましょう。実装のベストプラクティスも含みます。
2. DNSフラッド攻撃
DNSサーバをターゲットにした分散型サービス拒否(DDoS)攻撃であるDNSフラッド攻撃のタイプと影響、そしてそれらからどのように保護するかについて学びましょう。
3. プライベートDNS
プライベートDNSについて全て学びましょう。利点、異なるアーキテクチャタイプ、およびベストプラクティスを含みます。
4. DNSのTTL値
この無料ガイドでは、DNS Time to Live(TTL)値、その重要性、およびさまざまなレコードタイプに対して適切な数字を選択するためのベストプラクティスについて全て学びましょう。
5. マネージドDNS
マネージドDNSの利点と欠点を探り、手動DNS管理と比較してみましょう。
6. DNS攻撃
DNS攻撃がどのように機能し、それらを特定し軽減する方法を学びましょう。これには、DNSポイズニング、トンネリング、フラッド、ハイジャックが含まれます。
7. 遅いDNS
DNSパフォーマンスに影響を与える要因を学び、遅いDNSの状態を診断する方法とDNS速度を最適化するためのベストプラクティスについて学びましょう。
8. DNSハイジャック
DNSハイジャックがどのように発生するかを一例を用いて学び、これらのサイバー攻撃を検出し、修復し、防ぐためのベストプラクティスについて学びましょう。