Google ChromeにはGoogleだけがアクセスできる隠しAPIがプリインストールされていることが判明、EdgeやBraveなどのChromiumベースのブラウザも同様
JavaScript Registry(JSR)やDenoの開発者であるLuca Casonato氏が、Google純正のウェブブラウザであるGoogle ChromeにはGoogle関連のウェブサイトしかアクセスできないAPIがプリインストールされていると指摘しています。
Casonato氏によると、Google ChromeはすべてのGoogle関連サイトにシステムおよびタブ上でのCPU使用率・GPU使用率・メモリ使用率といった情報への完全なアクセス権限を付与しています。他にも、より詳細なプロセッサ情報へのアクセス権限や、ログを記録するバックチャンネルへのアクセス権限も付与しているそうです。これらを実現するAPIは、他のウェブサイト向けには公開されておらず、Googleが自社サイトでのみ利用しているものであると、Casonato氏は指摘しています。
So, Google Chrome gives all *.google.com sites full access to system / tab CPU usage, GPU usage, and memory usage. It also gives access to detailed processor information, and provides a logging backchannel.
This API is not exposed to other sites - only to *.google.com.— Luca Casonato 🏳 (@lcasdev) 2024年7月9日
「この事実は、ブラウザベンダーが自社のウェブサイトを他のウェブサイトよりも優遇すべきではないという考え方に明らかに違反しているため、興味深いものです。デジタル市場法(DMA)はこの考えを明確に法律で禁止しており、ブラウザベンダーがインターネット上のゲートキーパーとして、すべての人に同じ機能を提供しなければいけないとしています」
This is interesting because it is a clear violation of the idea that browser vendors should not give preference to their websites over anyone elses.
The DMA codifies this idea into law: browser vendors, as gatekeepers of the internet, must give the same capabilities to everyone.— Luca Casonato 🏳 (@lcasdev) 2024年7月9日
「DMAの解釈によっては、Googleの関連ウェブサイトにのみ情報を公開することで、法律違反とみなされる可能性があります。例えば、この機能によりZoomはGoogle Meetと同じCPUデバッグ機能を提供することができないため、不利になります」と述べ、DMAに違反している可能性を示唆しました。
Depending on how you interpret the DMA, this additional exposure of information only to Google properties may be considered a violation of the DMA.
Take for example Zoom - they are now at a disadvantage because they can not provide the same CPU debugging feature as Google Meet.— Luca Casonato 🏳 (@lcasdev) 2024年7月9日
Casonato氏によると、APIはユーザーの手では無効化することができない組み込み型のChrome拡張機能として実装されており、拡張機能パネルにも表示されない模様。ただし、APIのソースコード自体はここからチェック可能です。なお、Casonato氏は「同じ拡張機能が他のChromiumブラウザ(Chromeと同じChromiumをベースとしたウェブブラウザ)に搭載されているかは不明です」と言及しています。
For those interested: this is done through a built-in Chrome extension that can not be disabled, and does not show up in the extensions panel. Source code is here: https://t.co/AlckJdpioC
It is unclear whether the same extension also ships in other Chromium derived browsers.— Luca Casonato 🏳 (@lcasdev) 2024年7月9日
その後の調査で、Microsoft Edgeでは問題の拡張機能がプリインストールされており、Google関連のウェブサイトがCPU・GPU・メモリの使用率などの情報を読み取り可能となっていることが判明。
Update: in Microsoft Edge this capability is also available exclusively to *.google.com domains— Luca Casonato 🏳 (@lcasdev) 2024年7月9日
セキュリティやプライバシーに配慮したウェブブラウザとして知られるBraveも、ChromeやEdgeと同じように拡張機能がプリインストールされていることが明らかになっています。
And for everyone that keeps saying "Use Brave!!!":
Brave also has the same behaviour as Chrome and Edge here. The extension that allows Google to retrieve this information exclusively from *.google.com is also pre-installed in Brave.— Luca Casonato 🏳 (@lcasdev) 2024年7月9日
この拡張機能の存在はインターネット掲示板のHacker News上でも話題になっています。
Google Chrome has an API accesible only from *.google.com | Hacker News
https://news.ycombinator.com/item?id=40918052
問題のAPIは「hangout_services」という名称であることから、2022年に終了してGoogleチャットに移行した「Googleハングアウト」用に開発されたものであることが推測できます。あるユーザーは、「忘れてしまった人のために言っておくと、GoogleハングアウトはWebRTCのベースとなったブラウザ上でビデオ通話が行える最初のアプリケーションでした。このAPIは通常、アプリが取得しないCPU・GPU・メモリの使用状況やハードウェアの詳細情報を取得し、アプリ側に送信します。私の推測では、Googleは今回の騒動に対してAPIを削除することで対応するでしょう。なぜならGoogleハングアウトはすでに廃止された製品だからです。サーバー側のコードがまだこのAPIを利用していたとしても、間違いなく削除できます。恐らく、Chromeチームは複数のウェブサイトでWebRTCのパフォーマンスを独自に監視しているはずだからです」と指摘していますが、別のユーザーは「これは現在進行形でGoogle Meetで使用されているAPIです。Chromeでmeet.google.comの『トラブルシューティング』パネルを開くと、システム全体のCPU使用率レポートがリアルタイムで表示されます」と語り、APIが現在も使用されているものであると言及しました。
一方で、問題のAPIが実装されていないFirefoxでもGoogle Meetが問題なく動作するため、APIが削除されてしまったとしても問題ないという声もあります。Googleで働いていた経験があるというユーザーは、「見せかけだけのために行われたブランド変更に合わせて、古いコードの名前を変更するようなことはないと断言できます。怠惰からではなく、単に価値がゼロでリスクがあるだけだからです」と、APIの名称がサービス移行先のGoogleチャットに合わせたものになっていなかった理由に言及しています。
また、別の自称元Google従業員は、APIを通じてWebRTCの基礎となる知識をGoogleが習得できたのではないかと推測し、「このAPIによってWebRTCの実現が早まったのではないかと思います。私が何かを見逃していない限り、このAPIは2008年からデータを収集していました。これに対して、WebRTCの初版がリリースされたのは2011年のことです」と語っています。
07/11 19:00
GIGAZINE