株式会社TIMEWELLの濱本 隆太です。
「AliExpressのページを開くと、スマートフォンで聴いていた音楽が止まる」
2026年8月20日、ある技術者がこの現象を追跡した記録を公開しました1。原因を掘っていくと、**Web Audio API を使った端末識別(音声フィンガープリンティング)**が動いていた、という話です。同じ日にFirefoxの開発者も技術的な分析を公開しています2。
この件、日本語で紹介される際に3つの点が誤って伝わりがちなので、先に整理しておきます。
1つ目。超音波ではありません。 「音を使った追跡」というと、人間に聞こえない超音波ビーコンで端末間を紐づける手法(uXDT)を思い浮かべる方が多いのですが、今回のものは別物です。
2つ目。マイクは使っていません。 使われているのは音声の出力側だけです。会話が拾われているわけではありません。ここを混同すると、対策の方向を誤ります。
3つ目。規制当局が摘発したわけではありません。 個人の技術者が症状を追い、ブラウザ開発者が分析した、という経緯です。行政処分や法的な判断が出たという話ではありません。
そのうえで、仕組みとしては十分に興味深く、対策の価値もある話です。詳しく見ていきます。
この記事の要点
- 症状は「AliExpressのタブを開くとBluetoothヘッドホンでスマホの音楽が止まる」。タブをミュートしても直らない
- 原因は、音量ゼロのまま音声出力先に接続するスクリプト。音は鳴らないが音声経路が占有される
- 目的は端末の識別。同じ計算をさせても、CPUやブラウザによって浮動小数点の結果がわずかに違う。その差を指紋にする
- マイクは使っていない。 出力側だけの話
- 併せて canvas、WebGL、画面サイズ、デバイスメモリ、プラグイン、WebRTC、パフォーマンス計測なども収集していたとされる
- Firefoxは2023年のバージョン118で対策済み。 出力値を一定化し、99.24%の利用者が3つの値のいずれかに収まる
- 対策はブラウザの選択とスクリプトのブロック。ただし音声だけ塞いでも追跡全体は止まらない
- 日本では電気通信事業法の外部送信規律(2023年6月16日施行)が関係する。オンラインショッピングモールは適用対象
何が起きたのか
症状
発見者が最初に気づいたのは、次の状況でした1。
- マルチポイント接続のBluetoothヘッドホンを、PCとスマートフォンの両方に接続している
- スマートフォンで音楽を再生している
- PCのFirefoxまたはChromeでAliExpressを開くと、スマートフォンの音楽が止まる
- AliExpressのタブを閉じると、すぐに戻る
- タブをミュートしても解決しない
- ページ上で動画などが再生されているわけでもない
「マルチポイント」は、ヘッドホンが2台の機器に同時に接続でき、音が出たほうへ自動的に切り替わる機能です。便利な反面、「音が出ている」と機器が判断した側が優先されるため、今回のような形で表面化しました。
診断
発見者は、通常のメディア要素や再生の呼び出しが見当たらないことを確認したうえで、AudioContext のコンストラクタに計測を仕込んで、Web Audio API の使用状況を監視しました1。
すると、2つの AudioContext オブジェクトが密かに生成され、running 状態に入り、ノードが音声出力先に接続されていることが分かりました。
見つかったもの
原因は、難読化された2つのスクリプトでした1。
| スクリプト | 配信元 |
|---|---|
collina.js |
assets.aliexpress-media.com/g/AWSC/uab/1.140.0/ |
fireyejs.js |
assets.aliexpress-media.com/g/AWSC/fireyejs/1.231.67/ |
これらが構成していた音声グラフが、この件の核心です。
Sawtooth oscillator → AnalyserNode → ScriptProcessorNode → GainNode(gain = 0)→ AudioContext.destination
日本語にすると、こうなります。
- のこぎり波の発振器で音を作る
- アナライザーノードで周波数成分を解析する
- スクリプトプロセッサノードで信号を処理する
- ゲインノードで音量をゼロにする
- それを音声の出力先に接続する
4番目で音量をゼロにしているので、人には何も聞こえません。 ところが5番目で出力先に接続しているため、OSから見ると「このアプリは音を出している」状態になります。
これがBluetoothの切り替えを狂わせた原因です。音は鳴っていないのに、音声経路は占有されている。 タブのミュートが効かないのは、ミュートが「聞こえる音」を止める機能であって、音声経路の占有そのものは解除しないからです。
副作用として表面化したから見つかったというのが、この話の面白いところです。ヘッドホンがマルチポイント対応でなければ、誰も気づかなかった可能性が高い。
AIセキュリティ研修を、本気で
OWASP・NIST・ISO 42001・経産省ガイドライン全準拠の2日間集中講座。経営層と現場で分けて受講できます。
なぜ音で端末が識別できるのか
ここが理解の山場なので、丁寧に説明します。
同じ計算をしても、答えが微妙に違う
コンピュータは小数の計算を浮動小数点数という形式で行います。この計算には、必ずわずかな誤差が出ます。
そして重要なのは、その誤差の出方が、CPUの種類やブラウザの実装によって微妙に違うという点です。同じ音声処理をさせても、返ってくる数値の下の桁がわずかに異なります。
この「わずかな違い」を集めると、端末をかなり細かく区別できます。 音を鳴らす必要はなく、内部で音声処理を実行し、その計算結果の数値を読み出すだけで成立します。
なぜクッキーではなくこれなのか
クッキーは削除できますし、ブラウザ側で拒否もできます。フィンガープリンティングは、端末そのものの特性から識別子を作るので、削除するものがありません。シークレットモードでも基本的に同じ値になります。
だから追跡する側にとって価値があり、される側にとって厄介なわけです。
音声だけではなかった
今回のスクリプトは、音声以外にも幅広く情報を集めていたとされています1。
- canvas のレンダリング結果(同じ図形を描かせても、GPUやドライバで微妙に違う)
- WebGL の情報
- 画面のサイズ
- デバイスメモリ
- ブラウザのプラグイン
- WebRTC の挙動
- パフォーマンス計測
フィンガープリンティングは、単独の要素ではなく組み合わせで精度を上げる手法です。ひとつひとつは大した情報でなくても、10個20個と重ねれば、かなりの確度で個体を特定できます。
ここは対策を考えるうえで重要です。 音声だけを塞いでも、他の経路は残ります。
Firefoxは3年前に手を打っていた
Firefoxの開発者である Tom Ritter 氏が、同じ2026年8月20日に技術的な分析を公開しています2。要点はこうです。
Firefox 118(2023年)のフィンガープリンティング防止機能で、Web Audio の出力値を一定化する対策が入っています。
その結果がこの数字です。
99.24%の利用者が、3つの値のいずれかに属する
つまり、大多数の利用者から同じ値しか取れないようになっています。指紋として使うには、値がばらけていなければ意味がありません。3種類しかないなら、識別子としてはほぼ役に立ちません。
残っている3つの差は、CPUのアーキテクチャに由来するものだと説明されています。
| 分類 | 内容 |
|---|---|
| 1 | FMAなしの x86 / x64 |
| 2 | FMA3ありの x64 |
| 3 | ARM NEON |
FMA(積和演算)の実装差が結果に出る、という話です。ハードウェアの根本的な違いなので、ここまでは潰しきれない。 ただ3分類なら、識別子としての価値はほとんどありません。
同氏は、プライバシー重視のブラウザにおいてはWeb Audioフィンガープリンティングはほぼ無意味である一方、ブラウザフィンガープリンティング全般としては依然として有効である、と結論づけています。
この整理は正確だと思います。 「Firefoxを使えば追跡されない」ではありません。「この手口はFirefoxには効かない」です。
対策
ここからが実務です。立場別に整理します。
個人がやること
1. ブラウザのフィンガープリンティング防止を有効にする
Firefoxを使っている場合、フィンガープリンティング防止機能が有効なら、Web Audio については前述のとおり一定化されます。設定の「プライバシーとセキュリティ」から強化型トラッキング防止の水準を確認してください。
Tor Browser はより徹底した対策を持っています。Brave も同種の防御(値をわずかにランダム化する方式)を実装しています。
2. コンテンツブロッカーで該当スクリプトを止める
発見者は uBlock Origin で次のルールを追加し、AudioContext の生成そのものを止めています1。
||assets.aliexpress-media.com/g/AWSC/uab/*/collina.js$script,domain=aliexpress.com
||assets.aliexpress-media.com/g/AWSC/fireyejs/*/fireyejs.js$script,domain=aliexpress.com
これでBluetoothの挙動も正常に戻ったとのことです。
ただし注意点があります。 スクリプトのパスにはバージョン番号が含まれており、ルールでは * で吸収しています。配信元のパス構成が変われば、ルールは効かなくなります。 恒久的な対策としては、次に挙げるブラウザ側の防御のほうが確実です。
3. 症状だけを止めたい場合
「追跡はさておき、音楽が止まるのが困る」という場合、そのサイトを開いているタブを閉じるのが最も確実です。ミュートは効きません。ヘッドホン側でマルチポイントを一時的に切る、という回避策もあります。
組織(情報システム部門)がやること
企業として考えるなら、視点が変わります。業務端末が外部サイトで一意に識別されることをどう扱うか、という問題です。
1. ブラウザポリシーで防御を統一する
個々の従業員の設定任せにせず、管理者ポリシーでフィンガープリンティング防止を有効化します。Firefox には Enterprise Policy、Chrome には Group Policy / Cloud Management があります。「各自で入れてください」は運用として成立しません。
2. 拡張機能を配布する
コンテンツブロッカーを個人任せにせず、許可リスト方式で組織配布します。従業員が勝手に拡張機能を入れられる状態のほうが、別のリスクになります。
3. 業務端末で不要なサイトを開かせない
身も蓋もありませんが、業務に不要なECサイトを業務端末で開く必要は、多くの場合ありません。 URLフィルタリングで整理するのが最も効きます。
4. 「音が出ていないのに音声デバイスが使われている」を検知できるようにしておく
今回の件は、副作用が出たから見つかりました。 副作用が出なければ誰も気づきません。逆に言えば、端末の挙動の異常(音声デバイスの意図しない占有、CPU使用率の不自然な上昇)を拾える仕組みがあると、この種のものに気づける可能性が上がります。
5. 過度に反応しない
これも書いておきます。フィンガープリンティング自体は、広告・不正防止の両方の文脈で広く使われている技術です。今回名前が挙がったスクリプトのうち、少なくとも一方は不正検知の文脈で使われるものとみられます。「追跡=悪意」と短絡すると、判断を誤ります。
問題は技術そのものというより、利用者が把握できない形で行われること、そして今回のように副作用が出ていることにあります。
日本の法制度ではどう扱われるか
日本の読者向けに、制度面も押さえておきます。
2022年6月に改正された電気通信事業法に、外部送信規律が設けられました。施行は2023年6月16日です3。
内容はこうです。
電気通信事業を営む者(ウェブサイト運営者、アプリケーション提供者等)は、利用者の端末に外部送信を指示するプログラムを送る際は、あらかじめ、送信される利用者に関する情報の内容等を、通知・公表(利用者が容易に知り得る状態に置く)等しなければならない
クッキーに限らず、「タグや情報収集モジュールを使って利用者に関する情報を外部に送信する場合」が対象です。フィンガープリンティングで取得した情報の外部送信も、この考え方の射程に入ります。
そして適用対象について、総務省はこう説明しています3。
オンラインショッピングモールのような、インターネット経由で複数の店舗でネットショッピングを行うことができる又は複数の出品者の商品等を購入できる「場」を提供するサービスは「電気通信事業」に該当し、さらに、「利用者の利益に及ぼす影響が少なくない電気通信役務」にも該当するため、外部送信規律が適用されます
つまり、この種のサービスは日本の利用者に対して通知・公表の義務を負う立場にあります。
念のため書いておきますが、私は今回の件について、特定の事業者がこの規律に違反したと述べているわけではありません。 通知・公表が適切に行われているかは、各社の公表内容を確認する必要がありますし、行政の判断が示されたわけでもありません。
利用者としてできるのは、サービスの「外部送信に関する公表」を実際に読むことです。多くのサイトはプライバシーポリシーとは別に、外部送信する情報の一覧を公表しています。何が送られているのかは、そこに書かれているはずです。
この件から学べること
1. 「見えない処理」は副作用で見つかる
今回、発見のきっかけは音楽が止まったことでした。プライバシー侵害を検知したのではなく、不便に気づいたわけです。
裏を返せば、副作用のない実装であれば、誰にも気づかれないまま動き続けます。 これはこの件に限らず、クライアント側で動くコード全般に言えることです。
2. ブラウザ側の防御は実際に効いている
Firefox が3年前に入れた対策が、今回そのまま効きました。利用者が何もしなくても防げていたわけです。
「プライバシー保護機能」は抽象的に語られがちですが、具体的な手口に対して具体的に効いているという事例は貴重だと思います。
3. 単体の対策では足りない
繰り返しますが、音声を塞いでも canvas も WebGL も残ります。フィンガープリンティングは総合戦です。ひとつ塞いだことで安心するのが、いちばん危ない。
まとめ
- AliExpressのページで、音量ゼロのまま音声出力先に接続するスクリプトが動いていた。音は鳴らないが音声経路が占有され、Bluetoothマルチポイントの切り替えが壊れた
- 目的は端末の識別。浮動小数点計算の微妙な差を指紋にする手法で、マイクは使っていない
- 超音波ビーコンとは別の技術であり、規制当局の摘発でもない
- canvas、WebGL、画面サイズ、デバイスメモリなども併せて収集していたとされる
- Firefox 118(2023年)で対策済み。 99.24%の利用者が3つの値に収まり、指紋として機能しない
- 個人の対策はブラウザの防御機能とスクリプトのブロック。ブロックルールはパス変更に弱い
- 組織はポリシーで統一し、個人設定任せにしない
- 日本では電気通信事業法の外部送信規律(2023年6月16日施行)が関係し、オンラインショッピングモールは適用対象
私たちは日ごろ、AIとセキュリティの実装を扱っています。この件で印象に残ったのは、「悪意があるかどうか」より前に、「利用者に何が起きているかが見えるかどうか」が問題になっているという点でした。
音量ゼロで音を出す実装は、おそらく「聞こえないから無害」という判断だったのだと思います。しかし利用者の環境では、実際に不便が起きていました。 見えないところで動くコードを書くときに、この視点は持っておきたいと考えています。
Footnotes
-
laserphile「AliExpress webpage keeping multipoint bluetooth headphones from playing phone audio」(2026年8月20日). https://blog.laserphile.com/2026/08/aliexpress-webpage-keeping-multipoint.html ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Tom Ritter「WebAudio Fingerprinting and Alibaba」(2026年8月20日). https://ritter.vg/blog-webaudio_alibaba.html ↩ ↩2
-
総務省「自分に関する情報が第三者に送信される場合、自身で確認できるようになります。」(外部送信規律). https://www.soumu.go.jp/main_sosiki/joho_tsusin/d_syohi/gaibusoushin_kiritsu.html ↩ ↩2






