DNSトンネリングって、DNSで何をトンネルするの?
本来DNSは「このドメイン名のIPアドレスは?」と聞くだけの仕組みなんだけど、そのクエリの中にこっそりデータを埋め込んで通信するのがDNSトンネリングだよ
なんでわざわざDNSを使うの?
ファイアウォールはHTTPやSSHをブロックしても、DNSの53番ポートは名前解決に必要だから大抵開けてあるんだ。その「必ず通れる穴」を悪用するわけだね
具体的にはどうやってデータを隠すの?
たとえば「abc123.evil.com」のサブドメイン部分「abc123」に盗んだデータをBase64エンコードして入れるんだよ。DNSサーバーは律儀に応答を返すから、その応答にも指令を仕込めるんだ
それって見つけられないの?
完全に隠れるわけじゃないよ。異常に長いサブドメインや、短時間に大量のDNSクエリが発生するから、DNSログを監視していれば検知できるんだ
対策はどうすればいいの?
DNSクエリの長さや頻度を監視するツールを導入するのが基本だね。あとはDNSの通信先を自社のDNSサーバーに限定して、外部への直接DNS通信をブロックするのも効果的だよ