見出し画像

CNAME Cloakingが回避できるらしい「NextDNS」の設定方法

CNAME Cloakingを知ってトラッキングされない方法があるのか疑問に思って調べてみたらNextDNSで実現できそうなのでやってみた。

更には広告やマルウェアやフィッシングやマイニングもある程度防げます。

Windows 10で進めていますが、macOS/Android/iOSやルータにも設定できます。要はDNS設定できればNextDNSを使用することができます。

CNAME Cloakingとは

ターゲティング広告のためにいろんなWebサイトで広告配信業者のCookie共有してユーザの興味あるものを勧めたろ!

3rd Party Cookie規制される流れやし、Webサイトのドメイン使ってターゲティングできるようにしたろ!

雑な説明ですいませんね。例を使って説明してみます。

前提)
Webサイト所有者のドメイン:website.example
広告配信業者のドメイン:adtech.test

いままでのターゲティング広告例)
1. Webサイト所有者が、広告配信業者によって発行されたtrack.adtech.testドメインにデータを送信するタグを埋め込む
2. ユーザがそのWebサイトにアクセスすると、埋め込んだタグによってtrack.adtech.testドメインに送信される
3. 別Webサイトでアクセスした際のデータも利用し、アクセスしたユーザに興味のありそうな広告を表示する

これからのCNAME Cloaking例)
1. Webサイト所有者が、所有しているドメインと広告配信業者によって発行されたドメインをCNAMEを使って転送するようにDNS設定を行う
   - track    IN    CNAME    track.adtech.test.
2. Webサイト所有者が、広告配信業者によって発行されたtrack.website.exampleドメインにデータを送信するタグを埋め込む
3. ユーザがそのWebサイトにアクセスすると、埋め込んだタグによって(track.website.exampleの名前解決の結果)track.adtech.testドメインに送信される
4. 別Webサイトでアクセスした際のデータも利用し、アクセスしたユーザに興味のありそうな広告を表示する

---

オプトアウト設定もできますが、今までは広告配信業者単位でオプトアウト設定していたのが、CNAME CloakingはWebサイト単位でオプトアウト設定することになるっぽいです。

コメント 2020-01-19 100014

※ちなみにアドエビス広告配信業者ではなく、Google Analyticsと同じ解析サービスです。

NextDNSとは

Google Public DNSCloudflare DNSと同じくセキュアなDNSサービスです。

特徴としてフィルターがあり、
アクセスしたくないドメインの名前解決をしない
という設定が可能です。

このフィルターにより悪質な広告やフィッシングサイトやマイニングなどを防ぐことができます。このフィルターは他の人が用意してくれたものを使うことができますし、自分で用意することもできるみたいです。
悪質なドメインを定義したhostsファイルを全世界で共有するイメージ。

Firefoxとパートナーになっており、Firefoxでは設定画面でポチーで使えるようになるようです。

NextDNS設定方法

前置きが長くなりましたが設定してみましょう。

1. Webサイトにアクセスする

2. Try it now for freeボタンを押す

画像1

画像7

3. Sign upする(任意)

Try it now for freeボタンを押すごとにDNS設定を動的に生成していますので、フィルターを使う場合はアカウント登録すると、設定がアカウントに紐づくので後から変更が楽になります。

4. コントロールパネル > ネットワークと共有センター > アダプターの設定の変更を開く

「Windowsキー + R」でファイル名を指定して実行開いて「ncpa.cpl」と入力すれば一発ですぜ。

コメント 2020-01-19 010704

下記のようなアイコンが並んでいるウィンドウが開けばOKです。

コメント 2020-01-19 010835

5. アダプターのプロパティを開く

これでインターネット繋がってるんやろなあと思われるアダプターを右クリックしてプロパティを選択します。

コメント 2020-01-19 092827

コメント 2020-01-19 093002

6. IPv4のDNS設定

「インターネットプロトコルバージョン 4 (TCP/IPv4)」を選択し、プロパティボタンをクリックします。

コメント 2020-01-19 093129

「次のDNSサーバのアドレスを使う」にチェックを入れ、NextDNSで発行されたIPアドレスを入力します。

設定するIPアドレスは以下のように表示されている箇所のIPアドレスです。

コメント 2020-01-19 094003

設定が完了したらOKボタンを押します。

7. IPv6のDNS設定

同じようにIPv6のDNS設定を行います。

「インターネットプロトコルバージョン 6 (TCP/IPv6)」を選択し、プロパティボタンをクリックします。

コメント 2020-01-19 094228

「次のDNSサーバのアドレスを使う」にチェックを入れ、NextDNSで発行されたIPアドレスを入力します。

設定するIPアドレスは以下のように表示されている箇所のIPアドレスです。

コメント 2020-01-19 094419

設定が完了したらOKボタンを押します。

8. DNSキャッシュクリア

PowerShellを管理者権限で起動します。
「Windowsキー + X」でメニューが表示されるのでそこから起動すると手っ取り早いです。
もしくはスタートメニュー開いた状態で「PowerShell」と入力し、右クリックして「管理者として起動」ですかね。

PowerShellで以下のコマンドを入力します。

ipconfig /flushdns

以下の結果が出力されたら成功です。

DNS リゾルバー キャッシュは正常にフラッシュされました。

9. 確認

NextDNSの設定画面を更新してみましょう。
以下のように表示されていれば成功です🎉

コメント 2020-01-19 095359

10. CNAME Cloakingフィルターを適用する

Listsタブをクリックし、「Advanced Mode」にチェックを入れると「NextDNS CNAME Cloaking Blocklist」が出てきますのでそれをチェックします。

画像12

フィルターは以下のリポジトリで管理されており現在は16ドメインが対象となっています。

上記の domains に記載されているドメインにアクセスすると「ERR_NAME_NOT_RESOLVED」と出ていればCNAME Cloakingを回避できています👍

ただし完璧ではない

ブラックリスト方式なのでリストに載ってないと防げません。

現時点では国内の広告配信業者には対応していません。
Pull Requestが出されているのでマージされると国内広告配信業者のCNAME Cloakingを回避することができます。

フィルターによってはWebサイトで表示崩れが起こる可能性もあります。

最後に

個人情報やプライバシーの観点からターゲティング広告やCNAME Cloakingについて思うことはありますが、今回はこういうものがある、対策としてこういう方法があるという紹介程度にとどめておきます。

追記:速度比較してみました


😉