悪意あるTwitch拡張機能、3万人のOAuthトークンをロシア語ボットサービスに流出

Twitch向け機能拡張ツールとして提供されているブラウザ拡張機能が、3万人以上のユーザーが持つ有効なOAuthセッショントークンを、ロシア語ボットサービスに関連するプロキシインフラへ転送していたことが判明しました。

Socket社の脅威リサーチチームは、この拡張機能「Twitch Enhanced Viewer | JeetBot」をChromeウェブストアとFirefoxアドオンの両方で確認しました。

拡張機能IDpnhhdhhcadcjfckjhpmjneldiegbojfbで識別されるChrome版のユーザー数は約3万人に上り、Firefox版にもさらに552人のユーザーがいました。

この拡張機能は、広告ブロック、1080p配信の強制、地域制限のあるストリームの解除、チャンネルポイントの自動収集といった、Twitch視聴者にとって魅力的な機能を謳っています。

しかし、その通信経路の仕組みは、動画再生に必要な範囲をはるかに超える、極めて機微な認証情報を外部に流出させるものでした。この拡張機能のコンテンツスクリプトは、Twitchのウェブクライアントが使用するAuthorizationヘッダーとTwitchデバイスIDを取得し、それらの値をバックグラウンドプロセスに渡します。

バックグラウンド側のロジックはヘッダーのプレフィックスを取り除いて生のOAuthトークンを復元し、Twitchのトークン検証サービスに照会して有効性を確認しています。

Kush Pandya氏の指摘によれば、これはこの拡張機能が、通常Twitchの動画URLに含まれる範囲の限定的なストリーム再生用トークンだけでなく、アカウント全体に紐づくOAuth認証情報までも処理していることを示しています。

こうしたOAuthトークンはベアラー認証情報として機能する可能性があり、これを入手した者は、パスワードや別途の多要素認証プロンプトを必要とせずに、被害者本人として振る舞えるおそれがあります。

現行の85.xビルドでは、Twitchのusher.ttvnw.netサービスに対する動画プレイリストのリクエストを、JeetBotが管理するプロキシ経由にリダイレクトしています。

このリダイレクトの際、ユーザーのOAuthトークンをデバイスIDやプロキシ設定データとともに、URLのauthクエリパラメータとして付加します。

認証情報をURLに埋め込む行為は特に危険です。URLはWebサーバーのアクセスログやリバースプロキシのログ、監視システム、ブラウザの閲覧履歴、中継経路上のテレメトリなどに残存する可能性があるためです。

影響を受けたユーザーがこの拡張機能を使ってほとんどのTwitchチャンネルを視聴するたびに、この流出が発生します。ただし、拡張機能にはハードコードされた10チャンネルの許可リストがあり、これらはトークン転送の対象から除外されています。

リストに含まれるのは、Counter-Strikeコミュニティに関連するものを含む、ロシア語圏の配信者チャンネルです。

このリストに含まれないチャンネルについては、拡張機能は運営者が管理するプロキシ経由のリクエストにOAuthトークンを付加します。

この例外的な扱いは、開発者が包括的なプライバシー保護策を講じたのではなく、限定されたチャンネル群に対してのみ意図的に別処理を実装したことを示唆しています。

それ以前の4.x系リリースでは、より直接的な収集手法が使われていたとされています。これらのバージョンは、取得したトークンをJeetBotのインフラ上でホストされているset-tokenエンドポイントにJSON形式のPOSTリクエストとして送信し、フォールバック先としてDenoでホストされたサービスも利用していました。

コード内のロシア語コメントには、最後に送信したトークンを記憶する処理や、送信間隔に5秒のクールダウンを設ける処理についての記述がありました。

主要なプロキシドメインであるenhanced[.]jeetbot[.]ccは、Twitch・Kick・VK-Live向けのボットを提供する商用サービス「JeetBot」に関連しています。関連インフラにはext-styles[.]jeetbot[.]ccproxy[.]morphilina[.]me、および複数の代替JeetBotプロキシホストが含まれます。

この拡張機能がマーケットプレイス上で公表していた説明では、ユーザーデータの収集・処理・販売は一切行っていないとされていましたが、実際に観測されたTwitchアカウントの有効なトークンをサードパーティのインフラへ送信する動作とは矛盾しています。

利用者は直ちにこの拡張機能を削除し、有効なTwitchセッションを無効化した上で再認証を行う必要があります。セキュリティチームは、ChromeとFirefox両方の拡張機能IDを調査対象とし、関連ドメインをブロックするとともに、広範なTwitchホスト権限とサードパーティのトラフィックプロキシを組み合わせたブラウザ拡張機能を精査すべきです。

注: 誤ってアクセス・リンク化されるのを防ぐため、IPアドレスおよびドメインは意図的に無効化表記(例: [.])としています。再有効化は、MISP、VirusTotal、自組織のSIEMなど、管理された脅威インテリジェンス基盤上でのみ行ってください

16,000以上の組織から得られる最新のインテリジェンスで、脅威検知率を58%向上。TIフィードを統合し、貴社のSOCを強化しましょう

翻訳元: https://cyberpress.org/malicious-twitch-extension-exposes-30000-users-oauth-tokens/

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