Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

DNSトンネリング(ディーエヌエストンネリング)とは | 意味や読み方など丁寧でわかりやすい用語解説

DNSトンネリング(ディーエヌエストンネリング)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

DNSトンネリング (ディーエヌエストンネリング)

英語表記

DNS tunneling (ディーエヌエス・トンネリング)

用語解説

DNSトンネリングとは、インターネット上でドメイン名とIPアドレスを変換する役割を持つDNS(Domain Name System)プロトコルを悪用し、正規のDNS通信の中に不正なデータを隠して送受信する技術である。これは、通常許可されているDNS通信の経路を隠された通信路(トンネル)として利用するもので、主にファイアウォールなどのセキュリティ対策を回避してデータを外部に持ち出したり、外部からマルウェアを制御したりするために用いられるサイバー攻撃手法の一つである。攻撃者は、この仕組みを利用してデータ窃取、コマンド&コントロール(C2)通信、ネットワーク内へのデータ持ち込みなど、様々な悪意ある活動を実行する。

DNSは、ウェブサイトのURLやメールアドレスといった人間が覚えやすいドメイン名を、コンピュータが識別するIPアドレスに変換する、インターネットの根幹を支えるサービスである。DNS通信は通常、UDPポート53番を使用し、ほとんどのネットワーク環境において、内部ネットワークから外部のDNSサーバーへの通信はファイアウォールで許可されている。この「常に開いている」という特性が、DNSトンネリングの悪用を可能にする。

DNSトンネリングでは、攻撃者はまず、内部ネットワークのPCに特殊なDNSクエリを生成するマルウェアを仕込む。このマルウェアは、抜き取りたいデータの一部をエンコード(符号化)してサブドメイン名として組み込んだり、TXTレコードやNULLレコードといった任意の文字列を格納できるDNSレコードタイプに直接ペイロード(不正なデータ)を埋め込んだりする。例えば、「機密データの一部.攻撃者ドメイン.com」のような形式のDNSクエリを作成する。この不正なDNSクエリは、正規のDNSサーバーではなく、攻撃者が管理する悪意のあるDNSサーバー(コマンド&コントロールサーバー、C2サーバーとも呼ばれる)に送信されるように設定される。

内部のPCから発信された不正なDNSクエリは、ファイアウォールを通過し、外部の攻撃者サーバーに到達する。なぜなら、ファイアウォールは通常、DNS通信を許可しているため、その内容が不正なデータを含んでいても、DNSプロトコルとして認識される限りブロックしないことが多いからである。攻撃者サーバーは、受け取ったDNSクエリから隠されたデータを抽出し、さらに攻撃者側からのコマンドや追加のマルウェアデータをエンコードしてDNS応答に含めて内部PCに返す。この一連の通信は、ファイアウォールから見ると通常のDNSの名前解決リクエストと応答に見えるため、通常はブロックされずに通信が成立してしまう。この隠された通信路を通じて、機密データの流出や外部からのマルウェア制御が可能になる。

この手法は、主に以下の目的で悪用される。一つは、データの窃取(データエクスフィルトレーション)である。内部ネットワークの機密情報や認証情報などを、ファイアウォールを迂回して外部に持ち出すために利用される。例えば、PC内の重要なファイルの内容を小さなチャンク(塊)に分割し、それぞれをDNSクエリのサブドメイン名として複数回に分けて送信することで、情報を外部に漏洩させる。 もう一つは、コマンド&コントロール(C2)通信である。外部の攻撃者が内部の感染PCに対して、新たな指示を与えたり、追加のマルウェアをダウンロードさせたりするための制御チャネルとして機能する。感染PCは定期的にDNSクエリを送信し、その応答に攻撃者からのコマンドが含まれていれば、それを実行する。 また、ネットワーク内へのデータの持ち込み(データインフィルトレーション)にも使用され、厳しくブロックされた環境にマルウェアを運び込む手段ともなる。例えば、攻撃者がDNS応答にマルウェアのコードを埋め込み、感染PCがそれを復元して実行するといったケースが考えられる。

DNSトンネリングの検出と対策は、通常のDNSトラフィックと異なる異常なパターンを特定することから始まる。例えば、非常に長いサブドメイン名を持つDNSクエリ、特定のドメインに対する異常に多いクエリ数、あるいは通常あまり使用されないTXTレコードやNULLレコードといったリソースレコードタイプの頻繁な使用などが挙げられる。また、DNSクエリのペイロードサイズが異常に大きい場合も疑わしい。 具体的な対策としては、まずDNSトラフィックの監視と詳細なログ分析が不可欠である。SIEM(Security Information and Event Management)やIDS/IPS(Intrusion Detection/Prevention System)といったセキュリティソリューションを導入し、DNSログを詳細に分析することで、不審な挙動を検知できる可能性がある。次世代ファイアウォール(NGFW)の中には、DNSプロトコルの中身まで検査し、DNSトンネリング特有のパターンを検出してブロックする機能を持つものもある。また、不審なDNSクエリを偽の応答で返したり、特定のドメインへの名前解決を阻止したりするDNSシンクホールや、外部の脅威インテリジェンスと連携したDNSフィルタリングサービスの導入も有効である。これにより、既知の悪性ドメインへの通信を事前に遮断できる。さらに、エンドポイントセキュリティの強化、不必要なポートやプロトコルのブロック、そして従業員へのセキュリティ教育を通じて、組織全体のセキュリティ意識を高め、多層的な防御戦略を構築することが重要となる。

関連コンテンツ

関連IT用語