UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【ITP】バウンストラッキング(リダイレクトトラッキング)とは?

uga-box.hatenablog.com

上の記事でITPのリリースで更新されたことについて調査していたときにDelayed Bounce Tracking(遅延バウンストラッキング)という言葉を知ったのだが、遅延の前にそもそもバウンストラッキングとは何かを調べた

ITP2.0のリリース時の記事によると

  1. ユーザーがsocial.exampleサイトの中でnews.exampleへのリンク(と見せかけた広告サーバへのリンク)をクリックする
  2. 直接news.exampleに遷移する前にtrackerOne.example(広告サーバ)とtrackerTwo.example(広告サーバ)にナビゲートされる
  3. これらの2つのトラッカードメインは、ユーザーの閲覧履歴に関する情報をファーストパーティストレージとCookieに保存することができる
  4. ユーザーの目的のnews.exampleへリダイレクトする

f:id:uggds:20200330022810p:plain Intelligent Tracking Prevention 2.0 | WebKit

このような手法をバウンストラッキング(リダイレクトベースのトラッキング)というらしい

ITP 2.0の時点でこのトラッキングは検出されるようになっており、他のトラッカーと同じように扱われるようになったが、その検出を回避するためにリダイレクトを極端に遅延させる手法が出現していて、それが遅延バウンストラッキングというものらしい

ということで、3/24にリリースされたITPでは、この遅延バウンストラッキングさえも検出するロジックをいれたということだった

ちなみに、現在W3CのPrivacy Community Groupの中で(これはまた別の手法?になるのか)バウンストラッキングを防止する話し合いが行われているみたい

github.com

このissueの中で取り上げられているバウンストラッキングの仕組みはざっくり次のとおり

  1. コンテンツ発行者のページに、tracker.exampleのサードパーティスクリプトが埋め込まれている
  2. サードパーティスクリプトは、tracker.exampleのサードパーティCookieを読み取ろうとする
  3. それができない場合、window.locationを使用するか、ページ上のすべてのリンクをハイジャックして、トップレベルをtracker.exampleにリダイレクトする
  4. tracker.exampleがファーストパーティになるのでCookieを設定する
  5. tracker.exampleはURLパラメータにCookie値を持たせ状態で元のページのURLまたは目的のリンク先にリダイレクトする
  6. tracker.example cookieサードパーティのコンテキストで読んで戻すことができるようになった(そして、ファーストパーティストレージにそれを隠しておく)

リクエストの時点では、ブラウザがリダイレクトされるかどうかを認識していないため、このバウンス追跡を防御するのが困難とのこと

今後、このようなトラッキングもどんどん防止されるのではないかという話