【でぃーえぬえすとんねりんぐ】

DNSトンネリング とは?

💡 「名前解決」の裏で密かにデータを運ぶ隠し通路
📌 このページのポイント
通常DNS通信 vs DNSトンネリング 通常のDNS通信 クライアント DNSサーバー example.com? → 93.184.216.34 クエリ→ example.com 短いドメイン名で正常 ✓ 正常な名前解決 DNSトンネリング 感染PC 攻撃者の DNSサーバー dGVzdA{==}.evil.com ← 指令データ埋込 dGVzdGRhdGE{==}.evil.com 異常に長いサブドメイン ✗ データ窃取・C2通信 FWはDNS(53番ポート)を許可 → トンネリングがすり抜けやすい
DNSトンネリングのイメージ
ひよこ ひよこ

DNSトンネリングって、DNSで何をトンネルするの?

ペンギン先生 ペンギン先生

本来DNSは「このドメイン名IPアドレスは?」と聞くだけの仕組みなんだけど、そのクエリの中にこっそりデータを埋め込んで通信するのがDNSトンネリングだよ

ひよこ ひよこ

なんでわざわざDNSを使うの?

ペンギン先生 ペンギン先生

ファイアウォールHTTPSSHをブロックしても、DNSの53番ポートは名前解決に必要だから大抵開けてあるんだ。その「必ず通れる穴」を悪用するわけだね

ひよこ ひよこ

具体的にはどうやってデータを隠すの?

ペンギン先生 ペンギン先生

たとえば「abc123.evil.com」のサブドメイン部分「abc123」に盗んだデータをBase64エンコードして入れるんだよ。DNSサーバーは律儀に応答を返すから、その応答にも指令を仕込めるんだ

ひよこ ひよこ

それって見つけられないの?

ペンギン先生 ペンギン先生

完全に隠れるわけじゃないよ。異常に長いサブドメインや、短時間に大量のDNSクエリが発生するから、DNSログを監視していれば検知できるんだ

ひよこ ひよこ

対策はどうすればいいの?

ペンギン先生 ペンギン先生

DNSクエリの長さや頻度を監視するツールを導入するのが基本だね。あとはDNSの通信先を自社のDNSサーバーに限定して、外部への直接DNS通信をブロックするのも効果的だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
DNSトンネリング」って出てきたら「DNS通信にデータを隠して密かにやり取りする攻撃手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「DNS Tunneling」 = DNSトンネル通信
💬 tunnel(トンネル)の名の通り、DNSという「正規の通り道」の中に秘密の通路を掘るイメージだよ
← 用語集にもどる