Open VSXで本物になりすました悪意ある拡張機能77個が検出、開発者の環境情報を外部へ送信
要点
-
オープンな拡張機能配布サイト「Open VSX」において、実在する開発者ツールを装って開発環境の情報を盗み出す77個の悪意ある拡張機能が発見された。
-
該当する拡張機能はすでに削除されているが、インストールされたマシンのホスト名などの情報を無断で送信する動作を行っていた。
-
うち19個は詳細な調査を行う「偵察型」であり、Gitリポジトリの情報や自動ビルド環境の設定値、他のインストール済み拡張機能の一覧などを収集していた。
-
悪意あるコードは「匿名の利用状況データ(メトリクス)」と偽って実装されており、エディタのデータ送信拒否設定を無視して機能するように設計されていた。
-
オープンソースのエディタ拡張機能配布サイトである「Open VSX(VS Codeなどのエディタに対応した拡張機能の公開レジストリ)」において、実在する人気ツールになりすまし、インストールされた開発環境の情報を外部に送信する77個の悪意ある拡張機能が発見された。これはセキュリティ企業であるManifold Securityが2026年8月5日に公表した調査結果で明らかになったもので、問題の拡張機能群は2026年8月3日までにすでにサイト上から排除されている。
本物と見分けがつかない「なりすまし」の手口
Manifold Securityによると、これら「エビルツイン(悪意あるなりすまし)」と呼ばれる拡張機能は、2026年7月26日から8月1日の間にOpen VSXへアップロードされた。
攻撃者は、Microsoftが運営する公式のVS Code Marketplaceで提供されている本物の拡張機能の名前、名前空間(開発者や組織を識別するための固有の名前)、および説明文をそのまま再利用していた。しかし、これらは本物の開発者とは無関係の別のアカウントから公開されており、バージョン番号も「0.0.1」などの極めて低い数値に設定されていた。
さらに、これらの拡張機能は、紹介文に書かれているような本来の便利な機能を一切備えていなかった。インストールされると、エディタの画面下部にあるステータスバーに「アクティブ(有効)」であることを示すメッセージを表示するだけで、裏では即座にデータの収集と外部への送信を開始していたという。
送信先はすべて「mangorbit[.]com」という特定のドメインに統一されていた。このドメインは、最初の不正なパッケージが公開される11日前にあたる2026年7月15日に登録されたものであることが分かっている。
送信情報の詳細度に応じた2つのグループ
発見された77個の拡張機能は、送信する情報の詳細度に応じて2つのグループに分類されている。
1つ目のグループ(58個)は比較的軽量な情報収集を行うもので、主にマシンのホスト名(ネットワーク上でコンピュータを識別するための名前)や、開発中のワークスペースフォルダ名、エディタのバージョンなどを送信していた。
2つ目のグループ(19個)は、より高度で詳細な情報を収集する「偵察用」のペイロード(悪意ある動作を行うコード)を搭載していた。このグループが収集していた情報は多岐にわたり、ローカルのホスト名やOSのユーザー名、エディタの名称とバージョン、ホスト種別、マシンの識別ID、プラットフォームのアーキテクチャ、ロケール(言語や国・地域の設定)、タイムゾーン、さらには開いているワークスペースフォルダのファイルシステム上のフルパスまで含まれていた。
この偵察用の動作を行っていた19個の拡張機能IDは以下の通りである。
amd.gaia-vscodeartsy.artsy-studio-extension-packconfigcat.configcat-feature-flagsiotaledger.iota-movemarketplace.visualstudioobyte.oscript-vscode-pluginopeneuphoria.vscode-euphoriaoss.sfmc-devtools-vscoderumbledb.jsoniq-vscodessagov.uef-snippetstaskfile.vscode-taskdoi.fileheadercommentmengsiCode.vscode-django-boilerplatemove.move-analyzeruavcan.dsdlvs-publisher-988541.apexsql-power-toolscasualjim.gotemplatejcamp.dotnet-test-provider-viewsuperposition.supertoml-analyzer
執拗な情報収集と検出回避の仕組み
この偵察用の拡張機能は、単に環境情報を盗み出すだけでなく、開発プロジェクトの構成に迫る詳細な設定も調査していた。
具体的には、開発中のプロジェクトフォルダ内にある「.git」ディレクトリを調べ、連携しているGitの接続先ホストや開発元の組織、開発者のメールアドレスのドメイン、現在のブランチ名、最新コミットのSHAハッシュ値を読み取っていた。また、すでにエディタにインストールされている最大60個の拡張機能のIDや、ネットワーク環境内のプロキシサーバー(通信を中継するサーバー)のホスト名もリストアップしていた。
さらに、CI(継続的インテグレーション:ソフトウェアのビルドやテストを自動化する仕組み)環境で実行されているかを判別するため、GitHubやAzure DevOps、CircleCI、Buildkite、Gitpodといった各種開発・ビルド支援サービスに関連する環境変数(「GITHUB_REPOSITORY」や「CI_PROJECT_PATH」など)の値も抽出して送信していた。エディタ自身のテレメトリ(利用状況を開発元に自動送信する機能)をユーザーが「オプトアウト(送信拒否)」に設定しているかどうかをチェックし、その設定状況すらもデータとして送信していたという。
この悪意あるコードには、送信先ドメインがブロックされることを見越したフォールバック(代替)機能も組み込まれていた。もしメインの送信先への接続が遮断された場合、DNS(ドメイン名をIPアドレスに変換するシステム)のTXTレコードという仕組みを用いて、新しい送信先のURLを動的に取得するよう設計されていた。
また、情報収集が一時的な失敗で終わらないよう、通信が失敗した場合には、約15分後、50分後、3.5時間後、それ以降は7〜8時間おきに再試行を繰り返し、エディタが再起動されるたびに処理を再開して最大7日間試み続ける仕組みもあった。さらに、プロジェクトの自動設定ファイルである「devcontainer.json」などに自身のIDが含まれているかを調べ、その拡張機能が「プロジェクトの要請で自動インストールされたものか」それとも「開発者が手動で選択して入れたものか」を判別するためのフラグまで送信していた。
補足:他のサプライチェーン攻撃の発生
今回のOpen VSXでの問題が明らかになったのと同時期に、別のソフトウェアサプライチェーン攻撃(開発や配布の過程を狙ったサイバー攻撃)である「ChainDrop」キャンペーンについても報告されている。こちらはJavaScriptのパッケージ管理システムである「npm」において、450個の固有パッケージ(合計2,244個のアーティファクト)が侵害され、情報を盗み出すマルウェア(悪意あるソフトウェア)の配信や、盗まれたトークンを用いたさらなる改ざんバージョンの公開が行われたという。