クイックダウンロード:
DNSトンネリングは、ほとんどのファイアウォールが開放しているプロトコルを悪用するため、データ漏洩やコマンド&コントロール通信の好ましい経路となっている。
-
攻撃者はDNSクエリと応答の中にデータをエンコードすることで、従来のネットワークセキュリティ対策を回避する。
-
検出には、DNSクエリ量、ペイロードサイズ、エントロピー、および異常なドメインへのリクエスト頻度を監視する必要がある。
-
DNSトンネリングをブロックするには、ファイアウォールルールだけでなく、リゾルバレベルでのDNS検査が必要です。
-
DNSリゾルバと監視ツールを設定して、通常のクエリ動作を基準値とし、エントロピーの高いサブドメイン、過大なペイロード、新たに検出されたドメインや疑わしいドメインへの頻繁なルックアップなどの異常を検知してアラートを発するようにします。
ドメインネームシステム(DNS)は、インターネットやネットワーク全般で使用される最も重要な技術の一つです。これは、IPアドレスを人間が理解しやすいドメイン名(URLとも呼ばれる)に変換し、人々がウェブサイトに簡単にアクセスできるようにするシステムです。人間はIPアドレスを記憶するよりもlogicmonitor.comのようなドメイン名を覚える方がはるかに得意であるため、DNSは不可欠です。特にIPv6アドレスは128ビットと長いため、なおさらです。
DNSは長年にわたり不可欠な技術であったため、攻撃の脆弱性を探るハッカーからも注目されてきた。最も深刻なDNS攻撃の一つに、DNSトンネリングと呼ばれるものがある。
DNSトンネリングとは何ですか?
DNSトンネリングは、 トロイの木馬の概念 これは、ハッカーがDNSリクエストに見せかけたメッセージに悪意のあるコードやプログラムを埋め込む攻撃です。DNSはほとんどのネットワークおよびインターネット活動に不可欠な要素であるため、この種のトラフィックはファイアウォールやその他のシステムをほとんど監視されることなく通過してしまうことがよくあります。
以下は、DNS攻撃の基本的な手順の概要です。
- ホストドメインを登録する: ハッカーはドメインを登録し、一見正規のサイトに見えるウェブサイトを立ち上げることがあります。しかし、そのサイトにはDNSトンネリングマルウェアがインストールされており、アクセスされるとすぐに拡散されるようになっています。
- 標的のコンピュータにマルウェアを感染させる: 次のステップは、多くの場合最も困難なステップですが、標的ネットワーク内のコンピュータにマルウェアを感染させることです。これは、他の感染したウェブサイト、感染したメール、あるいは企業の施設に持ち込まれた不正なハードウェアなど、さまざまな方法で行うことができます。
- 感染したコンピュータをハッカーのウェブサイトに接続する: 準備が整うと、感染したコンピュータはハッカーのウェブサイトへの接続を試みます。この接続プロセスの一環として、ウェブサイトを特定するためのDNSリクエストが送信されます。DNSリクエストは常にファイアウォールを通過できるため、ハッカーは本来保護されているはずのシステムへの基本的な接続を確立することができます。
- 悪意のあるコードをDNSリゾルバ経由で渡す: 接続が確立され承認されると、ハッカーのホストサーバーは標的ネットワークに追加のコードやプログラムを送信できるようになります。このコードは、データの収集、システムへのプログラムの配置、その他、侵害されたシステムを長期的に悪用するための様々な行為に使用できます。
このプロセスがどのように機能するかの基本的な図を以下に示します。

DNSトンネリングに関連する攻撃
DNSトンネリング攻撃に関して最も重要な点の1つは、ハッカーは通常、この種の攻撃を最終目標として実行しないということです。むしろ、彼らは成功したDNSトンネリング攻撃を、他の悪意のある行為を完了するための手段として利用します。さらに、他の種類のハッキングとは異なり、実際のDNSトンネリング行為は攻撃の最初のステップではありません。
DNSトンネリングは、他の悪意のある活動の一部として使用されるハッキングツールまたは戦略として捉えるべきです。以下は、DNSトンネリングと関連付けられることが多い攻撃の種類です。
| 攻撃タイプ | 簡単な説明 | DNSトンネリングとの関連性 |
|---|---|---|
| マルウェアのインストール | ネットワーク内のコンピュータにウイルスやマルウェアプログラムをインストールする。これには、感染したメールを送信したり、ユーザーにマルウェアをシステムにインストールさせるように改ざんされたUSBドライブを挿入させたりするなど、さまざまな方法がある。 | これは通常、DNSトンネリング攻撃の最初のステップです。DNSトンネリング攻撃を回避するには、適切なウイルスおよびマルウェアの監視と駆除が不可欠です。 |
| ユーザー認証情報の収集 | ウイルスやマルウェアは、キーロガーなどの手法を用いてユーザーIDとパスワードを収集し、攻撃者に送信する可能性があります。収集された情報は、攻撃者が直接他の行為に利用したり、ダークウェブで販売して利益を得たりする可能性があります。 | 侵害されたコンピュータを通じてユーザー認証情報を収集し、攻撃者が制御するDNSトンネルを介して攻撃者に送り返すことが可能です。 |
| ネットワークフットプリンティング | 感染したネットワーク内からDNSクエリを利用することで、システムマップを作成できます。このマップによって、使用されているシステムが特定され、将来的な脆弱性の発見につながる可能性があります。ハッカーはこのようなネットワークマップを今後の活動を計画するために必要とするため、これは非常に重要です。 | ネットワークフットプリントから得られたデータは、DNSトンネリングによって確立された接続を利用してハッカーに渡されることが多い。また、DNSトンネリング攻撃によってインストールされた追加のマルウェアによって、悪意のあるソフトウェアの効果を高めるために利用されることもある。 |
| データ盗難 | ネットワークへの不正接続は、機密性の高いユーザーデータを含む大量のデータの送信を開始するために悪用される可能性があります。これはDNSトンネルを使用して行われることもありますが、より一般的にはSSHやFTPなどのプロトコルが使用され、DNSトンネルを介してトリガーまたは制御されます。 | ハッカーは、機密データを収集・配布するために様々な手法を用いる。これらの手法は、多くの場合、侵害されたDNSトンネルを介して制御される。 |
| 通信制御 | マルウェアやその他の感染システムと通信し、制御できることは、多くの種類の攻撃において不可欠な要素である。 | 高度なDNSトンネリングツールキットは、ハッカーのホストサーバーと定期的に「チェックイン」を行い、通信を維持して追加のコマンドを受信します。ホストサーバーとの継続的なチェックインにより、ハッカーは将来にわたって様々な操作を実行できます。つまり、DNSトンネリング攻撃は単発的な事象ではなく、数年にわたって影響を及ぼす可能性のある長期的な脅威なのです。 |
これらはDNSトンネリングに関連する最も一般的な攻撃手法の一部ですが、決してこれだけではありません。ほぼすべての種類のハッキング攻撃は、マルウェアを仕込んだり、接続を悪用したりすることで効果を発揮します。そのため、DNSトンネリングツールキットは、高度なハッカーにとって最もよく使われるツールのひとつとなっています。
DNSトンネリング攻撃を検出する方法
DNSトンネリング攻撃の検出は困難な場合があります。幸いなことに、この種の攻撃が発生していることを特定し、それを阻止するための対策を講じる方法があります。
DNSトンネリング攻撃を検出するための最初のステップは、高度なウイルス対策/マルウェア対策プログラムを使用していることを確認することです。これは、ほとんどの種類のセキュリティ脅威を回避するために不可欠です。さらに、DNSリクエストを含むすべてのトラフィックを詳細にスキャンするシステムを導入する必要があります。
これらのツールは、ネットワークに出入りするあらゆる種類のトラフィックを監視する必要があります。これらのツールは、トラフィックの通常とは異なる宛先やトラフィックの急増などの挙動を監視し、送信されている内容を調べて異常がないかを確認する必要があります。
リクエストとレスポンスのサイズは、不審なDNSトンネリングの試みを明らかにするのに役立ちます。DNSトンネリングではパケットヘッダーに余分なバイトが挿入されるため、送信元フィールドで使用されるバイト数と宛先フィールドで使用されるバイト数の比率を監視することで、不審なアクティビティを検出できます。検出ツールはパケットをキャプチャし、バイト数を保存し、比率を測定して異常な変化を探します。
疑わしいDNSトンネリング活動を検出するために使用されるもう1つの手法は、DNSリクエストのラベルフィールド(最大63文字)または名前フィールド(最大255文字)で使用されている文字数をカウントすることです。DNSトンネリングは、DNSリクエストとレスポンスの一部として、ラベルフィールドと名前フィールドを使用してデータを送受信します。
もう一つの選択肢として、独自のプライベートDNSサーバーをセットアップして管理する方法があります。ほとんどのインターネット接続はパブリックDNSサーバーに依存しており、これらは一般的に問題なく機能しますが、ユーザーの管理下にはありません。独自のDNSサーバーを運用すれば、アクセスされたサイト、リダイレクトされたトラフィック、不審なパターンなどに関するより多くの情報にアクセスできるようになります。
DNS監視ツール
ご想像のとおり、DNS監視ツールはDNSトンネリング攻撃を検出する上で非常に重要です。DNSトラフィックは、一般的にサイズが非常に小さいにもかかわらず、極めて重要な役割を果たすという点で独特です。さらに、インターネットへの接続はほぼすべて、何らかの形でDNSトラフィックを伴います。つまり、DNSトラフィックは他の種類のネットワークトラフィックとは異なる方法でルーティングおよび保護されているため、攻撃に対して脆弱なのです。
DNSトンネリングからネットワークを保護する方法
DNSトンネリング攻撃からネットワークを保護するためにできる最善策は、包括的なセキュリティ計画を策定することです。この種の攻撃は、外部の攻撃者が適切なツールを持っているだけでなく、ネットワーク内に感染したデバイスも必要とするため、保護にはさまざまな手順が必要になります。DNSトンネリング攻撃のリスクを最小限に抑えるために導入すべき主要な対策には、以下のようなものがあります。
- ウイルスおよびマルウェア対策機能を更新しました。 優れたウイルス対策およびマルウェア対策戦略は、あらゆる企業ネットワークにとって不可欠です。実績のあるシステムを使用し、常に最新の状態に保つことで、システムの感染を防ぎ、DNSトンネリング攻撃の発生を未然に防ぐことができます。
- 高度なネットワークトラフィック監視: 高度なネットワークトラフィック監視ツールは、DNSパケットを含むあらゆる種類の潜在的に悪意のあるトラフィックを検出します。これにより、この種の攻撃を非常に早い段階で特定し、阻止することが可能になります。
- ネットワーク分析ツール: これらのツールを使って、ネットワークを通過するトラフィックの種類だけでなく、その重要性も把握しましょう。あらゆる種類のネットワークトラフィックを長期的に監視することで、ツールは変化をより的確に特定し、不正な活動を阻止するための対策を講じることができます。
- 従業員研修: あらゆるコンピュータシステムにおいて、最も脆弱な点は、ネットワークにアクセスする人間の行動パターンです。従業員に対し、承認されていないリンクをクリックしたり、不審なメールを開いたり、マルウェアの侵入を招く可能性のあるその他の行動をとらないよう教育することで、DNSトンネリング攻撃からシステムを守りましょう。
DNSトンネリング攻撃を防ぐための対策を講じる
DNSトンネリング攻撃は長年にわたり存在しており、今後も深刻な脅威であり続けるでしょう。企業ネットワークや機密情報を扱うシステムなど、何らかのセキュリティ対策を講じている立場であれば、攻撃が始まってから阻止しようとするよりも、事前に予防策を講じる方がはるかに容易です。DNSトンネリング攻撃の仕組みと、その阻止方法について、ぜひ今日から理解を深めてください。
DNSトラフィックが実際に何をしているのかを可視化しましょう。
LogicMonitorは、DNSインフラストラクチャの健全性とクエリパターンを監視することで、セキュリティチームやネットワークチームがトンネリング、データ漏洩、不正使用などの兆候となる異常を検出できるよう支援します。
よくあるご質問
DNSトンネリングとは何ですか?
DNSトンネリングとは、DNSクエリおよびレスポンスパケット内にDNS以外のデータをエンコードする技術です。ほとんどのネットワークではDNSトラフィックの送信が許可されているため、攻撃者はトンネリングを利用してファイアウォールやデータ損失防止ツールを回避する秘密の通信経路を確立します。
攻撃者はどのようにDNSトンネリングを利用するのか?
攻撃者は悪意のあるDNSサーバーを構築し、それを指すドメインを登録します。侵害されたマシン上のマルウェアは、DNSクエリにデータをエンコードし、長いサブドメイン文字列に埋め込みます。攻撃者のDNSサーバーはこれらのクエリを受信し、ペイロードをデコードして、コマンドで応答することができます。
DNSトンネリングをどのように検出しますか?
検出は行動分析に基づいています。主な指標としては、異常に長いサブドメイン文字列(多くの場合100文字以上)、単一ドメインへのクエリ量の多さ、TXTやNULLなどの一般的でないレコードタイプの頻繁な使用、および大きなレスポンスペイロードなどが挙げられます。
DNSトンネリングを防ぐにはどうすればよいですか?
予防策としては、DNS解決を許可された内部リゾルバに限定すること、動作異常を検出するDNS監視ツールを導入すること、既知のトンネリングツールを識別するDNSファイアウォールソリューションを使用すること、およびネットワークセグメンテーションを実装して送信DNSリクエストを制限することなどが挙げられる。




