50万人のVKontakteユーザーが、知らないうちにアカウントを乗っ取られていました。30日ごとに設定がリセットされ、選んだ覚えのないグループへ自動的に登録される――その原因は、VK向けのカスタマイズツールを装ったChrome拡張機能でした。
私たちは、ロシア最大のソーシャルネットワークであり利用者数6億5,000万人を超えるVKontakte(VK)を標的にした、巧妙なマルウェアキャンペーンを発見しました。事の発端は、Yandex広告コードに関する単純な調査でした。しかしそこから、合計インストール数50万件以上に及ぶ悪意あるChrome拡張機能5種のネットワークが明らかになりました。
これは単なるアドウェアや簡易的なタイポスクワッティングではありません。能動的なアカウント操作を行うマルウェアであり、次のような挙動を示します。
- 攻撃者のVKグループへユーザーを自動的に登録(セッションごとに75%の確率)
- 30日ごとにアカウント設定をリセットし、ユーザーの設定を上書き
- CSRFトークンを操作し、VKのセキュリティ保護を回避
- 寄付状況を追跡して機能を制限し、被害者から収益を得るマネタイズ機構
- 多段階のコードインジェクションによる永続的な制御
攻撃者の正体は、GitHubのユーザー名「2vk」を名乗る単独の脅威アクターでした。VK自身のソーシャルネットワークを悪用して悪意あるペイロードを配布し、強制的な登録を通じてフォロワー基盤を構築していたのです。
本稿では、私たちがVK Stylesマルウェアネットワークをどのように突き止めたか、そしてそれがブラウザ拡張機能のセキュリティにとって何を意味するのかをお伝えします。
発見の経緯:Yandexの痕跡を追う
調査の出発点はYandexではなく、私たちのリスクエンジンでした。あるChrome拡張機能が、ユーザーが開くすべてのページにYandexディスプレイ広告スクリプトを注入していることを検知したのです。
そこから、同じYandexディスプレイフレームワークを使う他の拡張機能を調査しました。その結果たどり着いたのがVK Stylesです。インストール数40万件を誇るこのChrome拡張機能は、単純なVKカスタマイズツールを標榜していました。しかしそのコードの奥深くには、検知を回避するために動的に算出されるYandexメトリクスIDという、不自然な仕掛けが埋め込まれていました。
'R-A-' + 843079 * 2 // Evaluates to: R-A-1686158
なぜわざわざ計算するのでしょうか。静的解析ツールやセキュリティスキャナーは、完全一致する文字列を検索するからです。IDを実行時に計算することで、マルウェアは単純なパターンマッチングを回避できます。
しかし、この計算式こそが私たちの疑念を呼び起こしました。そこで拡張機能のコードをさらに掘り下げて調査することにしました。
その結果、Yandexメトリクスは表面的な仕掛けに過ぎないことが判明しました。実際のマルウェアは多段階構成であり、VK自身のソーシャルネットワークをインフラとして利用していたのです。
第1段階:すべてを変えた2行のコード
拡張機能自体は一見無害に見えます。「VK Styles」は、カスタムテーマや追加機能、より洗練されたインターフェースでVK体験を向上させると謳っています。何千もの高評価レビューを誇り、定期的にアップデートされており、Chromeウェブストアの掲載情報を見ても、これといって危険を示唆する兆候はありません。
しかし、私たちがエージェントをVK Stylesのコードベースに対して実行したところ、別々の箇所に埋め込まれた、すべてを一変させる2行のコードが見つかりました。

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

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

これは通常のVKアカウントではなく、個人のソーシャルメディアプロフィールを装った、攻撃者の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

リポジトリ名は「-」、そうです、ハイフン1文字だけです。
このリポジトリには、単に「C」とだけ名付けられたファイルが含まれています。無害に見え、検索にも引っかからず、意図的に曖昧な名前です。中身は難読化されたJavaScriptで、被害者が訪れるすべての

VKページに注入されます。

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

私たちはこのファイルの全17コミットを分析しました。期間は2025年6月から2026年1月にまで及びます。そこから見えてきたのは、時間をかけて進化し、機能を追加し、手口を洗練させ、更新のたびに攻撃性を増していったマルウェア運用の実態でした。
コードの進化タイムライン
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行以上を削除
- 検出面を減らすための簡素化
- 継続的なバージョン更新とセレクタの調整
いずれのコミットにも、意図的な改良の跡が見られます。これは杜撰なマルウェアではなく、バージョン管理・テスト・反復的な改善を伴う、保守された1つのソフトウェアプロジェクトなのです。
静かな乗っ取り:このマルウェアが実際に行うこと
完全に展開された状態では、このマルウェアは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件は、Chromeウェブストアのポリシー違反によりGoogleが2024年にすでに削除しています。これは、このキャンペーンが以前にも検知されていたにもかかわらず、脅威アクターが単に新しい拡張機能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インフラとしてのソーシャルネットワークの悪用 VKプロフィール、メタタグ、そして正規のソーシャルプラットフォームを利用してマルウェアを制御する手口は、巧妙であると同時に恐ろしいものです。無料で、信頼されており、ブロックが困難だからです。
2. 強制的な操作を通じた自己拡散 攻撃者が管理するグループへ被害者を自動的に登録することで、それ自体を糧に拡大していくウイルス的な拡散メカニズムが生まれています。
3. サブスクリプション型のマルウェアビジネスモデル 感染状態を維持したまま「プレミアム機能」を通じてマルウェアを収益化する手口は、ランサムウェア戦術の新たな進化形です。
4. 定期的なリセットによる永続性の確保 30日ごとのリセットサイクルにより、被害者は拡張機能を削除しない限り、マルウェアの支配から完全に逃れることができません。
5. 多段階かつ動的なペイロード 外部ソース(GitHubやVKプロフィール)からペイロードを取得することで、攻撃者は拡張機能のコード自体に手を加えることなく、マルウェアを更新できます。
ブラウザ拡張機能は、現代のセキュリティにおいて最も危険な攻撃経路の1つとなっています。
- 高い権限で動作する
- ユーザーの同意なしに自動更新される
- 監視や監査が困難である
- マーケットプレイスによるセキュリティ審査には限界がある
- ユーザーは無条件に信頼を寄せている
だからこそ私たちはKoiを構築しました。私たちのプラットフォームは、従来型のセキュリティツールが見落としがちなブラウザ拡張機能も含め、みなさんの環境に入り込むあらゆるソフトウェアを発見・評価・統制します。
Koiは、フォーチュン50企業や世界最大級のテクノロジー企業からも信頼を寄せられており、セキュリティチームが開発者や従業員が実際に使用しているソフトウェアを可視化する手助けをしています。
デモを予約することで、ブラウザ拡張機能、npmパッケージ、VS Code拡張機能、そしてマーケットプレイスのエコシステム全体に潜む脅威から、Koiが組織をどのように守るかをご覧いただけます。
一見完全に正規に見える拡張機能を通じて、マルウェアが50万人ものユーザーを乗っ取ることができる時代です。だからこそ、ソフトウェアが「何を主張しているか」ではなく「実際に何をしているか」を監視できるツールが必要なのです。
どうかご安全に。
IOC(侵害指標)
ceibjdigmfbbgcpkkdpmjokkokklodmc(インストール数400,000件)mflibpdjoodmoppignjhciadahapkoch(インストール数80,000件)lgakkahjfibfgmacigibnhcgepajgfdb(インストール数20,000件)bndkfmmbidllaiccmpnbdonijmicaafn(インストール数2,000件)pcdgkgbadeggbnodegejccjffnoakcoh(インストール数2,000件)