DNSリークとは何か
DNSリークとは、ドメイン名(例:example.com)をIPアドレスに変換するためのDNS問い合わせが、意図した経路(通常はVPN経由など)から外れて送られてしまう状態のことです。名前解決は通信の入口になりやすいため、経路が外れると「どのサイトにアクセスしようとしているか」といった手がかりが、別のネットワーク経路側に見える可能性があります。
仕組みの簡単なモデル
DNS問い合わせの流れは、おおむね次のイメージで捉えられます。
- 利用端末がドメイン名を受け取り、IPアドレスを知る必要が生じる
- 端末はDNSサーバへ問い合わせを行い、回答(IPアドレス)を得る
- そのIPアドレスに対してWebなどの通信が行われる
このうち2) の問い合わせ先(どのDNSサーバに向かったか、どの通信経路で送られたか)が、リークかどうかの観点になります。設定上は保護しているつもりでも、実際には端末やアプリが別の手段でDNSを問い合わせていると、結果として別経路に届くことがあります。
DNSリークが起きる主な制限・原因
DNSリークは「どこかが完全に防いでくれるはず」という単純な話ではなく、実装や設定、環境の影響を受けます。よくあるのは次のようなケースです。
- ネットワークやアプリがDNS問い合わせの送信経路を分けて扱う
- 端末のDNS設定や、使用する仕組み(アプリ内DNS、OS側の解決など)が想定と一致しない
- VPN接続の状態変化(接続開始直後など)で一時的に異なる挙動になる
- ルールがすべての通信に一律に適用されず、対象外が残る
重要なのは、リークは“発生する/しない”が固定ではなく、アクセスするタイミング、使うアプリ、通信の経路、ネットワーク条件によって変わり得る点です。したがって、対策の成否は設定名だけでなく、確認で裏取りする必要があります。
実践的な確認方法
DNSリークの有無は、一般に「DNS問い合わせがどこへ行っているように見えるか」を手がかりに確かめます。ここでは、製品や特定手順に依存しない確認観点をまとめます。
- 端末のDNS問い合わせ先が、意図した経路・設定と一致しているかを確認する
- 端末(またはOS)のDNS設定、利用中のネットワーク状態で参照されるDNSが、期待どおりかを見ます。
- 同じ端末で、保護のON/OFFや接続前後で挙動差が出るかを見る
- 保護が有効な状態と無効な状態で、問い合わせの行き先が変わるかを比較します。
- ブラウザだけでなく、利用アプリの差も確認する
- ブラウザ内で起きていると思っていても、アプリによって名前解決の方法が異なる場合があります。ブラウザ以外(メール、チャット、ストリーミング等)でも同様に見ます。
- テスト対象は複数用意して傾向を掴む
- ドメインによって挙動が変わることがあります。
