50万人ものVKontakteユーザーのアカウントが、気づかぬうちに乗っ取られていました。設定は30日ごとにリセットされ、選んだ覚えのないグループへ自動的に登録されてしまいます。すべては、一見ただのVKカスタマイズツールに見えるChrome拡張機能が原因でした。
私たちは、ロシア最大のSNSであり6億5000万人以上のユーザーを抱えるVKontakte(VK)を標的とした、巧妙なマルウェアキャンペーンを発見しました。ことの発端はYandex広告コードの単純な検索でしたが、そこから合計50万件以上のインストール数を持つ、5つの悪意あるChrome拡張機能からなるネットワークの存在が明らかになりました。
これは単なるアドウェアやありがちなタイポスクワッティングではありません。能動的なアカウント操作を行うマルウェアであり、次のような挙動を見せます。
- 攻撃者が運営するVKグループへユーザーを自動的に登録(セッションごとに75%の確率で発生)
- ユーザー設定を上書きするためアカウント設定を30日ごとにリセット
- VKのセキュリティ保護を回避するためCSRFトークンを操作
- 機能制限とマネタイズのため寄付状況を追跡
- 複数段階のコードインジェクションによって持続的な制御を維持
攻撃者の正体は、GitHub上で「2vk」というユーザー名を使う単独の脅威アクターです。VK自身のSNSを悪用して悪意あるペイロードを配布し、強制登録によってフォロワー基盤を築き上げていました。
本稿では、私たちがどのようにこのVK Stylesマルウェアネットワークを突き止めたのか、そしてそれがブラウザ拡張機能のセキュリティにとって何を意味するのかを解説します。
発見のきっかけ:Yandexの痕跡を追う
発端はYandexではなく、私たちのリスクエンジンでした。あるChrome拡張機能が、ユーザーが開くすべてのページにYandexのディスプレイ広告スクリプトを注入していることを検知したのです。
そこから、同じYandexディスプレイフレームワークを使う他の拡張機能を調べたところ、VK Stylesという拡張機能に行き着きました。これは40万件のインストール数を誇り、単なるVKカスタマイズツールを名乗っていました。しかし、そのコードの奥深くには不審な仕掛けが隠されていました。検出を回避するために動的に計算されるYandexメトリクスIDです。
'R-A-' + 843079 * 2 // Evaluates to: R-A-1686158
なぜわざわざ計算するのでしょうか。静的解析ツールやセキュリティスキャナーは完全一致の文字列を検索するためです。IDを実行時に計算することで、マルウェアは単純なパターンマッチングを回避できます。
この計算処理自体が不審だったため、私たちは拡張機能のコードをさらに深く掘り下げました。
その結果、このYandexメトリクスは表面的なものに過ぎないことが判明しました。真のマルウェアは複数段階からなり、VK自身のSNSをインフラとして利用していたのです。
ステージ1:すべてを変えた2行のコード
拡張機能自体は一見無害に見えます。「VK Styles」は、カスタムテーマや追加機能、すっきりしたインターフェースでVK体験を向上させると謳っています。何千件もの好意的なレビューを誇り、定期的にアップデートもされているため、Chromeウェブストアの掲載情報を見る限り、目立った警戒すべき点はありません。
しかし、私たちがAIエージェントをVK Stylesのコードベースに走らせたところ、別々の場所に埋め込まれた、すべてを変える2行のコードが見つかりました。

これは基本的に次のようなものです。

これにより、Eに渡された任意の文字列が実行可能になっていました。そこからエージェントは、どのコンポーネントがEを呼び出しているかを追跡し、VKプロフィールvk.com/m0ndaのメタデータからURLデータを取得するコードを発見しました。この拡張機能は、そのプロフィールからコードをダウンロードし、ローカルで実行していたのです。

これは通常のVKアカウントではなく、個人のSNSプロフィールを装った攻撃者のC2インフラとして機能していました。
メタデータに仕込まれたペイロード
このVKプロフィールのHTMLメタデータタグには、次の段階への手がかりが隠されていました。
<meta name="description" content="4000 :: G2vk.github.io/-/ V1.0.250.69 Yan.yandex.ru/system/context.js Ayastatic.net/partner-code-bundles/ :">
一見すると意味不明な文字列ですが、これを解読すると次のようになります。
G(GitHub): https://2vk.github.io/-/
Y(Yandex): https://an.yandex.ru/system/context.js
A(広告バンドル): https://yastatic.net/partner-code-bundles/
V(バージョン): 1.0.250.69
攻撃者は、VKのメタタグをペイロードURLの「デッドドロップ」として利用していたのです。
この手口の巧妙な点は何でしょうか。
- 拡張機能のコードにURLをハードコードしないため、検出やブロックが困難
- 攻撃者が自分のVKプロフィールを編集するだけでペイロードを動的に更新可能
- VK.com自体がC2の調整役を担う正規のインフラ利用
- すべてが通常のVKトラフィックに見えるため不審な外部ドメインが存在しない
この拡張機能はVKプロフィールを取得し、メタタグを解析してエンコードされたURLを抽出し、GitHubから次の段階のコードをダウンロードします。
ステージ2:GitHub上のペイロード
GitHubアカウント2vkには、実際のマルウェアがホストされています。 https://github.com/2vk

リポジトリ名は「-」、そう、ハイフン一文字だけです。
このリポジトリには、単に「C」という名前のファイルが含まれています。無害に見え、検索もされにくい、意図的に曖昧な名前です。その中には、被害者が訪れるすべての

VKページに注入される難読化されたJavaScriptが格納されていました。

この流れをまとめると次のようになります。

私たちは、2025年6月から2026年1月にかけて行われた、このファイルの全17件のコミットを分析しました。その結果見えてきたのは、時間の経過とともに機能を追加し、手口を洗練させ、更新のたびに攻撃性を増していったマルウェア運用の実態でした。
コードの進化タイムライン
2025年6月22日(コミットID:9c04efc)- 初期バージョン
- CSRF Cookie操作の実装
- 基本的なVK APIラッパー関数
- コアインフラの確立
2025年12月23日(コミットID:ba0125b)- 大規模な悪意ある更新
- 自動登録機能の追加(75%の確率)
- 30日ごとの設定リセット機能の導入
- 設定の強制上書き
2026年1月13日(コミットID:8f94054)- マネタイズ機能のアップグレード
- HTMLスクレイピングから直接APIコールへ変更
- VK Donut API経由での寄付状況追跡
- 支払い状況に応じた機能制限
2026年1月(コミットID:c9d1e96)- ステルス性の向上
- IntersectionObserverに関するコード100行以上を削除
- 検出面を減らすための簡素化
- バージョン番号の継続的な更新とセレクタの調整
いずれのコミットからも、意図的な改良の跡が見て取れます。これはずさんなマルウェアではなく、バージョン管理やテスト、反復的な改善を伴う、きちんと保守されたソフトウェアプロジェクトなのです。
静かな乗っ取り:このマルウェアが実際に行うこと
完全に展開されると、このマルウェアは5つのカテゴリーの悪意ある動作を実行します。それぞれ見ていきましょう。
自動登録:フォロワー軍団の構築
該当コード:

解説:VKにアクセスするたびに、75%の確率(4分の3のランダムな結果)でユーザーはVKグループ-168874636へ自動的に登録されます。
VKグループ168874636とは何か
これは攻撃者自身が運営するグループです。https://vk.com/club168874636
これはVK Styles(https://vk.com/2style)へリダイレクトされます。ユーザーサポートグループを装った、このマルウェアの「公式コミュニティ」です。フォロワー数は140万人にのぼり、まるで人気者のVK Styles気取りです。
この手口の何が巧妙なのでしょうか。
- ウイルスのような拡散力 – 被害者一人ひとりが登録者となり、グループの正当性を後押しする
- 社会的証明 – 「140万人ものメンバーが間違っているはずがない」という印象を与える
- 無料の宣伝効果 – 被害者の友人がその参加を目にすることで、信頼性が増す
- マネタイズ – フォロワーが増えるほど影響力が増し、さらに被害者が増える
- 持続性 – 登録解除しても、次にVKを訪れた際に75%の確率で再登録されてしまう
攻撃者は、マルウェアの拡散そのものを自己増殖するサイクルに変えてしまいました。被害者自身が、さらなる被害者を呼び込む宣伝媒体となっているのです。
30日ごとのリセット:持続的なアカウント支配
該当コード:

解説:30日ごと(2592e6ミリ秒=30日)に、このマルウェアは以下を実行します。
- VKのフィード表示順を、アルゴリズム順から「最新」順にリセット
- メッセージ吹き出しのテーマをテーマ0に変更
- ユーザーが設定したカスタム設定を上書き
- 毎月確実に実行されるよう、最終リセット時刻を記録
CSRFトークン操作:VKのセキュリティを突破する
該当コード:

解説:このマルウェアは、VKのCSRF保護Cookieであるremixsec_redirを読み取り、操作することができます。
CSRFトークンとは何か
クロスサイトリクエストフォージェリ(CSRF)トークンは、アカウントに対する不正な操作を防ぐセキュリティ機構です。設定変更や投稿など、VK上で機微な操作を行う際、VKはこのトークンを確認し、そのリクエストが悪意あるサイトからではなく、確かにユーザー本人によるものかを検証します。
このCookieを操作することで、マルウェアは潜在的に次のようなことが可能になります。
- APIコール時にCSRF保護を回避する
- 本来ブロックされるはずの操作を実行する
- VKのセキュリティシステムに対してリクエストを正規のものに見せかける
これは、VKのセキュリティインフラそのものに対する直接的な攻撃です。
ネットワークの全貌:5つの拡張機能、単一の脅威アクター
YandexメトリクスID「R-A-1686158」を検索したところ、同一の脅威アクターが管理し、同一のインフラを使用する拡張機能群が明らかになりました。
| 拡張機能ID | ダウンロード数 | ステータス | Yandexメトリクス |
|---|---|---|---|
| ceibjdigmfbbgcpkkdpmjokkokklodmc | 400,000 | 最近削除 | R-A-1686158 |
| mflibpdjoodmoppignjhciadahapkoch | 80,000 | 稼働中 | R-A-1686158 |
| lgakkahjfibfgmacigibnhcgepajgfdb | 20,000 | 稼働中 | R-A-1686158 |
| bndkfmmbidllaiccmpnbdonijmicaafn | 2,000 | 稼働中 | R-A-1686158 |
| pcdgkgbadeggbnodegejccjffnoakcoh | 2,000 | 削除済み | R-A-1686158 |
- 確認された被害者総数:502,000人
- 拡張機能のうち1つは、2024年にすでにGoogleによってウェブストアのポリシー違反として削除されていました。これは、このキャンペーンが以前にも検出されていたにもかかわらず、脅威アクターが単に新しい拡張機能IDに乗り換えて活動を継続していたことを示す証拠です。
- 最も人気のあった拡張機能
VK Styles – Themes for vk.comは、2月6日にマーケットプレイスから削除されました。
合計:502,000人以上の被害が確認されています
VKグループ登録者数:攻撃者のVK Stylesグループは、強制登録によって自然増加を続け、自己持続的な感染経路を作り出しています。
地理的分布:主にロシア語圏のユーザー(VKの中核的な利用者層)ですが、東欧、中央アジア、そして世界各地のロシア系移民コミュニティのユーザーにも及んでいます。
活動期間:このキャンペーンは少なくとも2025年6月から活動しており、2026年1月まで継続的にアップデートが行われていました。実に7か月以上にわたる活動です。
現在進行中の被害
今この瞬間も、毎日何千人ものVKユーザーが次のような被害に遭っています。
- 気づかぬうちに攻撃者のグループに登録されている
- アカウント設定がリセットされている
- CSRFトークンを操作されている
- 寄付追跡システムを通じてマネタイズの対象にされている
- マルウェアの配布ノードとして利用されている
そして、この拡張機能は自動更新される仕組みのため、攻撃者はユーザーの操作を一切必要とせず、50万人以上の被害者全員に対して即座に新たな悪意あるコードを配信できてしまいます。
おわりに
本調査は、ソフトウェアサプライチェーンに潜む脅威を暴くことに注力するKoiのチームによって実施されました。
今回のVK Stylesキャンペーンは、ブラウザ拡張機能マルウェアにおけるいくつかの新たな傾向を浮き彫りにしています。
1. C2インフラとしてのSNS利用 VKのプロフィールやメタタグ、そして正規のSNSプラットフォームを使ってマルウェアを制御する手口は、巧妙であると同時に恐ろしいものです。無料で、信頼性があり、ブロックすることが困難です。
2. 強制的な操作による自己拡散 被害者を攻撃者管理下のグループに自動登録させることで、自らを増殖させる配布メカニズムを作り出しています。
3. サブスクリプション型のマルウェアビジネスモデル 感染状態を維持したまま「プレミアム機能」を通じてマルウェアをマネタイズする手法は、ランサムウェア戦術の新たな進化形です。
4. 定期的なリセットによる持続性の確保 30日ごとのリセットサイクルにより、拡張機能を削除しない限り被害者はマルウェアの支配から完全に逃れることができません。
5. 複数段階の動的ペイロード GitHubやVKプロフィールといった外部ソースからペイロードを取得することで、攻撃者は拡張機能のコード自体に手を加えることなくマルウェアを更新できます。
ブラウザ拡張機能は、現代のセキュリティにおいて最も危険な攻撃経路の一つとなっています。
- 高い権限で動作する
- ユーザーの同意なく自動更新される
- 監視や監査が困難
- マーケットプレイスによるセキュリティ審査には限界がある
- ユーザーは暗黙のうちに信頼してしまう
私たちがKoiを開発したのは、まさにこうした理由からです。私たちのプラットフォームは、従来のセキュリティツールが完全に見落としてしまうブラウザ拡張機能を含め、環境に流入するすべてのソフトウェアを発見し、評価し、統制します。
Fortune 50企業や世界最大級のテクノロジー企業からも信頼を得ているKoiは、開発者や従業員が実際に使用しているソフトウェアをセキュリティチームが可視化できるよう支援します。
デモを予約することで、ブラウザ拡張機能やnpmパッケージ、VS Code拡張機能、そしてマーケットプレイスエコシステム全体に潜む脅威から、Koiが組織をどのように守れるかをご確認いただけます。
完全に正規のものに見える拡張機能を通じて、マルウェアが50万人ものユーザーを乗っ取ることができる以上、ソフトウェアが「何を主張しているか」ではなく「実際に何をしているか」を監視するツールが必要なのです。
どうか安全にお過ごしください。
IOC(侵害指標)
ceibjdigmfbbgcpkkdpmjokkokklodmc(インストール数400,000件)mflibpdjoodmoppignjhciadahapkoch(インストール数80,000件)lgakkahjfibfgmacigibnhcgepajgfdb(インストール数20,000件)bndkfmmbidllaiccmpnbdonijmicaafn(インストール数2,000件)pcdgkgbadeggbnodegejccjffnoakcoh(インストール数2,000件)