セキュリティ警告:VS Code Marketplaceで19個の偽PNG拡張機能が発見される

ReversingLabs(RL)の研究者は、19個の悪意あるVisual Studio Code(VS Code)拡張機能に関わる高度なサプライチェーン攻撃キャンペーンを特定しました。

このキャンペーンは2025年2月から活動しており、2025年12月2日に発見されました。開発者エコシステムに内在する信頼を悪用し、本来は正常に動作する拡張機能の依存関係フォルダ内にマルウェアを隠す手口が使われています。

攻撃者は新たな回避手法を用いており、PNG画像を装ったファイルの中に悪意あるバイナリを隠しています。

研究チームは、2025年を通じてVS Code Marketplaceに公開されるマルウェアが着実に増加していることを観測しました。

過去のキャンペーンがしばしば悪意あるプルリクエストに依存していたのとは異なり、今回の作戦は標準的なnpmパッケージのインストールとVS Code拡張機能とのアーキテクチャ上の違いを悪用しています。

標準的なnpmインストールでは、依存関係は実行時にリモートレジストリから取得されますが、VS Code拡張機能は、必要な依存関係をすべて含む node_modules フォルダを事前に同梱した状態で提供されます。

脅威アクターはこの事前パッケージ構造を利用し、npm上の公式パッケージを改ざんすることなく、人気ライブラリのローカル版を改変しました。

具体的には、攻撃者はローカル拡張機能ファイル内で、累計90億回以上ダウンロードされている広く利用されている path-is-absolute パッケージを改変しました。

これらの変更は同梱された拡張機能内にのみ存在するため、公式のnpmリポジトリは手つかずで安全なままですが、拡張機能が武器化されたコードを運ぶキャリアとして機能してしまいます。

この攻撃の技術的な実行は、改変された依存関係内に埋め込まれた多段階の感染チェーンに依存しています。

攻撃者は path-is-absolute パッケージの index.js ファイルを改変し、マルウェアの起動を担う新しいクラスを追加しました。

このクラスはVS Codeの起動時にコードを実行し、 lock という名前のファイル内に隠されたJavaScriptドロッパーをデコードします。ドロッパーは、静的解析を回避するためにbase64エンコードと文字列の反転によって難読化されています。

Image
「path-is-absolute」npmパッケージの index.js に悪意あるコードが追加されている様子

拡張機能が実行されると、デコードされたドロッパーはこれらのバイナリを抽出し、正規のWindows「Living-of-the-Land」バイナリ(LOLBIN)である cmstp.exe を使用して実行します。

1つ目のバイナリはキーストロークをエミュレートしてLOLBINウィンドウを閉じ、2つ目は現在解析中の複雑なRustベースのトロイの木馬です。

発見された拡張機能の大半は path-is-absolute を悪用していましたが、研究者らは、代わりに @actions/io パッケージを標的とした4つの拡張機能におけるバリエーションも確認しました。

これらのケースでは、脅威アクターはPNGの偽装を使用していません。その代わり、悪意あるバイナリはTypeScript(.ts)ファイルおよびsourcemap(.map)ファイルを装った別々のファイルに分割されていました。

以下の表は、このキャンペーンに関連する主要な技術コンポーネントとインジケーターを示したものです。

コンポーネント ファイル種別 攻撃チェーンにおける役割
path-is-absolute npmパッケージ ローカルで改変され、悪意あるロジックをホストする正規の依存関係。
banner.png アーカイブ Rust製トロイの木馬と補助バイナリを含む偽の画像ファイル。
lock 難読化ファイル 反転されたbase64エンコード済みJavaScriptドロッパーを格納。
index.js スクリプト lockファイルのデコードをトリガーするよう改変されたエントリポイント。
cmstp.exe LOLBIN 抽出されたペイロードの実行に悪用される正規のWindowsツール。
@actions/io npmパッケージ .tsおよび.mapファイル内にマルウェアを隠すために使用された代替ターゲットパッケージ。

高まる脅威情勢

このキャンペーンの重要なコンポーネントの1つが、 banner.png という名前のファイルです。一見すると拡張機能用の標準的な画像アセットに見えますが、RLの研究者は、その中身が2つの悪意あるバイナリを含むアーカイブであることを突き止めました。

このインシデントは、攻撃者が開発者環境を標的にするという、より広範な傾向を浮き彫りにしています。

ReversingLabsのデータによると、VS Code Marketplaceにおける悪意あるソフトウェアの検知件数はほぼ4倍に増加しており、2024年の27件から、2025年最初の10か月間だけで105件にまで上昇しています。

セキュリティ専門家は、特にインストール数が少ない、あるいは公開日が最近の拡張機能について、開発チームが厳格な監査を行うことを推奨しています。

マルウェアはメインの拡張機能コードではなく、 node_modules 階層の深部に潜んでいる可能性があるため、自動化されたセキュリティツールと、パッケージ化された依存関係の詳細な検査は、安全な開発パイプラインを維持するうえで不可欠になりつつあります。

翻訳元: https://gbhackers.com/fake-png-extensions/

ソース: gbhackers.com