ブログに戻る
仕組みを解説·12 分で読める

DNSレベルフィルタリングの実際の仕組み — ベンダーが宣伝しない4つの限界

DNSレベルフィルタリングは、コンシューマープライバシーにおいて最も効果的な手段のひとつです。デバイス上のすべてのアプリがDNSを経由し、1つの設定で全体をカバーできます。ただし、マーケティングページが前面に出さない4つの限界も存在します。ここでは、その仕組みとエッジケースを解説します。

執筆: Casper's Cloak Security Team

要点をひとことで言うと:スマートフォン上のアプリが analytics.facebook.com に接続しようとすると、まずそのホスト名のIPアドレスをDNSで調べる必要があります。フィルタリングDNSリゾルバーはそのルックアップを傍受し、接続先がトラッカーであると判断すると、IPアドレスの返却を拒否します。接続は開かれず、データはデバイスから送信されません。これはエレガントで強力な仕組みです。ただし、正直な議論には必ず触れておくべき4つの限界があります。暗号化されたトラフィックの内容は見えない、正規コンテンツと同じドメインで配信される広告はフィルタリングできない、システムDNSを完全にバイパスするアプリが存在する、そして暗号化DNSプロトコル(DoH/DoT/ECH)がネットワーク可視性の状況を変えつつあるという点です。以下では、まず仕組みを説明し、次に各限界を取り上げ、最後にDNSフィルタリングが依然として優れている領域を紹介します。

仕組みを5つのステップで解説

スマートフォンが行うすべてのネットワーク接続は、(気づいていなくても)次のシーケンスを経ています。

  1. アプリがサーバーに接続しようとする。 Instagramがストーリーを読み込もうとする、Facebook SDKがフィンガープリントを送信しようとする、SafariがWebページを開く。いずれもホスト名から始まります——graph.facebook.comcdn-news.comwww.example.com などです。
  2. OSがDNSにホスト名のIPを問い合わせる。 コンピューターは graph.facebook.com と直接通信するわけではありません。実際には 157.240.22.174 と通信します。DNSはホスト名をIPアドレスに変換するディレクトリです。
  3. DNSクエリがリゾルバーに送られる。 VPNなしの場合、通常はISPのリゾルバーか設定済みのDNS(一般的にはGoogleの 8.8.8.8 またはCloudflareの 1.1.1.1)です。CasperなどDNSフィルタリングツールを使用している場合、クエリは暗号化トンネル経由で私たちのリゾルバーに送られます。
  4. フィルタリングリゾルバーが接続先を評価する。 graph.facebook.com はトラッカーブロックリストに載っているか?フィッシングドメインのML分類に該当するか?ユーザーのカスタム許可リストに登録されているか?このスコアリングは数ミリ秒で完了します。
  5. リゾルバーが応答を返す——あるいは拒否する。 正規ドメインの場合:実際のIPが返され、アプリが接続し、処理が進みます。ブロック対象ドメインの場合:「NXDOMAIN」または 0.0.0.0 が返され、アプリの接続試行が失敗し、データはデバイスから送信されません。

これがすべての仕組みです。デバイス上のDPIのトリックも、カーネルフックも、証明書インジェクションの裏技もありません。すべてのIP接続はホスト名のルックアップから始まるという原則に基づいており、そのルックアップは暗号化されていないプレーンテキストとしてリゾルバーが管理しています。ルックアップを拒否すれば、接続も拒否されます。

このアプローチが特別な効果を持つ理由

DNSレベルフィルタリングが不釣り合いなほど効果的な理由は、3つの構造的特性にあります。

  • アプリを問わず機能する。 ブラウザ拡張機能は、インストールされているブラウザしか保護できません。Safariコンテンツブロッカーは、Safariしか保護しません。CasperのDNSフィルターは、Instagram、YouTubeアプリ、天気ウィジェット、スマートTVのストリーミングアプリ、Mail、Slack、Macのすべてのメニューバーユーティリティなど、DNSルックアップを行うすべてのものを保護します。
  • プロトコルを問わず機能する。 HTTP、HTTPS、WebSocket、カスタムバイナリプロトコルなど、DNSルックアップから始まるものはすべてフィルタリングされます。その上の暗号化レイヤーは関係ありません。リゾルバーは暗号化ネゴシエーションが始まる前に傍受するからです。
  • 集中管理できる。 アカウント上のすべてのデバイスが、1つの設定更新で同じ保護を受けられます。ブラウザ拡張機能のような分散管理は不要です。

これが、過去5年間でDNSレベルのツール(Pi-hole、NextDNS、AdGuard DNS、そして私たちの Casper)がコンシューマープライバシーフィルタリングの主流パターンになった理由です。ただし、このレバレッジには両面があります。DNSフィルタリングが機能しないとき、その失敗は無音で大規模になる傾向があります。

限界1 — 暗号化されたトラフィックの内容は見えない

DNSフィルタリングはホスト名を対象に動作し、URLやペイロードは対象としません。ドメインが完全にブロックリストに登録されていれば、そのドメインのすべてのページとエンドポイントがブロックされます。完全に許可されていれば、すべてのページとエンドポイントが許可されます。DNSレイヤーには中間がありません。IPが解決された後、リゾルバーはアプリが次に何をするか一切見えません。

これは、専用のサブドメインを使うほとんどのトラッキングインフラでは問題になりません。analytics.facebook.comtag-manager.google.comevents.amplitude.com などがその例です。サブドメインをブロックしても本体サイトは機能し続け、アナリティクスだけが停止します。しかし、広告やトラッカーが正規コンテンツと同じドメインに同居している場合は厄介な問題です。Instagramは自社インフラからコンテンツとスポンサー投稿の両方を配信し、YouTubeは googlevideo.com からビデオとプレロール広告を配信し、Xはプロモーツイートもタイムラインと同じホスト名から配信します。DNSレベルフィルタリングはそれらを区別できません。

実際の影響: Casperは、一般的なスマートフォンで一般的な週に遭遇する広告やトラッカーの約80〜90%を排除します。残りの10〜20%はファーストパーティホストのものであり、別の手段が必要です。通常は、DOMレンダリングレイヤーで動作するブラウザ拡張機能(Chrome/FirefoxのuBlock Origin、Braveの組み込みShields、AdGuardのSafari拡張機能)を使って、レンダリングされたページを見て特定の要素を非表示にします。私たちは、最大限のカバレッジを求めるユーザーに対して、両レイヤーの併用を明示的に推奨しています。Casperはブラウザ拡張機能が届かないネットワークレイヤーをカバーし、ブラウザ拡張機能はDNSが届かないDOMレイヤーをカバーします。

限界2 — システムDNSを完全にバイパスするアプリがある

増加中のアプリは、もはやシステムDNSリゾルバーを使用していません。これらはDNS-over-HTTPS(DoH)またはDNS-over-TLS(DoT)を独自実装して、ユーザーが設定したDNSをバイパスし、Cloudflare、Google、または開発者独自のインフラと直接通信します。

Firefoxはデフォルトでこれを行います(MozillaのTrusted Recursive Resolverプログラム)。Chromeは、既存のDNSリゾルバーがGoogleの自動検出リストにある場合に同様の動作をします。一部の人気Androidアプリ(Brave、Discord、Signal、いくつかのストリーミングアプリ)はハードコードされたDoHエンドポイントを持っています。その動機は一般的にプライバシー——ISPレベルのDNS監視を防ぐこと——ですが、副作用として、ユーザーが設定したDNSフィルタリングがそれらのアプリに適用されなくなります。

実際の影響: iOSではこの問題はまれで、AppleのNetworkExtensionフレームワークがCasperにアプリレベルのDoH試行を傍受できる十分なフックを提供しています。Androidでは状況がより複雑で、一部のアプリが私たちの可視範囲外でホスト名を解決することがあります。Casperの対応は二段構えです。(a) 既知のDoHバイパス動作を持つアプリのリストを公開してユーザーがフィルターの対象外を把握できるようにする、(b) Androidではアプリごとのルーティングを使用して、フィルタリングを適用したい特定のアプリのクリティカルなトラフィックをシステムDNSパスに戻す、という方法です。これは、iOSに対してAndroidのより柔軟なVPNアーキテクチャが本当に有利な数少ない場面のひとつです。

限界3 — CDNと共有インフラではテナント単位のブロックが不可能

多くのウェブサイトやサービスはIPレベルでホスト名を共有しています。cdn-namespace.cloudfront.net は、同じCloudFrontエンドポイントの背後にある数千の異なる組織のコンテンツを配信している場合があります。ホスト名をブロックすると、それを共有しているすべての組織がブロックされ、許可すると全員が許可されます。DNSリゾルバーは、特定のリクエストがどのテナントを対象としているか知る方法がありません。

最も問題になるケース:Googleのトラッキングエンドポイントをブロックしながら、Googleの機能エンドポイントを許可したい場合です。googletagmanager.com は純粋なトラッキング用途なので安全にブロックできます。しかし googleapis.com は、Analyticsの収集と並行して、マップタイル、Cloud Storage、Firebase Authなど多岐にわたる機能を提供しています。ブロックすると膨大な数のアプリが壊れてしまいます。Casperのデフォルトブロックリストは、共有機能エンドポイントを開放しつつ専用トラッカーエンドポイントをブロックするよう調整されていますが、アプリを壊さずにどこまで細かく設定できるかには上限があります。

実際の影響: 一部のトラッキングシグナルは、そのホスト名が正規機能と密接に絡み合っていてブロックできないため、通り抜けてしまいます。主なケースはサポートドキュメントに記載しているので、何が漏れるかを確認できます。一部のアプリが壊れることを承知の上でより厳格なブロックを求めるユーザー向けに、「アグレッシブ」プリセットも用意しています。

限界4 — Encrypted Client Hello(ECH)が可視性を変えつつある

TLSハンドシェイクはServer Name Indication(SNI)フィールドを通じて接続先ホスト名を歴史的に漏洩させていました。DNSが暗号化されていても、ネットワーク上の観察者はどのサイトに接続しているかを見ることができました。IETFのEncrypted Client Hello(ECH)標準はこの最後のピースを暗号化します。2025〜2026年にかけて広く展開されており(Cloudflareは2024年末にデフォルトで有効化、Firefoxは安定サポート済み、Chromeは段階的展開中)。

プライバシーの観点からは本当に良いことです。ISPはTLSレベルでもどのサイトにアクセスしているかを見ることができなくなります。DNSレベルフィルタリングに直接影響はありません。私たちはTLS観察ではなくDNSルックアップ自体に対して動作するからです。ただしECHは、ユーザーがしばしばそれと気づかずにリゾルバー機能をサードパーティに委任する、より暗号化されたDNS(DoH/DoT/ODoH/Oblivious DNS)へのより広いトレンドの一部です。この委任がユーザーの設定したフィルタリングツールを迂回する可能性があります。

実際の影響: コンシューマープライバシーのスタックは断片化しつつあります。AppleのiCloud Private Relayは暗号化トラフィックをAppleのリゾルバー経由でルーティングし(ユーザーDNSをバイパス)、一部ブラウザのデフォルトDoHも同様です。ECHはパッシブな観察者からのプライバシーに有益ですが、ユーザーが自分のトラフィックに対して持つ主体性を低下させます。Casperの対応は、ユーザーが望む場所(自分のフィルタリングリゾルバー)でネットワークレベルの可視性を提供し、より広い暗号化トレンドと対抗するのではなく統合していくことです。

DNSレベルフィルタリングが依然として優れている領域

限界を認めることは、DNSフィルタリングが悪い選択だということではありません。正直な議論に必要なだけです。依然として最もクリーンな介入手段である場合を以下に示します。

  • 埋め込みSDKによる行動トラッキング。 Facebook SDK、Mixpanel、Amplitude、Segment、AppsFlyerはすべて専用のトラッカーホスト名を使用しており、DNSフィルタリングでクリーンにブロックできます。これはボリューム的に最大のカテゴリであり、ユーザーが最も止めたいものです。Casperのトラッカーブロッキングはこれを直接カバーしています。
  • すべてのアプリにわたる広告ネットワーク。 DoubleClick、AdMob、主要な広告ネットワークの収集エンドポイントはすべて専用ホスト名を使用しています。それらをブロックすることで、ブラウザ拡張機能が動作しないモバイルアプリのロングテール内の広告が無音化されます。実際の効果をご確認ください。
  • フィッシングドメインとマルウェアドメイン。 DNSレイヤーでのリアルタイム脅威スコアリングは、公開ブロックリストに追加される前にゼロデイフィッシングドメインを検出します。これはCasperのAI脅威分類器がその真価を発揮するレイヤーです。詳しくは3つの実際のフィッシングキャンペーンの詳細解説をご覧ください。
  • クロスアプリのフィンガープリント漏洩。 iOS App Tracking TransparencyがIDFAを停止しても、アプリはフィンガープリントデータを漏洩させ続けます。ただし、どこかに送信しなければなりません。DNSレイヤーは、アプリが使用していたであろう識別子に関わらず、その漏洩を検出します。ATTが止められないことの詳細解説もご覧ください。
  • OEMとOSのテレメトリ。 Samsung Knoxアナリティクス、Xiaomiクラウド、Appleのアナリティクスエンドポイント、Windowsのテレメトリ——これらはすべてOSの機能部分を壊すことなくDNSフィルタリングでブロックできる専用ホスト名を使用しています。
  • 敵対的ネットワークからの保護(公共WiFi)。 DNSトラフィックを運ぶVPNトンネルは、ローカルネットワーク上を流れる他のすべてのものも暗号化します。DNSフィルタリングの恩恵が小さい場合でも、カフェのWiFiでの暗号化の恩恵は現実のものです。

実際に機能する2層モデル

最も徹底した保護を求めるユーザーには、2つの補完的なレイヤーを組み合わせるパターンが最も効果的です。

  1. ネットワークレイヤー(DNSレベルフィルター): デバイス上のすべてのアプリをカバーし、専用ホスト名を使用するトラッカー/広告/フィッシングトラフィックの約80〜90%をブロックします。Casperはここに位置します。
  2. DOMレイヤー(ブラウザコンテンツブロッカー): Chrome/FirefoxのuBlock Origin、Braveの組み込みShields、またはAdGuardのSafari拡張機能です。DNSでは正規コンテンツと区別できない、Instagram、YouTube、Xなどのファーストパーティホスト広告を検出します。

各レイヤーは相手のカバーできないギャップを補います。両方を組み合わせると95%以上のカバレッジが得られ、どちらか一方では約80%にとどまります。私たちが話をしたプライバシー重視のユーザーのほとんどが、まさにこの組み合わせを使っています。

まとめ

DNSレベルフィルタリングは、コンシューマープライバシーの脅威の最大のシェア——埋め込みSDKトラッキング、広告ネットワーク漏洩、フィッシングドメイン解決、OEMテレメトリ——に対して介入する適切な場所です。魔法ではなく、すべてのケースをカバーするわけでもありません。上記の4つの限界は現実のものであり、それを隠すベンダーは不誠実に売るか、売ってはいけないものを売っているかのどちらかです。ネットワークレイヤーとブラウザDOMレイヤーを残りのケースに対して組み合わせ、敵対的ネットワーク暗号化を付属の別の恩恵として扱えば、2026年のコンシューマー脅威サーフェスのほとんどをカバーできます。

監修: Casper's Cloak Security Team · 最終更新

ネットワークレイヤーを試してみる

Casper's Cloakは上記のDNSレベルフィルタリングを実行します——iPhone、Mac、Android上のすべてのアプリにわたって。無料トライアル、ジェイルブレーク不要、標準のシステムVPNプロファイルとして動作します。