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

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という「正規の通り道」の中に秘密の通路を掘るイメージだよ
← 用語集にもどる