DNSプロトコルの間隙を突く「DNSトンネリング」によるデータ隠蔽流出
背景と概要
Web通信(HTTP/HTTPS)やファイル転送(FTP)などの一般的な通信プロトコルは、ファイアウォールやProxyで厳しく監視されています。そこで攻撃者が目をつけたのが、インターネット接続の基本インフラである「DNS(Domain Name System)」通信です。
DNS通信は名前解決のために基本的に制限なく外部へ通過することが多いため、この通信の中に機密データを細切れにして隠し持ち出す「DNSトンネリング(DNS Tunneling)」の手口が横行しています。
DNSトンネリングのメカニズム
攻撃者は自身が管理する悪意あるDNSサーバーを用意し、以下のようにデータを盗み出します。
1. データのエンコードとサブドメイン化
社内PCから持ち出したいデータ(例: 顧客のクレジットカード情報)を暗号化・Base64などでエンコードし、自社DNSサーバー宛の「サブドメイン名」として整形します(例: `[暗号化データ].attacker-domain.com`)。
2. DNSクエリに乗せた送信
社内PCが名前解決のために社内DNSサーバーへ問い合わせ(クエリ)を投げると、そのクエリが順次転送され、最終的に攻撃者のDNSサーバーへ届きます。
3. 攻撃者側でのデータ復元
攻撃者のDNSサーバーは届いたサブドメイン文字列を結合・復号することで、ファイアウォールに検知されることなく機密データを収集します。
DNSセキュリティ(DNS Security)対策
DNS通信は「素通りさせて良い通信」ではなく「監視すべき通信」です。
1. DNSプロキシ / DNSフィルタリングの導入
`Cisco Umbrella` や `Cloudflare Gateway` などのクラウド型DNSセキュリティを導入し、不審なドメインや構造を持つDNSリクエストをリアルタイムで遮断します。
2. DNSログのトラフィック異常解析(SOCによる監視)
特定のドメインに対して短時間に大量のテキストクエリ(TXTレコードや長いAレコードクエリ)が発生していないか、通信パターンの機械学習分析を行います。
実務で深掘りしたい確認点
社内DNS、端末の名前解決、長いサブドメイン、未知の権威DNSをひとまとまりの管理対象として捉えます。文字列長、頻度、エントロピー、失敗応答の偏りを通常通信の基準と比較します。 単発の警告だけで判断せず、利用者・端末・時刻・変更履歴を関連付けると、通常業務との違いを説明しやすくなります。
発見時の初動と影響確認
端末を隔離し、問い合わせ先ドメインを遮断し、DNSログから同じ兆候を横展開します。 復旧を急ぐ場合も、後から原因と影響範囲を説明できるよう、時刻、担当者、実施した操作、保全した証拠を残します。外部への通知や専門家への相談が必要かも、扱うデータと業務影響から判断します。
継続運用へ落とし込む方法
端末の外部DNS直接利用を制限し、保護DNSとログ保存期間を整備します。 導入時だけで終わらせず、例外件数、検知から対応までの時間、再発、利用者からの相談を定期的に確認します。訓練や実際の対応で見つかった手順の曖昧さを更新し、責任者不在時にも動ける状態を維持します。