カスタムURIスキームを利用して異なるWebブラウザーにわたりユーザー追跡を可能にする手法
カスタムURIスキームを利用することで、異なるWebブラウザーにわたるユーザーの追跡が可能になるという「scheme flooding」脆弱性をFingerprintJSが公開している(FingerprintJSのブログ記事、 Ghacksの記事、 HackReadの記事、 デモページ)。
この脆弱性はカスタムURIスキームを使用して外部プロトコルのハンドラー呼び出しを試みることで、Webサイトがユーザーのシステムに対応アプリがインストールされているかどうかを知ることが可能というものだ。カスタムURIスキームを利用するアプリのリストを生成することで、システムにインストールされた複数の異なるWebブラウザーで共通の識別子を生成できる。FingerprintJSでは影響を受けるブラウザーとしてデスクトップ版のTor Browser/Safari/Chrome/Firefoxを挙げているが、Chrome以外のChromiumベースブラウザーも影響を受けるとみられる。
ChromiumベースのブラウザーではカスタムURIスキーム実行時にダイアログボックスが表示され、ユーザーの意志に反したアプリケーションの起動を防ぐ仕組みが備わっているが、いったん内蔵PDFビューアーを起動するとこの仕組みがバイパスされる問題があるという。これについてはFingerprintJSがバグとして報告している。
FingerprintJSが公開しているデモでは24のアプリケーションに対応するカスタムURIスキームをチェックして24ビットの識別子を生成する。現在のところmacOSとWindowsにのみ対応しており、Linux上では正しく動作しない。
カスタムURIスキームを利用して異なるWebブラウザーにわたりユーザー追跡を可能にする手法 More ログイン