Google Chrome extensions can be fingerprinted to track you online
2022/06/19 BleepingComputer — ある研究者が、ユーザーの追跡を可能にするフィンガープリントを、ユーザーのデバイスにインストールされている Google Chrome のエクステンションから取得する Web サイトを公開した。 Web 上のユーザーの追跡を可能にするフィンガープリントは、つまり追跡用ハッシュは、Web サイトにアクセスするデバイスの、さまざまな特性をベースに生成される。このデバイスの特性には、GPUの性能/インストールされている Windows アプリケーション/デバイスの画面解像度/ハードウェア構成/インストールされているフォントなどが含まれる。さらに、同じ方式を使用して、複数のサイトでデバイスを追跡することも可能になる。
Chrome エクステンションからフィンガープリントを取得
昨日に、Web 開発者である z0ccc は、Google Chrome にインストールされたエクステンションをベースに取得できる、新しいフィンガープリント取得サイト “Extension Fingerprints“ を公開した。
Chrome のエクステンションを作成する際に、特定のアセットを Web Accessible Resources として宣言することで、Web ページや他のエクステンションからのアクセスが可能になる。通常、これらのリソースは画像ファイルであり、ブラウザ拡張機能のマニフェスト・ファイルで ‘web_accessible_resources’ プロパティを使用して宣言される。
Web Accessible Resources の宣言例は以下の通りである:
"web_accessible_resources": [
{
"resources": [ "logo.png" ],
"matches": [ "https://www.bleepingcomputer.com/*" ]
}
],
2019年にも公開されたように、Web アクセスが可能なリソースを使用して、インストールされているエクステンションをチェックし、見つかったエクステンションの組み合わせに基づき、訪問者のブラウザのフィンガープリント (追跡用ハッシュ) を取得ができる。
Z0ccc によると、一部のエクステンションでは、この検出を防ぐために Web Resource にアクセスする際にシークレット・トークンを使用している。しかし、彼は、インストールされているエクステンションの検出を可能にるする、リソースのタイミング比較方法を発見した。
z0ccc は Extension Fingerprints の GitHub ページで、「保護されたエクステンションリソースは、インストールされていないエクステンションのリソースと比べて、フェッチに時間がかかる。そのタイミングの違いを比較することで、保護されたエクステンションのインストールの有無を正確に判断できる」と説明している。
z0ccc は、このフィンガープリント取得の手法を説明するために、Google Chrome Web Store で入手可能な 1,170 の一般的なエクステンションにおける、Web アクセス可能なリソースの存在を訪問者のブラウザでチェックする、Extension Fingerprints Website を作成した。
このサイトが特定する拡張機能は、uBlock/LastPass/Adobe Acrobat/Honey/Grammarly/Rakuten/ColorZilla などである。
この Web サイトは、以下に示すように、インストールされているエクステンションの組み合わせに基づき、個々のブラウザを追跡するために使用できる追跡ハッシュを取得する。

Source: BleepingComputer
MetaMask のような人気のエクステンションはリソースを公開していないが、z0ccc は “typeof window.ethereum equals undefined” をチェックすることで、それらのインストールの有無を特定する。
つまり、エクステンションがインストールされていなければ、それらの Chrome は同じフィンガープリントを持つため、追跡の役には立たない。しかし、多くのエクステンションを持つものは、Web 上で追跡可能な、独自のフィンガープリントを持つことになる。さらに、フィンガープリント・モデルに他の特性を加えることで、そのフィンガープリントをさらに洗練させ、ユーザーごとのユニークなハッシュを手に入れられる。
z0ccc は BleepingComputer へのメールで、「フィンガープリントの悪用を試みる驚異アクターたちにとって、有効な選択肢となるのは間違いない。特に ‘fetching web accessible resources’ メソッドを用いて得られた情報を、他のユーザー・データ (ユーザーエージェント/タイムゾーンなど) と組み合わせることで、ユーザーの特定が非常に簡単になる」と説明している。
この Extensions Fingerprints Website は、Chrome Web ストアからエクステンションをインストールしている、Chromium ブラウザに対してのみ機能する。Microsoft Edge でも機能するが、Microsoft の拡張機能ストアから得られる、拡張機能 ID を使用するよう変更する必要がある。
Firefox の拡張機能 ID はブラウザのインスタンスごとに一意であるため、この方法 はMozilla Firefox のアドオンでは機能しない。
最もインストールされている uBlock
z0ccc は、このサイトが検知したエクステンションに関するデータを収集していないが、彼自身のテストにおいては、それらのエクステンションの中で最も一般的なのは、uBlock フィンガープリントであると示唆している。
z0ccc は、「圧倒的に多いのは、エクステンションがインストールされていないブラウザであるだ。以前にも述べたように、検知されたエクステンションのデータは収集していないが、私自身のテストでは、ublock だけがインストールされていることが、最も一般的なエクステンション・フィンガープリントであるようだ。3つ以上の検出可能なエクステンションをインストールすると、そのユーザーのフィンガープリントは極めてユニークなものになる」と述べている。
以下は、BleepingComputer が実施したテストの結果である。人気のエクステンションをインストールしていたユーザーの割合が分かるようになっている。
- 58.248%:拡張機能がインストールされていない、または有効になっていない
- 2.065%:デフォルトでインストールされている Google Docs Offline のみ
- 0.528%:uBlock Origin + Google Docs Offline
- 0.238%:AdBlock + Google Docs Offline
- 0.141%:Adobe Acrobat + Google Docs Offline
- 0.122%:Google Translate + Google Docs Offline
- 0.019%:Malwarebytes Browser Guard
- 0.058%:Grammarly + Google Docs Offline
- 0.058%:LastPass + Google Docs Offline
- 0.051%:Honey + Google Docs Offline
- 0.013%:ColorZilla + Google Docs Offline
私たちのテストでは、3〜4個のエクステンションがインストールされると、同じエクステンションを使用するユーザーの割合は、0.006% にまで低下した。明らかに、インストールされた拡張機能が多ければ多いほど、同じ組み合わせをインストールしている人は少なくなる。
z0ccc は、「0.006% という割合は、その組み合わせのエクステンションを持つ、唯一のユーザーであることを示すと思われる。しかし、より多くの人々が、このサイトを訪れることで変化していくだろう」と述べている。
Extension Fingerprints は、オープンソースの React プロジェクトとして GitHub で公開されており、あなたがインストールしているエクステンションの有無を、誰もが確認できるようになっている。
原題でもフィンガープリントという言葉が使われていたので、そのまま訳しましたが、指紋データのことではなく、インストールされているエクステンションの組み合わせから、それぞれのユーザーを追跡するためのハッシュが得られるという話でした。そして、このハッシュと他の情報を組み合わせると、さらに綿密な追跡が可能になるという、とても怖い話です。この記事を訳しながら、Extension Fingerprints を試してみたら、0.002% という結果が出てしまい、ちょっとビビっています。

You must be logged in to post a comment.