ドメインネームシステム(DNS)は、securitytut.com のような人間にとって分かりやすいURLを、183.33.24.13 のようなIPアドレスに変換するプロトコルです。DNSメッセージは各通信の開始時にのみ使用され、データ転送を目的としたものではないため、多くの組織はDNSトラフィックにおける悪意のあるアクティビティを監視していません。その結果、DNSベースの攻撃は、ネットワークに対して実行された場合、効果を発揮する可能性があります。DNSトンネリングはそのような攻撃の一つです。
DNS トンネリングの例を以下に示します。

攻撃者は、多数のオープンソース DNS トンネリング キットの 1 つを権威 DNS ネーム サーバー (NS) と悪意のあるペイロードに組み込みます。
2. 攻撃者のインフラストラクチャからIPアドレス(例:1.2.3.4)が割り当てられ、ドメイン名(例:attackerdomain.com)が登録または再利用されます。レジストラは、トップレベルドメイン(.com)のネームサーバーに対し、attackerdomain.comへのリクエストを、1.2.3.4にマッピングされたDNSレコードを持つns.attackerdomain.comに転送するよう指示します。
3. 攻撃者は悪意のあるペイロードを使ってシステムを侵害します。目的のデータを取得すると、ペイロードはデータを32文字(0~9、A~Z)の短い文字列(3KJ242AIE9、P028X977Wなど)にエンコードします。
4. ペイロードは、攻撃者のドメインに対し、ドメイン名の一部となる文字列(例:3KJ242AIE9.attackerdomain.com)を含む数千の一意のDNSレコード要求を開始します。攻撃者の忍耐力とステルス性によっては、疑わしいネットワークアクティビティを回避するために、要求は数日または数ヶ月にわたって間隔をあけて送信される可能性があります。5. 要求は再帰DNSリゾルバに転送されます。解決処理中に、要求は攻撃者の権威DNSネームサーバーに送信されます。6. トンネリングキットはエンコードされた文字列を解析し、抽出されたデータを再構築します。参考:https://learn-umbrella.cisco.com/i/775902-dns-tunneling/0
5. リクエストは再帰DNSリゾルバに転送されます。解決中に、リクエストは攻撃者の権威DNSネームサーバーに送信されます。
6. トンネリング キットはエンコードされた文字列を解析し、盗み出されたデータを再構築します。
ドメイン名の一部(例:3KJ242AIE9.attackerdomain.com)を抽出します。攻撃者の忍耐力とステルス性によっては、疑わしいネットワークアクティビティを回避するために、リクエストを数日または数ヶ月にわたって送信することもあります。5. リクエストは再帰DNSリゾルバに転送されます。解決処理中に、リクエストは攻撃者の権威DNSネームサーバに送信されます。6. トンネリングキットはエンコードされた文字列を解析し、抽出されたデータを再構築します。参考:https://learn-umbrella.cisco.com/i/775902-dns-tunneling/0