- ファビコン(favicon) キャッシュを利用して、ウェブサイト訪問者に 一意の識別子 を付与する追跡手法であり、ユーザーがキャッシュやクッキーを削除しても識別情報が維持される
- この方式は シークレットモード、VPN、広告ブロッカー を使用している場合でも動作し、ブラウザの再起動やシステムの再起動後も持続する
- ブラウザがファビコンを要求する、あるいはキャッシュから読み込む パターンの組み合わせによって固有の識別番号 を生成する
- Chrome、Firefox、Safari、Edge などの主要ブラウザとモバイルブラウザ がこの脆弱性の影響を受ける
- ブラウザのセキュリティとプライバシー保護の観点から、ファビコンキャッシュ管理の重要性 が浮き彫りになっている
Supercookie の概要
- Supercookie は ファビコンキャッシュ(F-Cache) を利用してユーザーを識別する技術
- ファビコンはウェブサイトの小さなアイコンで、ブラウザのアドレスバーやブックマークリストに表示される
- ブラウザはファビコンをすばやく表示するため、別個のローカルデータベース(F-Cache)に保存する
- F-Cache には 訪問 URL、ファビコン ID、TTL(有効期間) の情報が含まれる
- この構造を悪用すると、特定 URL パスごとのファビコン要求の有無を組み合わせて 固有のブラウザパターン を生成できる
脅威モデル
- ウェブサーバーは、ブラウザがファビコンを新たに要求するかどうかによって 以前に訪問したことがあるか を判断できる
- キャッシュにファビコンがなければサーバーに GET リクエストが発生し、あればリクエストは省略される
- 複数のパスにおけるファビコン要求の状態を組み合わせると、ブラウザごとの固有識別番号 を生成できる
- この識別子は、クッキー削除、キャッシュ初期化、VPN 使用、ヘッダー改変などの 既存の追跡防止策の影響を受けない
従来のクッキーとの比較
- 表によれば Supercookie は 100% の識別精度 を持ち、
- シークレットモード検出、キャッシュ・クッキー削除後も持続、複数ウィンドウ間での識別、アンチトラッキングソフトウェアの回避 が可能
- 一方、通常のクッキーはこれらの機能をサポートしない
影響を受けるブラウザ
- Chrome、Safari、Edge、Firefox などの主要ブラウザが脆弱
- Chrome: Windows、macOS、Linux、Android で影響
- Safari: macOS、iOS で影響
- Edge: Windows、macOS、Android で影響
- Firefox: 一部プラットフォームではシークレットモード時に別のフィンガープリントを生成
- Brave: 最新バージョンでは大半がブロックされる
- 以前の Brave(1.14.0)と Firefox(<84.0)はこの攻撃に脆弱
拡張性と性能
- リダイレクト経路数(N)を調整して 2^N 人の固有ユーザー を区別できる
- 区別可能なユーザー数が増えるほど 読み取り・書き込み時間 が増加する
- N の長さを動的に調整して、リダイレクト数を最小化できる
防御方法
- 最も確実な方法は ファビコンキャッシュを完全に無効化するか手動で削除 すること
- Chrome(macOS):
~/Library/Application Support/Google/Chrome/Default/Favicons および Favicons-journal を削除
- Chrome(Windows):
C:\Users\username\AppData\Local\Google\Chrome\User Data\Default を削除
- Safari(macOS):
~/Library/Safari/Favicon Cache の内容を削除
- Edge(macOS):
~/Library/Application Support/Microsoft Edge/Default/Favicon および Favicons-journal を削除
プロジェクトの目的と背景
- このリポジトリは 教育およびデモ用 に作成されており、ファビコンを利用した追跡可能性に関する セキュリティ意識の向上 が目的
- 着想は University of Illinois Chicago の研究論文 と heise.de の記事 に由来する
- プロジェクトには、個人研究の一環として 2日で実装されたデモポータル が含まれる
その他
- 開発者はドイツ出身の20歳の学生で、ソフトウェアデザインおよび IT セキュリティ分野 に関心を持つ
- プロジェクトは GitHub で公開されており、Docker または Node.js 環境 で実行可能
- 関連報道は Vice、Gizmodo、TechRadar、Schneier.com などの主要メディア で取り上げられている
1件のコメント
Hacker Newsの意見
たとえば Reddit で Ars Technica のファビコンが出るような感じ
iOS のアップデート後もそのままで、プロフィールやシークレットモードでもずっと維持されている
強制的に更新するにはシステム時計を数年先に進めなければならない
MacBook で何年もこうなので、もう諦めた
iOS Safari で 1 から 18 までカウンターが進んだ後、再びリダイレクトされる無限ループに陥る
これは望ましくない動作なので、お気に入りを削除するか HTML として保存しておくか悩んでいる
普段はプライベートウィンドウを使うのだが、Little Snitch のおかげでこれに気づいた
qemu + cage + firefox の組み合わせで、終了時にイメージが削除される
速度は遅いが、セキュリティ面では安心できる。コンテナ化も可能だが、ブラウザがホストカーネルにアクセスするのが不安だ
eBPF ポリシーで制御しようとするのも複雑なので、VM で隔離している
たとえば SwiftShader レンダラーやフォント不足のような特徴が検出される
こうしたものをごまかそうとしても、キャンバスノイズ操作のようなものはすぐ見破られる。もし解決策があれば共有してほしい
20秒くらい無駄にした気分だ