DNS攻撃:チュートリアルと予防のベストプラクティス
DNSは重要なインフラであり、同時に非常に価値の高い攻撃対象でもあります。キャッシュポイズニング、トンネリング、フラッド攻撃、ハイジャック攻撃はそれぞれ異なる脆弱性を悪用します。ここでは、それぞれの攻撃の仕組みと防御策について解説します。
デントン千倉

クイックダウンロード:
DNS攻撃は、プロトコルのオープンな信頼モデルを悪用して、通信を傍受したり、データを盗んだり、サービスを停止させたりします。DNSはあらゆるインターネット通信の基盤となっているため、攻撃が成功すると、一度にすべてに影響が及ぶ可能性があります。
-
DNSキャッシュポイズニングは、偽のレコードでリゾルバキャッシュを破損させ、権威DNSサーバーに影響を与えることなく、ユーザーを攻撃者が制御するリソースに密かにリダイレクトします。
-
DNSトンネリングは、DNSクエリと応答トラフィックの中にDNS以外のデータを隠蔽することで、攻撃者にDNSを自由に通過させるファイアウォールを介してデータを抜き取ったり、ボットネットを操作したりするための秘密の経路を提供する。
-
DNSフラッドはDNSサーバーに対するDDoS攻撃であり、DNSハイジャックは権威DNSサーバーを直接侵害する攻撃です。どちらも、影響を受けるインフラストラクチャを利用するすべてのユーザーのサービスを停止させる可能性があります。
-
効果的なDNSセキュリティには、レコード検証のためのDNSSEC、フラッド攻撃対策のためのレート制限、異常検知のための監視、そしてDNS構成の定期的なセキュリティ監査といった、複数のレイヤーが必要です。
DNSはまさにインターネットの縁の下の力持ちです。DNSがなければ、私たちはIPアドレスの羅列の中で途方に暮れてしまうでしょう。そして、ネットワークに何か問題が起きたとき、まず最初に疑うのはどこでしょうか?そう、DNSです。
つまり、DNSがそれほど重要なのであれば、なぜ誰もそのセキュリティについて議論しないのでしょうか?
DNS攻撃とは、DNSの脆弱性を悪用し、データの窃盗や内部・外部リソースへの障害を引き起こすことを目的とした悪質な攻撃です。DNS攻撃の重要なカテゴリには、DNSポイズニング、DNSトンネリング、DNSフラッド、DNSハイジャックなどがあります。
この記事では、DNSシステムが危険にさらされる可能性のある一般的な方法、システムを保護する方法、そしてDNSを攻撃から守りながら問題を特定して軽減する方法について解説します。
DNS攻撃の概要
以下は、最も重要なDNS攻撃の概要です。
| DNSキャッシュ汚染 | DNSキャッシュポイズニングとは、攻撃者がDNSサーバーのキャッシュに保存されているレコードを改ざんすることに成功した場合に発生する攻撃です。 |
| DNSトンネリング | DNSトンネリングとは、DNSトラフィックにデータを隠蔽することで、不正なマシンからネットワーク外へデータを移動させる行為のことである。 |
| DNSフラッド | DNSフラッド攻撃では、攻撃者は感染したホストやボットを利用してDNSサーバーをダウンさせる。 |
| DNSハイジャック | DNSハイジャックとは、権威サーバーが侵害され、攻撃者がパブリックAレコードを変更する権限を取得することを指します。 |
DNS攻撃の影響
DNS攻撃は企業構造全体に影響を与え、通常はすべてのユーザーとリソースとは言わないまでも、ほとんどのユーザーとリソースに影響を及ぼします。下の図は、調査対象となった1,080社が報告した影響の範囲を示しています。 IDC 2022年グローバルDNS脅威レポートDNS攻撃は、企業の機密データだけでなく、顧客、従業員、第三者ベンダーに関する情報も漏洩させる可能性があります。DNS攻撃は、文字通り企業を内部から崩壊させる恐れがあります。

DNS攻撃の種類
DNS攻撃には様々な形態があり、通常はDNSだけでなく他のサービスも標的とする複合攻撃として行われます。以下に、一般的な攻撃とその代表的な例をいくつか示します。
DNSキャッシュ汚染
DNSキャッシュポイズニングは、攻撃者がDNSサーバーのキャッシュに保存されているレコードを改ざんすることに成功した場合に発生します。これは、中間者攻撃(MITM攻撃)、別のDNSサーバーに見せかけるためのIPアドレスの偽装、DNSサーバー内部のレコードの直接操作など、さまざまな方法で実行できます。下の図は、このような攻撃のフレームワークを示しています。

これは、考えられる内部DNS攻撃の一例です。まず、攻撃者(TA)は中間者攻撃(MITM)を開始します。これは、TAが所有または制御するデバイスを、ネットワーク上で通信中の2つのデバイスの間に配置することによって行われます。次に、TAは、DNS/DHCP/デフォルトゲートウェイルーターまたはサーバーに属するMACアドレスを探しているデバイスのARPキャッシュを汚染しようとします。TAのデバイスは、ルーター/サーバーになりすまして自身のMACアドレスでARP要求に応答し、DHCP要求の処理を開始します。DHCP要求の中には、TAのDNSサーバーのIPアドレスが含まれています。このサーバーは、偽造されたDNSレコードの配布を開始します。
DNSトンネリング
上記の例では、攻撃者はDNSを汚染することに成功していますが、これをどのように悪用できるのでしょうか?
攻撃者は、インターネット上のどこかに所有するWebサーバーを用意します。意図したターゲットIPアドレスからのトラフィックは、不正なDNSサーバーを介して攻撃者のWebサーバーIPアドレスにリダイレクトされ、ホストにマルウェアがインストールされます。マルウェアがインストールされると、不正なホストからデータを抽出できます。このように、DNSトラフィックにデータを隠蔽することで、不正なマシンからネットワーク外へデータを移動させる手法は、DNSトンネリングと呼ばれます。トンネリングの潜在的な問題点の1つは、ほとんどの企業や中小企業の環境にファイアウォールが設置されていることです。しかし、攻撃者にとって幸いなことに、これらのファイアウォールは通常、DNSクエリを検査しません。DNSクエリの検査は、各デバイスが多数のクエリを高速に実行するため、処理パフォーマンスを低下させる可能性があります。(ディープパケットインスペクションの影響については、こちらをご覧ください。) こちらこの知識を武器に、攻撃者はDNSクエリの中にデータペイロードを隠し始めます。クエリはファイアウォールを通過して攻撃者のWebサーバーに到達し、盗まれたデータを配信します。以下に、この仕組みを簡略化した図を示します。

2017年には、 Unit42 OilRigという脅威グループによる一連のDNSトンネリング攻撃が確認されました。これらの攻撃のほとんどは、中東の金融機関や政府機関を標的としていました。これらの攻撃は、標的ネットワーク上のホストを感染させることを目的としたフィッシング詐欺から始まりました。「互換性のないワークシート」を含むExcel文書が電子メールで標的に送信され、標的はコンテンツを有効にするよう求められ、その後、マクロがバックグラウンドで実行されました。このマクロはワークシートを連結して.HTAファイルを作成し、mshta.exe(HTMLファイルを実行するプログラム)でバックグラウンドで実行され、バックドア型トロイの木馬をインストールします。
トロイの木馬がデータをキャプチャすると、キャッシュされた応答を回避するために、さまざまなサブドメインからのランダムな値で作成された DNS クエリに応答し、特定の IP アドレスで表される開始/停止区切り文字を含む応答を作成します。これにより、ペイロードは完全に偽装され、ファイアウォールで検出されることはありません。攻撃の他のバリエーションでは、DNS クエリを使用して Mimikatz ツール (パスワード抽出および暗号化ソフトウェア) を、ホスト上でトロイの木馬によって再構成されることを目的としたデータ断片として送信することが示されました。これは大きなファイルであり、データを送信するには多数の DNS クエリが必要となるため、検出されやすくなります。
DNSフラッド
次に紹介する攻撃は、DNSクエリを利用した分散型サービス拒否(DDoS)攻撃です。DDoS攻撃は、大量のパケットを送り込むことでリソースをダウンさせることを目的としています。一方、DNSフラッド攻撃では、攻撃者は感染したホストやボットを使ってDNSサーバーをダウンさせます。詳細については、DNSフラッドに関する詳細な記事をご覧ください。
DNSフラッド攻撃には様々な種類がありますが、ここではDNSクエリフラッド、DNSリフレクティブ攻撃、DNSウォータートーチャーの3種類に焦点を当てて説明します。以下に、その全体像を示す簡単な図を示します。

DNSクエリの洪水
DNSクエリフラッド攻撃では、攻撃者は複数のボットを使用して、偽装した送信元IPアドレスで大量のDNSクエリを送信します。
DNSリフレクティブ攻撃
DNSリフレクティブ攻撃は、クエリフラッド攻撃よりもはるかに攻撃的で、追跡も困難です。この攻撃手法では、標的となるIPアドレスが指定され、特定のDNSサーバーへの集中攻撃を避けるため、複数の異なるDNSサーバーにリクエストが送信されます。
DNS水責め攻撃
DNSウォータートーチャー攻撃は、権威DNSサーバーをダウンさせることを目的としています。多くのボットは、何千もの非常に小さなサブドメインクエリを、まるで何千もの小さな水滴のように送信します(そのため、「スロードリップ」または「ウォータートーチャー」という名前が付けられています)。
DNSハイジャック
DNSハイジャックは、権威サーバーが侵害され、攻撃者がパブリックAレコードを変更できるようになったときに発生します。その結果、ウェブサイトにアクセスしようとするエンドポイントやDNSリゾルバは、攻撃者が選択した改ざんされたAレコードにリダイレクトされます。以下の例では、偽造されたBGPアドバタイズメントを使用してAmazonのDNSサーバーがハイジャックされた方法について説明します(攻撃の詳細は後述)。 こちら).
2018年、脅威アクターはmyetherwallet.comに対してDNSハイジャック攻撃を仕掛けました。脅威アクターは、AWS DNSサービスであるRoute 53の権威DNSサーバーに属する205.251.199.0/23のBGPルートをアドバタイズし始めました。Cloudflareを含む複数のDNSサーバーがこれらのルートを受け入れました。その後、脅威アクターはリダイレクトを開始しました。 www.myetherwallet.com この攻撃は、トップレベルドメインの公開Aレコードを介して悪意のあるウェブサイトに誘導するものでした。詳しく調べたところ、表示されていたTLS証明書は自己署名証明書でしたが、ユーザーがウェブサイトへのアクセスを継続した場合、攻撃者は送信されたすべての情報を傍受することができました。この攻撃により、約2時間で16万ドル相当のイーサリアム仮想通貨が盗まれました。
攻撃の特定
多くの場合、これらの攻撃は非常に巧妙であるため、長期間にわたって検知されないままとなる可能性があります。DNS攻撃の兆候を探す際には、エンドユーザーや組織内の各部門から寄せられる報告に細心の注意を払うことが重要です。主要なイントラネットサイトや外部ウェブサイトで、「サイトがおかしい」または「完全にダウンしている」といった問題が多発している場合は、これらの報告を真剣に受け止める必要があります。
こうした攻撃のもう一つの有力な兆候は、ネットワーク上でIPアドレスが重複しているという報告です。これは、不正なDHCPサーバーが要求を処理している可能性を示唆しています。特定のマシンやDNSサーバー自体の帯域幅消費量の増加も、攻撃の兆候として有効です。
次の例を考えてみましょう。DaveはDavesCompany.comのウェブサイト管理者で、ウェブサイトの動作が非常に遅いという報告や、ウェブサイトが完全にダウンしているという報告を複数受け取り始めました。Daveはローカルブラウザからウェブサイトをテストして調査を開始し、以下に示す出力を受け取りました。

次に、デイブはローカルワークステーションのpingユーティリティを使用して、下の画像に示すようにWebサーバーへの接続をテストします。pingリクエストの遅延が大きいことから、デイブはDDoS攻撃の可能性を疑います。

デイブは今、厳戒態勢にある。彼はすぐにdavescompany.comの権威サーバーに関連付けられたファイアウォールのログを確認する。その結果、特定のIPサブネットからのDNSクエリが多数発生していることがわかった。これらの兆候は、davescompany.comのレコードを保持しているDNSサーバーがDNSフラッド攻撃を受けていることを示唆している。デイブは、次のセクションで説明するように、この問題に対処する必要がある。

DNS攻撃の軽減と防止
DNS攻撃の深刻度は様々であり、攻撃の種類に応じて適切な対策を講じる必要があります。以下に、上記で説明した様々な攻撃タイプに対する個別の攻撃軽減策と予防策をいくつか示します。
DNSキャッシュ汚染
被害を軽減するための最善策は、攻撃元を特定することです。場合によっては、攻撃元は社内ネットワーク上のノードとなるため、不正なデバイスを見つける必要があります。ネットワークスキャナを使用して、標準的な展開構成に合致しないメーカー、モデル、またはMACアドレスを持つデバイスを検出してください。また、制御ソフトウェア上で切断されているマシンや、本来オフラインであるべきではないデバイスがネットワーク上に存在しないかどうかも確認してください。
不正デバイスが特定され、ネットワークから排除されたら、ネットワーク上のすべてのデバイスの DNS をフラッシュする必要があります。Windows では、次のコマンドで実行できます。 でipconfig / flushdnsとしかし、昔ながらの徹底的な再起動こそが、多くの場合最善のアプローチである。
DNSSECはDNSキャッシュポイズニングをさらに防止する優れた方法です。なぜなら、DNSはデフォルトでは認証の形式を一切持たないからです(RFC 4033 DNSSECはDNSセキュリティの標準規格です。DNSSECは、デジタル署名と公開鍵暗号を使用してDNSデータを検証します。送信されるデータが秘密鍵で暗号化されていない場合、公開鍵では情報を解読できず、コンテンツを破棄します。これにより、デバイスが不正なレコードによってリダイレクトされるのを防ぎます。
DNSトンネリング
これは、より深刻なタイプのDNS攻撃です。何らかのマルウェアが関与している可能性が高く、かなり詳細なログ分析が必要になります。
ログをフィルタリングする際は、複雑なドメイン名を含むDNSクエリや、疑わしいと思われるものを探してください。これらのドメインとの間で大量のリクエストとレスポンスが発生している可能性が高いです。特定の日における最近のDNSリクエスト量を過去のDNSリクエスト量と比較すると、攻撃が開始された時点とその後の期間で、リクエスト量がはるかに増加していることがわかります。
いつものように、ネットワーク上のすべてのデバイスでマルウェアスキャンツールを実行してください。まずは、DNSリクエストが最も多いマシンから実行を開始してください。また、メールログを確認し、発生しているリクエストに関連する特定のドメインからのスパムメールの増加がないか調べてください。これはおそらくフィッシング詐欺が原因であると考えられます。
DNSフラッド
DNSフラッド攻撃は、他の攻撃に比べて最も対策が容易で、リソースの回復もはるかに迅速です。攻撃を阻止するには、サーバーにフラッド攻撃を仕掛けているIPアドレスをブラックリストに登録することが必須であり、場合によってはサブネット全体をブラックリストに登録する必要があるかもしれません。次世代ファイアウォールやクラウドファイアウォールは、侵入検知・防御機能に加え、フィルタリング機能も提供すべきです。
レート制限を設定することで、1秒あたりに送信できるクエリ数を制限し、サーバーのリソース枯渇を防ぐことができます。ほとんどのサードパーティ製DNSおよびセキュリティプロバイダーは、DDoS攻撃の自動検知および防御機能を提供しています。DNSサーバーは常に冗長性を持つべきです。自律システム内にDNSサーバーを1台しか設定しないのは大きな間違いです。
DNSハイジャック
DNSハイジャックは、第三者による監視システムなしでは検出が非常に困難です。BGPプロトコルは依然として広く普及しており、本質的にセキュリティが脆弱であるため、他社が自社のルートを自社のルートとして宣伝することを防ぐのは非常に難しいのです。
リソース公開鍵基盤(RPKI)は、BGPでアドバタイズされるルートの身元を確認するために利用できる安全対策の一例です。
BGPSEC(RFC 8205)は、BGP ルートのセキュリティを強化するためのもう 1 つの重要な追加機能です。標準の BGP では、ネイバーの AS 番号が AS_PATH パラメータの先頭に追加されますが、セキュア BGP では、AS_PATH の上に暗号署名も追加されます。
インターネット協会(ISOC)は、標準化イニシアチブとして マンズ これは、ルーティングプロトコルにおける一般的なセキュリティ問題に対する必要な修正を提供するものです。これらの標準規格への参加と採用は、ネットワークのセキュリティを大幅に向上させるため、強く推奨されるベストプラクティスです。
エッジルーティング機器のファームウェアを常に最新のパッチで更新しておくことは非常に重要です。VPNソリューションを利用するだけでも、ローカルDNS設定の乗っ取りやエンドユーザーデバイスのリダイレクトを防ぐことができます。従業員とエンドユーザーへのトレーニングは、このような攻撃を防ぐ上で大きな効果を発揮します。
たとえDNSが乗っ取られたとしても、結果として表示されるウェブサイトは非常に粗雑な偽装しか施されていない。基本的な知識があれば、誰でもその兆候を見抜き、偽のリダイレクトサイトからすぐに離れることができるはずだ。
DNSセキュリティのベストプラクティス
まとめとして、DNSベースの攻撃を防ぐためのベストプラクティスに関する推奨事項を以下に示します。
- すべての DNS サーバーで DNSSEC を有効にする (注意: IPv6には特別な考慮事項が適用されます).
- DNSクエリにはレート制限を使用してください。
- ファイアウォールを導入し、ファイアウォール定義を常に最新の状態に保ってください。
- 冗長なDNSサーバーを作成および/または利用する。
- 公開DNSサーバーを保護するために、サードパーティ製ソフトウェアを利用してください。
- AS内で公開される経路のセキュリティを強化するために、RPKIインフラストラクチャを導入してください。
結論
DNSは今日のインターネットに不可欠な要素ですが、残念ながらセキュリティを考慮して設計されたものではないため、セキュリティ対策が困難な攻撃対象となっています。DNSはキャッシュポイズニングによって悪用され、トンネリングを介してマルウェアがホストに侵入する可能性があります。攻撃が集中すればウェブサイトが完全にダウンしたり、最悪の場合、公開DNSレコードが乗っ取られたりする恐れもあります。
推奨されるベストプラクティスに細心の注意を払い、監視とログに関しては常に万全の体制を維持してください。利用可能な豊富なサードパーティ製オプションを活用し、DNSデータを維持するための適切な対策を講じることで、既に山積みのIT業務から潜在的な大惨事を一つ減らすことができます。
章
ニュースレター
最新情報のメール配信を登録
最新のブログ、ホワイトペーパー、電子ガイドなどを直接受信ボックスにお届けします。
シェア
DNSの脅威がサービスを停止させる前に阻止しましょう
LogicMonitorのネットワーク監視機能は、DNSの異常、不正なレコード変更、トラフィックの急増に関するリアルタイムのアラートを提供するため、攻撃によってサービス停止が発生する前に対応できます。
よくあるご質問
最も一般的なDNS攻撃の種類は何ですか?
DNS攻撃の最も重要な4つのカテゴリは、DNSキャッシュポイズニング(偽のレコードでリゾルバキャッシュを改ざんする)、DNSトンネリング(DNSトラフィック内に悪意のあるデータを隠す)、DNSフラッド攻撃(DNSサーバーに対するDDoS攻撃)、およびDNSハイジャック(権威DNSサーバーを侵害して送信元でトラフィックをリダイレクトする)です。それぞれがDNSプロトコルの異なる側面を悪用します。
DNSキャッシュポイズニングはどのように機能するのですか?
DNSキャッシュポイズニング攻撃では、攻撃者は不正なDNSレコードをリゾルバのキャッシュに注入しようとします。攻撃が成功すると、そのリゾルバに問い合わせた正規ユーザーは、権威DNSに変更を加えることなく、また何らかの異常が発生したことを示す目に見える兆候もなく、攻撃者が制御するIPアドレス(多くの場合、フィッシングサイトやマルウェア配信サーバー)にリダイレクトされます。
DNSトンネリングとは何ですか?また、なぜ検出が難しいのですか?
DNSトンネリングは、DNSクエリおよびレスポンスフィールド内に、DNS以外のデータ(コマンド、外部送信データなど)をエンコードします。DNSトラフィックはファイアウォールでブロックされることはほとんどなく、詳細なログも記録されないことが多いため、攻撃者にとって従来のセキュリティ対策を回避できる隠れた経路となります。効果的な検出には、異常に長いドメイン名や単一ドメインへの高いクエリレートなど、異常なDNSクエリパターンを識別するトラフィック分析ツールが必要です。
DNSSECはDNS攻撃から保護するためにどのように役立つのでしょうか?
DNSSECはDNSレコードに暗号署名を追加することで、リゾルバが応答が正当であり、転送中に改ざんされていないことを検証できるようにします。これにより、キャッシュポイズニングやDNS応答に対する中間者攻撃を直接的に防止できます。ただし、DNSSECはすべての攻撃タイプから保護するわけではありません。DNSフラッド攻撃やトンネリング攻撃には、別途対策が必要です。
デントン・チクラは、テクニカルライターであり、長年にわたりオブザーバビリティを推進してきた人物です。彼は、サイト信頼性エンジニアやエンジニアリングチームがインターネットの回復力を強化するツールや機能を発見できるよう支援することに注力しています。監視、パフォーマンス、インフラストラクチャの交差点で活動し、複雑なシステムをより理解しやすく使いやすいものにすることで、高度な技術的詳細と実際の運用とのギャップを埋めています。彼の目標は、チームがより迅速に構築し、問題を早期に発見し、よりスマートに復旧できるよう支援し、最終的にはインターネットをすべての人にとってより良く、より信頼性の高い場所にすることです。
免責事項: このブログで述べられている見解は著者の見解であり、LogicMonitor またはその関連会社の見解を必ずしも反映するものではありません。
© LogicMonitor 2026 | 無断複写・転載を禁じます。 | ここで言及されているすべての商標、商号、サービス マーク、およびロゴは、それぞれの会社に帰属します。




