サイバーセキュリティ企業ReversingLabsは、Visual Studio Code Marketplaceに脆弱性があり、削除された拡張機能名を再利用できることを発見した。
同社は3月にフラグ付けされた「ahban.shiba」「ahban.cychelloworld」と類似機能を持つ悪意のある拡張機能「ahbanC.shiba」を特定した。
これら3つの拡張機能はPowerShellペイロードをダウンロードし、Windows上の「testShiba」フォルダのファイルを暗号化してShiba Inuトークンを要求する。セキュリティ研究者Lucija Valentićは、拡張機能がリポジトリから削除された後に名前の再利用が可能になることを発見した。
この問題は2023年初頭にReversingLabsが実証したPython Package Index(PyPI)にも存在する。また、ruerとnpjunが公開した8つの悪意のあるnpmパッケージが発見され、Google Chromeの情報を窃取しrailway[.]app URLやDiscord webhookに送信する。
これらのパッケージは70層の難読化コードを使用してPythonペイロードを展開する。JFrogのセキュリティ研究者Guy Korolevskiは、オープンソースリポジトリが攻撃者の主要エントリーポイントになっていると指摘した。
From: Researchers Find VS Code Flaw Allowing Attackers to Republish …
【編集部解説】
今回のVS Code Marketplaceの脆弱性は、一見単純な名前の再利用問題に見えますが、実はソフトウェアサプライチェーンセキュリティの根本的な課題を浮き彫りにしています。
最も注目すべき点は、VS Codeの公式ドキュメントでは拡張機能名は「Marketplaceに対して一意でなければならない」と明記されているにもかかわらず、削除された拡張機能の名前が再利用可能になってしまうという矛盾です。これは単なるバグではなく、設計上の盲点と言えるでしょう。
興味深いのは、同様の問題がPython Package Index(PyPI)にも存在していた点です。しかしPyPIは2023年の事件を受けて、悪意のあるパッケージによって最初に使用された名前を利用不可にする例外措置を導入しました。一方、VS Codeにはそうした保護機能がまだ実装されていません。
今回発見されたランサムウェア拡張機能は明らかにテスト段階のものでした。「testShiba」フォルダのみを暗号化し、実際のウォレットアドレスも提供されていません。しかし、これこそが最も危険な兆候かもしれません。攻撃者が本格的な展開に向けて実験を重ねていることを示しているからです。
さらに懸念されるのは、今年に入ってからnpmパッケージでも類似の攻撃が急増していることです。特に仮想通貨関連の開発者を狙った攻撃が目立っており、キーロガーやスクリーンショット機能を持つトロイの木馬が確認されています。これらの攻撃は70層もの難読化コードを使用するなど、ますます洗練されてきています。
この問題が開発者コミュニティに与える長期的な影響は深刻です。VS Codeは世界中で最も使用されている統合開発環境の一つであり、その拡張機能エコシステムは開発者の生産性向上に不可欠な存在となっています。信頼性の問題が浮上すれば、イノベーションのスピードにも影響を与えかねません。
規制面でも変化が予想されます。欧州のサイバー強靭化法(CRA)や米国のセキュアソフトウェア開発フレームワークなど、ソフトウェアサプライチェーンに対する規制が強化される中、こうした基本的なセキュリティギャップは早急な対応が求められるでしょう。
将来的には、拡張機能やパッケージの名前空間管理に関する業界標準の策定が必要になるかもしれません。また、AI技術を活用した悪意のあるコードの自動検出システムの導入も加速するでしょう。
開発者にとって重要なのは、拡張機能やパッケージをインストールする際の慎重な検証プロセスです。信頼できる発行者からのもの以外は避け、定期的なセキュリティスキャンを実施することが今後ますます重要になってきます。
【用語解説】
Visual Studio Code Marketplace
Microsoftが運営する統合開発環境VS Code用の拡張機能配布プラットフォーム。開発者が機能を追加する拡張機能を公開・配布できる公式マーケットプレイス。
ソフトウェアサプライチェーン攻撃
正規のソフトウェア開発・配布プロセスに悪意のあるコードを混入させる攻撃手法。開発者やユーザーが信頼するパッケージやライブラリを経由して被害を拡大する。
PyPI(Python Package Index)
Pythonプログラミング言語用の公式パッケージリポジトリ。開発者がライブラリやツールを配布・共有するためのプラットフォーム。
npm(Node Package Manager)
Node.js用のパッケージ管理システム。JavaScriptライブラリやツールの配布・インストールを行うプラットフォーム。
Black Basta
2022年から活動する二重恐喝型ランサムウェアグループ。北米、欧州、オーストラリアで500以上の組織を標的とし、2023年末時点で約1億700万ドルの身代金を獲得したとされる。
タイポスクワッティング
正規のパッケージ名に似た名前を使用して悪意のあるパッケージを公開し、ユーザーのタイプミスを狙う攻撃手法。
【参考リンク】
ReversingLabs(外部)
ソフトウェアサプライチェーンセキュリティとマルウェア解析を専門とする企業。AIを活用したバイナリ解析で悪意のあるコンポーネントを特定する技術を提供している。
JFrog(外部)
DevOpsとセキュリティ向けのソフトウェアサプライチェーンソリューションを提供する企業。パッケージ管理、セキュリティスキャン、CI/CDパイプラインの統合プラットフォームを運営している。
【参考記事】
Visual Studio Code Extension API(外部)
VS Code拡張機能の開発・公開に関する公式ドキュメント。拡張機能の作成方法、公開ルール、APIリファレンスが記載されている。
Malicious VS Code Extensions Exploit Name Reuse Loophole(外部)
VS Code拡張機能の名前再利用問題について別の視点から報告。セキュリティ研究者Lucija Valentićの発見とその影響について解説している。
Over 70 Malicious npm and VS Code Packages Found(外部)
2025年5月に発見された70以上の悪意のあるnpmパッケージとVS Code拡張機能について報告。3つのアカウントから公開された60のnpmパッケージが合計3,000回以上ダウンロードされた。
CrowdStrike Falcon Prevents NPM Package Supply Chain Attacks(外部)
2025年7月18日に発生したnpmパッケージへの攻撃について詳細に分析。週間3,000万ダウンロードを記録する「eslint-config-prettier」を含む5つの人気パッケージが侵害された。
Package names repurposed to push malware on PyPI(外部)
2023年にReversingLabsが発見したPyPIでの同様の問題を報告。削除されたパッケージ名が「他のPyPIユーザーが利用可能」になる仕組みと悪用手法について詳述。
Leaked Black Basta Ransomware Chat Logs Reveal Inner Workings(外部)
2025年2月にリークされたBlack Bastaランサムウェアグループの内部チャットログについて報告。1億700万ドル以上の身代金を獲得し、オープンソースリポジトリへの攻撃を計画していた。
【編集部後記】
VS Codeを日常的に使われている開発者の方にとって、今回の発見は決して他人事ではありませんよね。私たちが当たり前のように信頼している開発環境にも、こうした盲点が潜んでいることを知り、改めてセキュリティの難しさを感じます。
皆さんは拡張機能をインストールする際、どのような基準で選んでいますか?また、チーム内でのセキュリティ対策についてはいかがでしょうか。開発効率を重視する一方で、セキュリティとのバランスをどう取るか、これは私たち開発者コミュニティ全体で向き合うべき課題だと思います。ぜひ皆さんのお考えもお聞かせください。