【ITニュース解説】THE DARK SIDE OF DNS: WEAPONIZING RECURSIVE RESOLVERS FOR STEALTH DATA EXFILTRATION
2026年09月09日に「Dev.to」が公開したITニュース「THE DARK SIDE OF DNS: WEAPONIZING RECURSIVE RESOLVERS FOR STEALTH DATA EXFILTRATION」について初心者にもわかりやすく解説しています。
ITニュース概要
ネットワークに必須なDNSが、サイバー攻撃に悪用され、正規の通信に見せかけて内部データを外部へ密かに持ち出す手口がある。これは再帰リゾルバを経由するため発見しにくい。防ぐには、DNSの経路を厳しく管理し、詳細なログを監視して不審な動きを検知する対策が不可欠だ。
ITニュース解説
DNSは、インターネットの住所録のようなものです。ウェブサイトのアドレス(ドメイン名)を入力すると、DNSがそのアドレスに対応するサーバーのIPアドレスを教えてくれるおかげで、私たちは目的のウェブサイトにアクセスできます。このDNSは、コンピューター、サーバー、クラウドサービスなど、あらゆるITシステムにとって不可欠な存在です。そのため、ネットワークを遮断せずに運用するには、DNS通信を許可せざるを得ません。多くの組織では、DNSの通信量を監視せず、単なる背景ノイズとして扱っているのが現状です。
しかし、この「信頼」と「常時許可」という特性が、サイバー攻撃者にとってデータ抜き出しの抜け道となることがあります。通常のデータ抜き出しでは、攻撃者は不正なサーバーへ直接接続したり、ファイルをアップロードしたりする際に、セキュリティツールに検知されるリスクがあります。しかし、DNSを悪用すれば、このような目立つ通信なしに、ひそかにデータを外部へ持ち出すことが可能になります。
その中心的な役割を果たすのが「リカーシブDNSリゾルバー」です。リカーシブリゾルバーは、クライアント(あなたのパソコンなど)からの問い合わせを受け付け、DNSの階層構造をたどって正しい情報を探し出し、その結果をクライアントに返すサーバーです。攻撃者はこのリゾルバーを「中間役」として利用します。
具体的な手口としては、まず攻撃者は自身が管理するドメインを登録するか、既存のドメインを乗っ取ります。そして、標的となる組織のシステムにマルウェアを感染させ、そのマルウェアが、抜き出したいデータを細かく分割し、それぞれを暗号化したり符号化したりして、攻撃者が管理するドメインの「サブドメイン」としてDNSクエリを生成するように仕向けます。例えば、「encoded-data.chunk-id.session-id.attacker-domain.example」のような形式です。
このマルウェアに感染したシステムは、通常通り組織内のリカーシブリゾルバーに対してこの特殊なサブドメインの解決を問い合わせます。リゾルバーは、指示された通りにDNS階層をたどり、最終的に攻撃者が管理するドメインの「権威DNSサーバー」にこのクエリを転送します。攻撃者の権威DNSサーバーは、このクエリ名に埋め込まれたエンコード済みのデータを記録し、それを集めて再構築することで、本来抜き出したかった情報を手に入れます。
この方法の巧妙な点は、標的のシステムから攻撃者のサーバーへ直接通信が行われないことです。標的のシステムは、普段から利用している正当なDNSリゾルバーに問い合わせをしているに過ぎません。一方、攻撃者から見れば、クエリは組織のリゾルバーや公共のリゾルバーから届いたように見え、元の感染源が特定されにくいという特徴があります。この「分離」が、リカーシブリゾルバーを使ったデータ抜き出しをステルス性の高いものにしているのです。
DNSが悪用されやすい理由は他にもあります。一つは、多くの組織でファイアウォールがDNSトラフィックを許可していることです。次に、DNSは非常に多くのトラフィックを生成するため、悪意のあるクエリが正当なリクエストの中に紛れ込みやすいという特徴があります。また、DNSの名前は柔軟性が高く、サブドメインの各ラベルには最大63文字、全体で253文字までデータを埋め込むことが可能です。攻撃者は、Base32のような文字コードを使ってデータを効率的に埋め込みます。さらに、多くの組織ではDNSのログが不完全だったり、短期間しか保存されなかったりするため、データ抜き出しの痕跡を追跡するのが困難になることがあります。最後に、リカーシブリゾルバーを経由することで、攻撃者が元の攻撃元を特定しにくくする効果も持ちます。
DNSの性能向上に欠かせない「キャッシュ」は、この攻撃においては障害になることがあります。同じクエリが繰り返し行われると、リゾルバーはキャッシュされた情報で応答してしまい、攻撃者の権威DNSサーバーまでクエリが届かなくなるからです。これを回避するため、攻撃者は各データ塊ごとにユニークな識別子やセッションIDなどをクエリ名に含ませて、常に新しいクエリとして認識させます。この「ユニークなサブドメインの大量発生」こそが、DNSベースのデータ抜き出しを検知するための重要な手がかりとなります。通常のドメインでは「www」や「api」のように繰り返し問い合わせられる名前が多いのに対し、データ抜き出しに使われるドメインでは、ランダムに見える、これまでにないような名前が何千も生成されるからです。
リカーシブリゾルバーは、攻撃の隠蔽性を高める役割も果たします。組織内のリカーシブリゾルバーが適切に監視されていない場合、それが「公認された」データ抜き出しの中継地点となってしまいます。ファイアウォールから見れば、外部と通信しているのはリゾルバーだけであり、感染したシステムが直接外部と通信しているようには見えません。Google Public DNSなどの公共リゾルバーや、インターネットに公開された「オープンリカーシブリゾルバー」も、同様に攻撃経路を隠蔽するために利用されることがあります。特に、DNS over HTTPS(DoH)やDNS over TLS(DoT)といった暗号化DNSが使われると、中間でクエリ内容を検査することがさらに難しくなります。
DNSデータ抜き出しには、いくつかの特徴的なパターンが見られます。一つは、エンコードされたペイロードを含む、非常に長くてランダムに見えるクエリ名です。例えば「mfrggzdfmztwq2lk.mjqxgzjanrxw4z3f.example.net」のような形です。もう一つは、多くの「NXDOMAIN」(存在しないドメイン)応答です。攻撃者はクエリが権威サーバーに到達することだけを目的としているため、有効な応答は必要なく、大量のNXDOMAIN応答が生成されることがあります。また、攻撃は必ずしも大量に行われるわけではありません。数時間から数日かけて、少しずつ少量のデータを抜き出す「低ボリューム・長期間」の転送も一般的で、APIトークンやSSHキーといった価値の高い少量の秘密情報を盗み出すのに使われます。さらに、通常とは異なる「TXT」や「NULL」などのレコードタイプが使われることもあります。
これらの攻撃を検出するには、ファイアウォールのような境界線での監視だけでは不十分です。DNSリゾルバーレベルでの詳細な可視性が不可欠であり、クエリ名、クエリタイプ、応答コード、クライアントIP、タイムスタンプなどのログを収集・分析する必要があります。具体的には、非常に長い完全修飾ドメイン名、63文字に近いラベル、同じドメイン下での高エントロピー(ランダム性)なラベル、大量のユニークなサブドメイン、異常に多いNXDOMAIN応答、新しく登録されたドメインへの繰り返しクエリなどが、検出の強力な手がかりとなります。
リスクを低減するための防御策もいくつか考えられます。まず、全てのDNSトラフィックを承認されたリカーシブリゾルバー経由に強制し、それ以外の外部へのDNS通信を遮断することです。暗号化DNSについても、ポリシーによって管理されたリゾルバーに誘導するか、承認されていない提供元への接続をブロックする必要があります。次に、リカーシブリゾルバー自体を重点的に監視し、詳細なクエリログを取得して、異常なパターンを検知できるようにすることです。ログの保存期間も、長期にわたる分析に耐えられるように十分に確保する必要があります。また、Response Policy Zones(RPZ)などの機能を利用して、既知の不正なドメインや新しく登録されたドメインへのクエリをブロックすることも有効です。ただし、未知の攻撃には対応できないため、振る舞い分析も併用することが重要です。最後に、自分の組織が意図せずにオープンリカーシブリゾルバーを運用していないか確認し、制限することが基本的な衛生管理として求められます。クラウド環境やコンテナ環境におけるDNSのパスも複雑化しているため、それらの環境でのDNSクエリログも忘れずに有効化し、監視することが重要です。
DNSSECはDNSデータの認証を行うものですが、不正なクエリ名にデータが埋め込まれることを防ぐ機能はありません。QNAME最小化はプライバシー保護に貢献しますが、攻撃者が管理する権威DNSサーバーには完全なクエリ名が到達するため、データ抜き出しの対策にはなりません。セキュリティ対策は、これらの攻撃パターンに合わせたものである必要があります。
もしDNSによるデータ抜き出しが疑われる場合、迅速にリゾルバーのログを保全することが最優先です。同時に、感染が疑われるシステムのDNSキャッシュデータ、プロセス実行履歴、EDRイベント、プロキシログ、ファイアウォールログなども収集し、調査を進めます。どのシステムが不審なクエリを生成したのか、どの親ドメインに大量のユニークなサブドメインが問い合わせられたのか、暗号化DNSが不正に利用された形跡はないか、抜き出されたデータの内容は何か、といった点を特定する必要があります。
結論として、DNSは単なるネットワークの基盤ではなく、攻撃者が悪用する可能性のある、信頼されたデータ経路です。リカーシブリゾルバーは、ほとんど全てのシステムとインターネットのDNS階層の間に位置するため、特に強力な攻撃の足がかりとなり得ます。重要なのは、DNSトラフィックを管理されたリゾルバーに強制し、不正行為を再構築できるだけのログを収集し、高エントロピーや高カーディナリティ(多数のユニークな値)なクエリの振る舞いを検出し、暗号化DNSを制御し、リゾルバーインフラストラクチャをセキュリティ境界の一部として扱うことです。攻撃者はDNSがどこでも許可されていることを知っています。防御側は、その許可を条件付きで、監視可能で、かつ取り消し可能なものにする必要があります。