解決策
ブラウザのプライバシー機能は、身元をブラウザの状態として扱う。Cookie、canvasフィンガープリント、音声フィンガープリントは、シークレットモード、VPN、Torによって消去、ランダム化、またはブロックされるため、ブラウザを切り替えると新たな出発に見える。FingerprintJSの研究者たちは、その後に残るシグナルを攻撃した。マシンにインストールされたアプリケーションは、人がブラウザを変えたりVPNの背後に隠れたりしても変わらないため、アプリの集合はそのコンピュータ上のChrome、Firefox、Safari、Torをまたいで同一人物を結びつけることができる。
ディープリンクがその経路である。デスクトップブラウザは、skype:// のようなカスタムURLスキームを、それを登録したインストール済みアプリケーションに渡し、起動前にユーザーに確認する。したがって、ページはアプリの存在をテストできる。そのスキームにナビゲートし、ブラウザがどう反応するかを見ればよい。32の人気アプリケーションを調べ、はい/いいえの回答を組み合わせることで、Windows、macOS、Linux上で数秒のうちに32ビットの識別子が得られる。
各ブラウザは、それぞれ異なる弱点を通じて同じ回答を漏らした。Chromeはユーザー操作を必要としたが、PDFビューアなどの拡張機能が保護フラグをリセットした。Firefoxは未知のスキームに対して内部エラーページを表示したため、インストール済みアプリのポップアップを検出できた。Safariにはスキームフラッド保護がなかった。そして、確認ダイアログを完全に無効化しているTorでは、プローブがiframe内で目に見えない形で実行された。
これは悪用ではなく開示であった。FingerprintJSは実用的なデモとともにこの手法を公開し、ソースコードをリリースし、4つのブラウザベンダーすべてにバグレポートを提出し、自社製品ではこの脆弱性を使用していないと述べた。MozillaのBugzillaはissue 1711084を開設し、Tor Browserは後にパッチを添付した。2021年5月13日のHacker Newsの発表は467ポイントと200コメントを集め、読者たちはデモを実地テストとして実行した。
達成したこと
URLスキームのダイアログを通じてインストール済みアプリを調べ、どのプライバシーモードでもリセットされないIDを構築する
なぜ機能したか
インストール済みアプリケーションはデバイスレベルの状態であるため、それらから構築された識別子は、Cookieやcanvasフィンガープリントにはできない形で、シークレットモード、VPN、ブラウザの切り替え、Torを生き延びる。
カスタムURLスキームは許可なくアプリの存在を露出する。ブラウザは、実際のアプリケーションが登録した場合にのみスキームの起動を提案し、JavaScriptはその提案が行われたかどうかを観察できる。
この攻撃は、すでに存在していたポップアップウィンドウ、iframe、同一オリジンポリシーのみを使用したため、主要なデスクトップブラウザすべてが何らかの形でこのシグナルを露出し、プラグインやOSへのアクセスは不要だった。
Torが確認ダイアログを無効化するというプライバシー上の選択は裏目に出た。ユーザーに見えるものが何もないため、プローブはiframe内で目に見えない形で実行され、最もプライベートなブラウザを最も静かな漏洩源に変えた。
デモを公開しバグレポートを開設したことで、外部の人々がこの発見を再現でき、ベンダーの私的な主張が追跡可能なissue、ブラウザのパッチ、公的な精査へと変わった。
応用できること
インストール済みアプリは、シークレットモード、VPN、ブラウザの切り替えを生き延びるデバイスレベルの状態である。観察可能なUIの差異、たとえばダイアログが表示されるかどうかさえも、追跡シグナルになる。
その後
Mozillaはこの報告をbug 1711084として追跡し、Tor BrowserはMatthew Finkelが開発したパッチを添付した。数年後もこのバグは未解決のままだった。記事の2022年8月の更新では、ChromeとFirefoxのトラッカー項目が依然として未解決で未対応であると報告された。デモとソースリポジトリは公開されたままで、記事はFingerprintJSが自社製品でこの脆弱性を使用していないという免責事項を維持した。2021年5月13日のHacker Newsのスレッドは467ポイントと200コメントを集め、読者たちはデモを実地テストとして実行し、ブラウザ間で一致する識別子を確認した者もいれば、誤検知を報告した者もいた。
出典をたどる
出典
- Scheme flooding technique for reliable cross-browser fingerprinting Mozilla Bugzilla · bugzilla.mozilla.org
- Vulnerability allows cross-browser tracking in Chrome, Firefox, Safari, and Tor Hacker News · news.ycombinator.com ·