開発者のMatt Callaghan氏は、Alibabaがオーディオフィンガープリンティングに脆弱なブラウザを通じて音を再生し、ウェブユーザーを追跡しようとしていたと主張しています。
このソフトウェアエンジニアは、Alibabaのウェブサイトを訪問するたびにBluetoothヘッドホンの音楽再生が止まってしまう原因を調査した後、先週末にこの問題への注目を集めました。
「最近、Bluetoothヘッドホンで奇妙な問題に遭遇しました」とCallaghan氏は記しています。「このヘッドホンはマルチポイントBluetoothオーディオに対応しているため、PCとスマートフォンに同時接続できます。通常はPCが優先的にオーディオを再生し、PC側で何も再生していないときにスマートフォンが音を再生できる仕組みです。
「普段はスマートフォンで音楽を聴いていて、PC側で通知音やYouTubeが再生されていても問題なく動作するのですが、FirefoxやChromeでAliExpressのページを開くと様子が変わります。
「AliExpressのホームページを読み込んだ直後、スマートフォンからの音声再生が止まってしまいます。AliExpressのタブを閉じるとすぐに直ります。タブやFirefox、Windows側でミュートしても効果はなく、ページ上には音楽や動画など目に見えるメディアは何も再生されていません」
Callaghan氏は隠れた通常のメディア要素がないか探しましたが、何も見つかりませんでした。さらに調査を進めると、Alibabaのブラウザセキュリティおよび不正利用防止ツール内に、「極めて難読化された」2つのオーディオスクリプトが存在することが判明しました。
同氏によると、これらのスクリプトは波形を生成するノコギリ波オシレーター、その波形がブラウザのオーディオ実装を通過した後の結果を測定するアナライザー、そして関連する周波数データを読み取るスクリプトから成るWebAudioグラフを構築していたといいます。
これらのスクリプトはオーディオのゲインをゼロに設定しているため、エンドユーザーには何も聞こえませんが、WebAudioグラフ自体はブラウザによって処理され続けます。
「これは自動再生される動画とは大きく異なります」とCallaghan氏は述べています。「通常のタブミュート機能が停止できるようなメディア要素は存在しません。ページ側から見れば、これはリアルタイムのオーディオ処理を行っているにすぎないのです。
「私のケースでは、これによってFirefoxまたはWindowsがBluetoothオーディオ経路をアクティブなままにしてしまい、マルチポイント対応のヘッドホンがスマートフォン側へスムーズに切り替わらなくなったようです」
Callaghan氏はさらに調査を進め、Alibabaのコード内で画面サイズ、デバイスメモリ、ブラウザのプラグイン、WebGLレンダリング、マウスイベントなどに関連するデータが収集されていることも確認しました。
Alibabaがデータを暗号化し、自社のテレメトリーサービスに送信している形跡もあり、同氏はこれらすべてを合わせると「かなり包括的なブラウザ・デバイスフィンガープリント」になると指摘しています。
The Register はAlibabaにコメントを求めています。
Callaghan氏はFirefoxとChromeの両方でこの問題を確実に再現できたと述べていますが、Firefoxは自社のアンチフィンガープリンティング技術がAlibabaの追跡手法を無効化しているとX上で声明を出しています。
この声明はFirefoxチームのセキュリティエンジニアであるTom Ritter氏のブログ記事を引用しており、同氏はバージョン118(2023年9月)以降に導入された保護機能によって、WebAudioを利用したフィンガープリンティングの有効性が失われたと説明しています。
これらの保護機能は、フィンガープリンティングの試み自体を発生源で封じ込めるようには設計されていません。その代わりに、すべてのユーザーを一つにまとめ、フィンガープリンティングされたユーザー全員が同一に見えるようにすることで、追跡の試みを実質的に無効化する仕組みです。
ユーザーの99.24%は、ハードウェアの種類によって区分される3つの「バケット」(ユーザー分類)のいずれかに該当します。 その大多数はバケット1とバケット2に集中しています。
-
バケット1: FMA(Fused Multiply-Add)命令を持たないx86/x64 CPU
-
バケット2: FMA命令を持つx64 CPU
Firefoxのデータによると、残る0.76%についてはフィンガープリンティングスクリプトが完全に失敗したとのことです。
しかしRitter氏によれば、世界中で48人のユーザーは、この3つのバケットにも、スクリプトの実行が許可されなかった0.76%にも該当しないといいます。この48人のユーザーは他の23の極小バケットに分散しており、これは他の大多数のユーザーのようにひとまとめにされないことを意味します。つまり、この非常に少数のユーザー群に対してはフィンガープリンティングがより有効に機能してしまうということです。
「これは非常に残念なことです。こうしたユーザーは完全にユニークな存在になってしまうからです。ただ、これ自体はさほど珍しいことでもありません。コンピューターというものは奇妙な挙動をするものであり、こうした結果は不良なRAMやCPUのバグ、あるいは何か風変わりなアーキテクチャ(LoongArchとか?)によって引き起こされた可能性もあります」とRitter氏は述べています。
「とはいえ結局のところ、WebAudioフィンガープリンティングはほぼ無用の長物です。ブラウザフィンガープリンティングがウェブサイトから完全に姿を消すとは思っていません(何らかの規制措置が講じられない限りは、そうなってほしいものですが)。ウェブ上の大多数のユーザーに対しては依然として有効に機能し続けるでしょうが、少なくともプライバシー重視のブラウザにおいては、その効果は大幅に薄れるはずです」
同名のプライバシー重視ブラウザを開発するBraveも、Calalghan氏の調査結果に対してX上で反応を示し、自社は6年間にわたりユーザーをフィンガープリンティングから保護してきたと述べています。「Braveはブラウザの出力にランダムなデータを注入することで、サイトごとに異なるフィンガープリントを表示させています。このフィンガープリントはセッションをまたぐたびにリセットされます。
「さらなる保護として、前述の追跡手法でAliExpressが使用している特定のスクリプトもブロックしています。これもまた、すべてのBraveユーザーに対してデフォルトで適用されています。この種のオーディオフィンガープリンティングから保護されるために、設定を変更する必要はありません」
Ritter氏は、ChromeとSafariには「おそらくこの種のフィンガープリンティングに対する防御策があるだろう」と述べています。
SafariはAdvanced Tracking and Fingerprinting Protectionを導入し、WebAudioを利用した追跡やその他のフィンガープリンティング手法を防いでいます。ただしその仕組みはFirefoxとは異なり、全ユーザーを同一のバケットにまとめようとするのではなく、オーディオバッファにエラーを注入する方式を採っています。
一方でChromeは、プライバシーコンサルタントのAlexander Hanff氏が今年先に述べたように、フィンガープリンティングからユーザーを積極的には保護していません。
「あなたが今この文章を読んでいるまさにこの瞬間にも、Chrome上で機能する明確なフィンガープリンティング手法が少なくとも30種類存在します」と同氏は記しています。
「これらは学術論文に登場するような、実験室的な条件下でのみ機能する理論上の攻撃ではありません。何百万ものウェブサイトで実際に運用されており、あなたの知らないうちに、そして同意なしにあなたを識別・追跡するための、現実の手法なのです」 ®