Twitchの拡張機能でOAuthトークンが流出、利用者3万人に影響

Socketの研究者によると、Chromeユーザー約3万人が利用しているTwitchのブラウザ拡張機能が、OAuth認証トークンを開発者が管理するインフラに送信していたことが判明しました。

この拡張機能「Twitch Enhanced Viewer | JeetBot」は、公式のChromeおよびFirefoxストアで提供されており、高画質再生、広告ブロック、チャンネルポイントの自動収集といった機能を売りにしています。

Socketによれば、この拡張機能は認証済みのTwitchセッションからOAuthトークンを抽出し、開発者が管理するプロキシサーバー経由で送信するリクエストに付加できる仕組みになっていました。これにより、受信側のインフラがユーザーのアカウントに紐づく権限を持ちうる状態になっていたといいます。

Socketによると、この拡張機能は意図通りに動作しており、公開時点でも両ストアで引き続き提供されています。

一見しただけでは、どちらの拡張機能も新規にアップロードされたものや不審なものには見えませんでした。The Hacker Newsによると、Chrome版(識別子:pnhhdhhcadcjfckjhpmjneldiegbojfb)は2025年6月26日から、Firefox版(識別子:[email protected])は2025年7月7日から公開されていました。 

Chrome版の利用者数は約3万人、Firefox版は552人となっており、新しく公開された拡張機能というよりは、すでに定着したTwitch向けツールのように見える状態でした。

この拡張機能は、制限地域でも1080p再生などの機能を提供するため、プレイリストのリクエストをJeetBotが管理するプロキシサーバー経由でルーティングしていました。拡張機能はブラウザ内でTwitchのデータにアクセスでき、ユーザーがすでに認証済みのTwitchセッションに紐づくOAuthトークンを取得したうえで、そのトークンをプロキシ経由のリクエストに付加していました。

セキュリティ上の懸念は、拡張機能が謳っている機能に必要なアクセス権限と、実際に送信されていた認証情報との間に乖離がある点にあります。Socketによると、このトークンを保有していればTwitchアカウントへの読み取り・書き込みアクセスが可能になるため、トークンが流出することで、受信側のインフラは単なる映像ストリーム以上のアカウントレベルの権限を得ることになっていました。

実装上の注目すべき点として、この拡張機能にはロシアの10チャンネルに関して、ユーザーのOAuthトークンを転送しなくて済む別の回避策が用意されていました。この例外が設けられた理由については、これまでに報じられている情報では説明されておらず、裏付けとなる証拠がない以上、特定の意図によるものと決めつけるべきではありません。

The Hacker Newsによると、開発者は当該拡張機能が悪意あるものだとする主張に反論しており、ユーザーのOAuthトークンを転送することのセキュリティ上の問題を認識した後、以前のバージョンでその機能を削除したと説明しています。ただし、すでに送信済みのトークンは、拡張機能を更新したからといって自動的に無効化されるわけではありません。

今回の事案から得られる教訓

Twitch Enhanced Viewer | JeetBotをインストールしていた人にとって、当面の懸念は拡張機能がまだ公開されているかどうかではなく、稼働中にOAuthトークンが送信されていたかどうかです。 

有効なトークンがあれば、ユーザーのTwitchパスワードを知らなくても、アカウント保有者として振る舞ったリクエストを送信できてしまいます。そのため、拡張機能を更新・削除することは流出元への対処にはなりますが、それだけでは端末からすでに流出してしまった可能性のある認証情報を無効化することにはなりません。

したがって、Twitchユーザーはアクティブなセッションを取り消すか更新したうえで、見覚えのないメッセージやチャット活動、設定変更など、自分が行っていない操作がないかアカウントの最近のアクティビティを確認すべきです。 

Twitch Enhanced Viewer | JeetBotをインストールしていたユーザーは、拡張機能を削除または更新し、アカウントに見覚えのないアクティビティがないか確認したうえで、流出した可能性のある認証情報を無効化すべきです。

拡張機能を削除したり、ブラウザのデータを消去したりするだけでは、すでに送信済みのOAuthトークンを取り消せるとは限りません。ユーザーはTwitchの公式アカウントセキュリティガイダンスに従って、連携アプリケーションやアクティブな認可を取り消し、推奨されている場合はパスワードの変更も検討すべきです。

しかし今回の事案は、開発者側の自己申告による開示情報に依存することの、もう一つの見えにくい問題も浮き彫りにしています。

Socketによると、この拡張機能が申告していたデータの取り扱い方針は、研究者が実際に観測した挙動と一致していませんでした。これは、プライバシーラベルやデータ収集に関する申告内容を額面通りに信用すべきではないことを示しています。 

拡張機能をインストールする前にこうした開示情報を確認すること自体は、引き続き重要です。ただしそれに加えて、要求される権限の内容、その機能に本当にその権限が必要かどうか、背後でサービスを運営しているのは誰か、更新頻度はどの程度かといった点も確認すべきです。

今回の事案は、ブラウザ拡張機能をめぐるより広範なセキュリティ上の問題も浮き彫りにしています。公式ストアへの掲載、長期にわたる公開履歴、開発者による自己申告のプライバシー開示情報があっても、インストール後に実際に何が行われるかまでは示されず、見かけ上の信頼感が生まれてしまうことがあるのです。

セキュリティチームは、ブラウザ拡張機能に付与されている権限、それらの拡張機能が通信する外部ドメイン、そして従業員が本当にその権限を必要としているかどうかを確認すべきです。認証済みセッションとやり取りできるツールについては、認証情報の流出を単なるブラウザの問題としてではなく、サードパーティによるアクセスのリスクとして扱う必要があります。

関連ニュース: 日本政府は、内部データが流出した政府ネットワークへの侵害を調査中であり、APAC地域全体で公共部門のシステムを狙う攻撃への懸念が高まっています。

翻訳元: https://www.esecurityplanet.com/threats/news-twitch-extension-oauth-token-exposure/

本記事は esecurityplanet.com の記事を翻訳・要約したものです。