DNS トンネリング
DNS トンネリング とは何ですか?
DNS トンネリングUDP/TCP 53 番ポート上の DNS クエリと応答に任意のデータを埋め込む隠蔽チャネルで、C2 やデータ持ち出しによく利用される。
DNS トンネリングは、DNS トラフィック(UDP/TCP 53 番ポート)がほぼあらゆる環境で許可され、深い検査がされにくいことを悪用します。マルウェアはペイロードのバイト列をサブドメインラベルにエンコードし(例:attacker.example.com 配下の base32 チャンク)、攻撃者の権威サーバが TXT、CNAME、NULL、A レコードで応答やコマンドを返します。名前解決は再帰的に行われるため、ホストが内部リゾルバにしか到達できず、攻撃者の IP に直接触れない場合でもデータは外部へ流出します。dnscat2、Iodine、Cobalt Strike の DNS C2 などがこのパターンを実装しています。スループットは低いものの隠密性は高めです。
実際の攻撃活動もこれに依存しています。2020 年の SolarWinds Orion における SUNBURST バックドアは、ドメイン生成アルゴリズムで avsvmcloud.com のサブドメインを構築し、被害者内部の Active Directory ドメインとインストール済みセキュリティ製品の一覧をそれらの DNS クエリに符号化して、双方向の C2 チャネルとして利用しました。イランと関係する OilRig/APT34 および DNSpionage の作戦も、同様に DNS トンネリングをタスク配信と持ち出しに用いました。
検知は、攻撃者が隠しにくいシグナルに依存します:ホスト当たりの高いクエリ数、異常に長いラベル、サブドメインの高いエントロピー(base32/base64/hex 文字列)、TXT や NULL といった非典型的なレコードタイプ、そしてこれまで観測されたことのないドメインです。対策には、すべてのクライアントを管理されたリゾルバ経由に強制すること、出口ファイアウォールで直接の外向き 53 番ポートを遮断すること、DNS シンクホール、クエリのレート制限、EDR/NDR における異常分析が含まれます。
flowchart LR M[Infected host] -->|"data.b32label.attacker.com"| R[Internal resolver] R -->|recursive lookup| AUTH[Attacker authoritative NS] AUTH -->|"TXT/CNAME reply = command"| R R --> M AUTH -.reassembles.-> D[(Stolen data and C2)]
● 例
- 01
感染ホストが a1b2c3.exfil.attacker.com のようなクエリを送り、ラベル部に窃取データを符号化する。
- 02
dnscat2 が TXT レコードを使って DNS 上にシェルを構築し、HTTP 限定の出口プロキシを回避する。
● よくある質問
DNS トンネリング とは何ですか?
UDP/TCP 53 番ポート上の DNS クエリと応答に任意のデータを埋め込む隠蔽チャネルで、C2 やデータ持ち出しによく利用される。 サイバーセキュリティの ネットワークセキュリティ カテゴリに属します。
DNS トンネリング とはどういう意味ですか?
UDP/TCP 53 番ポート上の DNS クエリと応答に任意のデータを埋め込む隠蔽チャネルで、C2 やデータ持ち出しによく利用される。
DNS トンネリング からどのように防御しますか?
DNS トンネリング に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
DNS トンネリング の別名は何ですか?
一般的な別名: DNS C2, DNS 経由のデータ持ち出し。