
VSCode Marketplace 上の 19 個の拡張機能によるステルスキャンペーンが 2 月から活動しており、依存関係フォルダー内に隠されたマルウェアで開発者を標的にしています。
この悪意ある活動は最近明らかになり、セキュリティ研究者は、攻撃者が .PNG 画像を装った悪意あるファイルを使用していたことを突き止めました。
VSCode Market は、広く利用されている VSCode 統合開発環境(IDE)向けの Microsoft 公式拡張機能ポータルであり、開発者はその機能を拡張したり、見た目をカスタマイズしたりすることができます。
その人気と、サプライチェーン攻撃で大きな影響を与えうる可能性のため、このプラットフォームは進化するキャンペーンを用いる脅威アクターから継続的に狙われています。
ファイルおよびソフトウェア・サプライチェーン・セキュリティを専門とする ReversingLabs は、これらの悪意ある拡張機能が、インストール時に VSCode が npm レジストリから依存関係を取得しないようにするため、あらかじめ「node_modules」フォルダーを同梱していることを発見しました。
同梱されたフォルダー内で、攻撃者は修正済みの依存関係「path-is-absolute」または「@actions/io」を追加しており、「index.js」ファイルに VSCode IDE の起動時に自動実行されるクラスを追加していました。

出典: ReversingLabs
「path-is-absolute」は 2021 年以降 90 億回ダウンロードされている非常に人気の高い npm パッケージであり、武器化されたバージョンは、このキャンペーンで使用された 19 個の拡張機能の中にのみ存在していました。
「index.js」ファイル内の新しいクラスによって導入されたコードは、「lock」という名前のファイル内にある難読化された JavaScript ドロッパーをデコードします。依存関係フォルダー内に存在する別のファイルは、.PNG(banner.png)ファイルを装ったアーカイブであり、その中には 2 つの悪意あるバイナリ、すなわち「cmstp.exe」と呼ばれる Living-off-the-land バイナリ(LoLBin)と、Rust 製トロイの木馬が格納されています。
ReversingLabs は現在も、このトロイの木馬の完全な機能を特定するための解析を続けています。
研究者によると、このキャンペーンで使用された 19 個の VSCode 拡張機能は、いずれもバージョン番号 1.0.0 で公開されており、名称は以下のようなバリエーションになっていました。
- Malkolm Theme
- PandaExpress Theme
- Prada 555 Theme
- Priskinski Theme
ReversingLabs はこれらを Microsoft に報告し、BleepingComputer がすべて削除されたことを確認しました。しかし、拡張機能をインストールしていたユーザーは、侵害の兆候がないかシステムをスキャンする必要があります。
脅威アクターは、ソフトウェア開発に利用される公開リポジトリ上で検知を回避する新たな手法を見つけ続けているため、とりわけ信頼できる発行元ではない場合、インストール前にパッケージを精査することが推奨されます。
特に、VS Code 拡張機能のように依存関係がパッケージ内に同梱されていて、npm のような信頼できるソースから取得されるのではない場合には、依存関係を慎重に確認するべきです。