マルウェア化したChrome拡張機能を特定して削除【YouTubeがおかしい】

こんにちは。

パソコンでYouTubeを見ていて、ここ数日変にページがリダイレクトされたり挙動が重くなったりしていることに気づきました。調べていくと、あるChrome拡張機能がマルウェア化していたことが原因だったため、経緯と対応方法を紹介します。

YouTubeの挙動がおかしく

具体的なタイミングは覚えていませんが、数日から1週間くらい前からパソコンのChromeでYouTubeを見ていると変な挙動をするようになりました。例えば次のようなことです。

  • 動画再生画面でコメントを見ようとスクロールしても勝手にページトップにスクロールされる
  • ホーム画面を見ていると急に特定のチャンネルのコミュニティ投稿のページに勝手にリダイレクトされる
    • チャンネル自体はチャンネル登録はしていないもののよく見るチャンネルで怪しさはありませんでした
  • ページタイトルが「動画名 - YouTube」と「動画名- YouTube」の間で勝手に切り替わりちらつく
  • 全体的に動作が重くなる
  • 動画を流し続けているとメモリ不足でタブが強制終了する

YouTubeでしか不具合が起こっていなかったため、YouTube側のバグか、もしくは私が使っているYouTubeの使い勝手を向上する系の拡張機能の不具合かと考えていました。しかし、しばらく経っても解消されないこと、そしてあまりにも動画視聴に影響が出てきたため、不具合の原因を特定しようとしました。また、以前ブラウザハイジャッカーによって不審なリダイレクトが起きる事象を経験していたので、Chrome拡張機能がマルウェア化していることも想定した調査を行いました。

不審な挙動の調査

YouTubeが重くなっている原因は、どうやらページタイトルの頻繁な書き換えでした。上でも書きましたが、タブやウィンドウの表示がちらつく=「動画名 - YouTube」というページタイトルが頻繁に書き換えられているようでした。恐らくどこかでページタイトルを書き換えるような処理が組み込まれているのだろうと考え、この事象をベースに調査を始めました。

Chromeデベロッパーツールで要素にブレークポイント

調査にはChromeのデベロッパーツール(Chrome Devtools)を使いました。私は仕事でWeb開発を行っている人間なのでしょっちゅう使っていますが、ちょっとパソコンが得意な人であれば使ったことがあると思います。

Chromeデベロッパーツールでは、JavaScriptのソースコードに対してブレークポイントを張ることができますが、実はHTML要素に対してブレークポイントを設置することもできます。デベロッパーツールの「要素」タブの特定の要素を右クリックし、「ブレークポイントの位置」を選択します。ここで、要素の中身や属性が変更されたり要素が削除されたりした場合に反応するブレークポイントを設置することができ、その原因となったJavaScriptのコードを特定することができます。

今回はページタイトルが変更されているということで、title要素に対して「サブツリーの変更」のブレークポイントを張りました。すると、document.titlesetIntervalで0.5秒ごとに書き換えている(実際には同じ内容で再代入しているだけ)処理が見つかりました。ブレークポイントで停止した処理はデベロッパーツールの「ソース」タブで見ることができますが、「VM~」と書かれていたので拡張機能の特定のコードというよりはevalで動的に埋め込まれたコードなのかもしれません(このあたり詳しくありません)。

マルウェアによるものと断定

拡張機能に直接含まれているJavaScriptファイルからの実行であれば、「ソース」タブのJSファイルのパスから拡張機能を特定することができます。しかし今回は、「VM~」という形で特定できなかったため、もう少しソースコードを読み込んでみることにしました。

具体的なソースコードは控えますが、先述のページタイトルを書き換える処理のほかに様々な処理が行われていました。難読化されていてはっきりとは読めませんでしたが、何やらYouTubeの視聴履歴ページに対して処理をしているもの、AffiLinkListのような名前の変数に怪しげなドメイン(仮想通貨・暗号資産関連のものなど)の配列を代入しているもの、YouTubeの高評価・低評価ボタンあたりの要素を操作しているものなどがありました。implのようなURLを作っている部分もあったので恐らく何かしらYouTubeの閲覧に関する情報を抜き取っているのだと思います。

YouTubeの画面を操作しているだけであればYouTubeを便利にする拡張機能の不具合という可能性もありましたが、ページタイトルを書き換える処理が拡張機能そのもののソースコードでは無かったこと、それ以外に多数の怪しげな処理が見つかったことから、ブラウザハイジャッカーと呼ばれるマルウェアによるものだと断定しました。

マルウェア化した拡張機能の特定

別でWindowsセキュリティのウイルススキャンを実行していたので、少なくともよくあるウイルスにパソコン自体が感染しているということは無さそうでした。Chrome内のみで動作するマルウェアプログラムだと思われます。

事象に気づいた直前のタイミングで新たに拡張機能のインストールはしていなかったため、怪しい拡張機能に心当たりはありませんでした。一方で、Chromeの拡張機能は更新がある場合自動で更新されるため、そのタイミングで拡張機能がマルウェア化してしまった可能性が高いです。そこで、シークレットウィンドウを使って拡張機能が原因であることを確定させます。

Chromeは、特別な設定をしなければシークレットモードでは拡張機能は動作しません。そこで、不審な動作をしているページと同じページをシークレットモードで開くことで、拡張機能が原因かどうかを確かめることができます。今回は問題となっているYouTubeの動画視聴ページをシークレットウィンドウで開き直しました。こちらではページタイトルの頻繁な書き換えは起こらなかったため、何かしらの拡張機能が原因であることが確定しました(厳密にはログイン状態などの差異があるため条件を揃えたほうがいいです)。

ここからは地道に拡張機能を特定していくことになります。結構な数の拡張機能をインストールしているので大変でした。まず全ての拡張機能を管理ページからオフにします(アンインストールしなくてもインストールしたままオフにできます)。1つずつ順番にオンにしていき、どの拡張機能をオンにしたタイミングで問題の事象が発生するかを確かめるのです。私はこれでマルウェア化した拡張機能を見つけることができました。

Live color pickerが原因

原因の拡張機能はLive color pickerというものでした。

(インストールしないようご注意ください)

この拡張機能は、ページ上からスポイトツールで色を抽出することができるツールです。画面上から色を抽出するソフトを入れてもよかったのですが、ブラウザ上で利用したい場面が多かったことやChrome拡張機能のほうが導入が簡単なのもあってこの拡張機能を選んでいました。ユーザーは少ないですがいくつか同様の拡張機能を試して使い勝手で選んだと思います。

これだったか・・・と思いながら拡張機能のレビューを見に行ったところ、やはり英語のコメントで「マルウェアだからインストールするな」というものがいくつか付いていました。

インストールしないように促すレビューが投稿されている
Bingにリダイレクトするマルウェアが仕込まれているとのレビューがここ数日で書き込まれている

具体的な内容は私のChromeで起きた事象と全く異なりますが、マルウェア化してしまっていることは私以外にも気づいたユーザーがいたようです。この拡張機能の最終更新日は2023年3月17日で事象に気づいた4日前なので、このタイミングでマルウェア化してしまったということでしょう。ちなみにレビューにも書かれていますが、拡張機能が乗っ取られてマルウェア化してしまうことはよくあるようで、この拡張機能の元の開発者が悪意があってこうしたとは限りません。開発者と思われる人が新たにマルウェアの仕込まれていない元の拡張機能を別で公開しているようなコメントも付いていますが、もはや信用していいのか分かりません。

ちなみにこの拡張機能をアンインストールした際、Hero Wars(オンラインアクションRPG)の登録画面が表示されました。拡張機能はアンインストールされる際に何かしらのページ(大体はアンインストールの理由を聞くページや作者のページ)を表示することが可能ですが、アフィリエイト用と思われるパラメータが付いた登録画面に飛ばすというのはますます怪しいですね。もう色々と情報は抜き取られているかもしれませんが、早めに特定して削除できて良かったです。


というわけで今回は、Chromeのマルウェア化した拡張機能を特定してなんとか削除できた話でした。YouTubeの閲覧履歴などを抜き取られていそうな挙動でしたが、どこまで抜き取れているんでしょうか。元々の拡張機能の権限が強ければ見ようと思えばパスワードも見れそうですが、抜き取られた情報とこのブログ記事から本人のアカウント特定なんかもできたり・・・考え始めると色々できそうで怖いですね。Chrome拡張機能の自動更新を止められればいいのかもしれませんが、それはそれで不便になるかもしれず、難しいところです。

それではまた。

関連記事