Open VSX エクステンションに潜む高度なマルウェア:開発者を狙う狡猾なサプライチェーン攻撃

Sophisticated Malware Lurks In Open VSX Extension With 5,066 Downloads

2026/01/30 gbhackers — 人気の Angular Language Service を装う悪意の VS Code エクステンションが、Open VSX Registry 上で発見された。このマルウェアを起動させる機能を備えたエクステンションは、2 週間ほど前に公開され、5,066 回ダウンロードされていた。このエクステンションは正規の Angular ツールチェーン “@angular/language-service 21.1.0-rc.0″ と TypeScript 5.9.3 を同梱している。その一方で、”extension/index.js” ファイル内に悪意のコードが埋め込まれており、開発者に深刻なサプライチェーン・リスクをもたらす構成となっている。

悪意の起動と暗号化ローダ

“package.json” の activationEvents により、HTML/TypeScript ファイルが開かれる際に、このエクステンションは起動する (onLanguage:html/onLanguage:typescript)。そして起動後に Node.js crypto を用いることで、AES-256-CBC によりペイロードを復号する。このローダは、以下のような巨大な 16 進エンコード文字列を処理し、500 ms の遅延後に eval を実行する。

let b = d.update(‘918f27c02746d05ee7d972e8985929708aea8…’, ‘hex’, ‘utf8’);
b += d.final(‘utf8’);
await new Promise(r => setTimeout(r, 500));
eval(b);

この遅延により簡易的なサンドボックスを回避するローダーは、VS Code API への完全なアクセス権を保持した状態でペイロードを実行する。復号された第 1 段階ペイロードは、Solana メインネット上のウォレット・アドレス BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC に問い合わせを行う。

その際に、Etherhiding 技法が使用され、memo フィールドから Base64 エンコードされた URL を抽出する。この手法は、不変性/高可用性/匿名性/テイクダウン耐性といった特性を持つ。2026年1月28日 (UTC) 時点で、memo のデコード結果は”hxxp://217.69.11.57/VAM%2Fkax5vb7d%2FkU7RDft8A%3D%3D” であった。このアドレスは、過去 1 か月で 10 回更新されており、動的なペイロード差し替えが可能な状態にある。

IOC
IOC TypeValueDescription
Extension IDangular-studio.ng-angular-extensionMalicious Open VSX package
Solana AddressBjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SCC2 memo field for payloads
C2 IP217.69.11.57Stage-2 payload server
C2 IP108.61.208.161Data exfiltration endpoint

ペイロード取得前に、このマルウェアは検知回避の一環として、ロシア語のロケール設定を確認する。ユーザー名/LANG 環境変数/タイムゾーン/UTC オフセット ( +2 ~ +12 ) を基に判定し、ロシア関連環境と判断された場合は処理を停止する。

let isRussianLanguage = [os.userInfo().username, process.env.LANG /* etc */].some(info => /ru_RU|ru-RU|Russian/i.test(info));
let russianTimezones = [“Europe/Moscow” /
* etc */];
if (_isRussianSystem()) return;

この挙動は、ロシア系マルウェアで一般的に確認されているものだ。また、ユーザーのホームディレクトリ (Windows 環境では %APPDATA%) に “init.json” を作成し、実行状態を追跡している。そのタイムスタンプは 48 時間ごとに更新される。

プラットフォーム判定後に、macOS 環境では直接実行されるが、それ以外の環境では VM/サンドボックス検出を経て最終的なペイロードが実行される。その後に、HTTP ヘッダ由来の鍵を用いて暗号化ペイロードが取得される。

開発者と資産を狙う情報窃取

最終段階では、サプライチェーン攻撃を目的とした開発者情報および資産の窃取が実施される。

  • NPM/GitHub:.npmrc トークン/環境変数/Git 認証情報/VS Code OAuth ストレージを取得し、API への ping により有効性を検証する。
  • 暗号資産ウォレット:MetaMask/Phantom を含む 60 種類以上を対象にスキャンを実行し、Chrome/Firefox を強制終了させた上でデータベースを取得する。
  • 永続化手法:隠蔽された Node.js バイナリの配置/スケジュール・タスク UpdateApp の作成/レジストリの Run キーへの登録が確認されている。

窃取したデータは ZIP 化され、”108.61.208.161″ へ POST リクエストで送信される。C2 の動的更新には、Google Calendar が利用されている。感染期間が数週間に及んでいるため、NPM パッケージや GitHub リポジトリが、侵害された開発者アカウントから悪用されるリスクが高まっている。

Annex が指摘するのは、過去の Shai-Hulud などの攻撃と、今回の攻撃に連続性があるかもしれないという点だ。将来的に、自己拡散型の攻撃へと発展する恐れがあると、同社は警告している。Open VSX Registry における管理統制の甘さが、この種の脅威を許容している状況であり、ユーザー組織として必要なことは、エクステンションの事前スキャンの積極的な実施である。

研究者たちがユーザーに強く推奨するのは、当該エクステンションの即時アンインストールと、すべての関連認証情報のローテーションである。Annex では、検証目的で利用可能なペイロード復号サービスも提供している。