研究者たちは、2025年2月以降アクティブだった19個の悪意ある拡張機能を通じて、ソフトウェアサプライチェーン攻撃が Visual Studio Code(VS Code)マーケットプレイスに侵入していたことを発見しました。
これらの拡張機能は、一部は正規パッケージを装いながら、無害に見える PNG 画像ファイルの内部に実行可能なマルウェアを隠していました。
脅威アクターは「人気があり本来は安全なパッケージを、悪意ある拡張機能のいずれかが使われた瞬間に爆発する時限爆弾へと変えている」と、述べたのは Reversing Labs の研究者たちです。
開発者環境への攻撃
このキャンペーンは、より広範なソフトウェアサプライチェーンへの侵入口となりがちな開発者環境を標的とする脅威が、深刻なレベルへとエスカレートしていることを示しています。
ReversingLabs によると、VS Code 拡張機能に関連するマルウェア検出件数は 2025 年にほぼ 4 倍に増加し、2024 年の 27 件から、2025 年最初の 10 か月だけで 105 件にまで上昇しました。
開発者はマーケットプレイスの拡張機能を信頼し、手動での精査なしにインストールすることが一般的なため、侵害されたパッケージは容易にセキュリティ制御をすり抜け、汚染されたコードや盗まれた認証情報を通じて本番システムに到達し得ます。
この攻撃は、VS Code 拡張機能の構造を改ざんすることに依存しています。VS Code 拡張機能は、npm パッケージを含むすべての依存関係をローカルの node_modules フォルダー内に同梱します。
ReversingLabs は、脅威アクターが広く利用されている path-is-absolute パッケージを改変していたことを突き止めました。このパッケージは 2021 年以降、90 億回以上ダウンロードされています。
攻撃者はパッケージの index.js ファイルに悪意あるロジックを追加し、VS Code の起動時に自動的に実行されるようにしました。
一度トリガーされると、改変されたパッケージは悪意ある banner.png ファイル内に埋め込まれた JavaScript ドロッパーをデコードします。
このドロッパーは、base64 エンコードや文字列の反転といった多層的な難読化手法を用いて隠蔽されており、手作業での検査を極めて困難にしていました。
実行されると、ドロッパーは正規の Windows ツールでありながらコード実行に悪用されることの多い cmstp.exe を使って 2 つのバイナリを展開しました。
1 つ目のバイナリは攻撃者による制御を維持し、2 つ目のバイナリは Rust で記述され、より高度な機能を備えていました。
さらに 4 つの拡張機能は別の隠蔽手法を用い、PNG 画像ではなく .ts および .map ファイル内にバイナリを保存しており、脅威アクターが手法を反復的に試行していたことがうかがえます。
悪意ある拡張機能が信頼をすり抜ける仕組み
問題の根本には、VS Code 拡張機能のパッケージ化と信頼のされ方があります。
拡張機能は依存関係をローカルに同梱し、追加のダウンロードを必要とせずに実行するため、改ざんされたコンポーネントも、見た目には正規に見える拡張機能の内部で違和感なく動作してしまいます。
悪意あるコードは、ユーザーの操作なしに起動時に自動実行され、インストール時の警告、アンチウイルスツール、マーケットプレイスでの検証をすり抜けます。
この「悪用の容易さ」「検出の困難さ」「持続性」の組み合わせにより、コード改ざん、認証情報窃取、CI/CD へのアクセス、さらには顧客環境への波及的な侵害を可能にする、深刻なサプライチェーン脅威となっています。
開発ワークフローにおけるリスク低減
開発者向けツールは、ソフトウェアサプライチェーンを密かに侵害しようとする攻撃者にとって魅力的な標的になっています。
悪意ある拡張機能は、信頼されたワークフローに紛れ込み、自動的に実行され、多くの従来型セキュリティ制御を回避できます。
こうした脅威に対抗するには、開発者環境を単なる生産性向上ツールではなく、高リスク資産として扱う必要があります。
- インストール済みの VS Code 拡張機能を監査・削減し、作者情報やバージョン履歴を検証しつつ、信頼できない/未使用のプラグインを削除する。
- 拡張機能の許可リストと社内審査を徹底し、マーケットプレイスのミラーリングや、導入前の承認プロセスを設ける。
- 拡張機能および同梱された依存関係をスキャンし、インストール前に静的・動的解析を実施する。
- 開発ツールの実行およびネットワーク挙動を制限し、エンドポイント制御、アプリケーション許可リスト、送信トラフィックのフィルタリングを活用する。
- 開発者用エンドポイントで IDE の不審な挙動を監視し、予期しないプロセス、画像デコード活動、永続化の試みなどを検知する。
- 開発環境を分離し、認証情報をローテーションして、拡張機能が侵害された場合の被害範囲を限定する。
- CI/CD パイプラインを強化しコード完全性チェックを実施するとともに、最小権限アクセスと継続的な監視によって悪用を検出する。
これらの対策を組み合わせることで、開発者の生産性を損なうことなく、拡張機能に起因するリスクを低減できます。
攻撃にさらされるソフトウェアサプライチェーン
今回のキャンペーンは、信頼が前提となり、侵害が急速に拡大しやすい開発者エコシステムやソフトウェアサプライチェーンを標的とする動きが広がっていることを反映しています。
path-is-absolute のような広く利用されている依存関係を改ざんすることで、攻撃者は、日々の開発ワークフローの中核として VS Code に依存している組織へ効率的にアクセスできます。
攻撃者が信頼された依存関係を大規模に悪用する中で、ソフトウェアサプライチェーンセキュリティは防御の中核要素となりつつあります。
翻訳元: https://www.esecurityplanet.com/threats/malicious-vs-code-extensions-hide-malware-in-png-files/