悪意ある Visual Studio Code 拡張機能が偽PNGファイル内にトロイの木馬を隠蔽

サイバーセキュリティ企業 ReversingLabs(RL)は、Visual Studio Code(VS Code)マーケットプレイス上の開発者を標的とした、巧妙で長期にわたるキャンペーンを検知しました。合計で19個の悪意ある拡張機能がトロイの木馬を隠していることが判明しており、このキャンペーンは2025年2月から活動しており、12月2日に発見されました。

参考までに、VS Code は多くの開発者にとって重要なツールであり、その拡張機能(追加機能)が配布されるマーケットプレイスは、サイバー犯罪者にとって格好の標的です。今回の発見は、同じマーケットプレイス上で 偽の「Prettier」拡張機能 が Anivia Stealer をばらまいていたのが確認されてから、わずか数週間後のことです。

依存関係を悪用するトリック

RL の脅威リサーチャーである Petar Kirhmajer 氏によると、攻撃者は古典的な トロイの木馬 手法を用いており、悪意あるソフトウェアを無害なものに見せかけていました。今回の場合、マルウェアは拡張機能の依存関係フォルダ内に隠されていました。依存関係フォルダとは、拡張機能が正常に動作するために必要な、あらかじめパッケージ化されたコードが格納される場所です。

攻撃者は賢いやり方を取りました。新しいコードを追加する代わりに、2021年以降で90億回以上ダウンロードされている、非常に人気が高く信頼されている依存パッケージ「path-is-absolute」を改ざんしたのです。

Image
オリジナルと改ざんされた「path-is-absolute」パッケージの比較(出典:ReversingLabs)

攻撃者は、この信頼されたパッケージを不正な拡張機能にバンドルする前に改変し、新たなコードを追加しました。この新しいコードの唯一の役割は、VS Code の起動時に即座に実行され、内部ファイル「lock」に隠された JavaScript ドロッパーをデコードすることでした。つまり、依存関係リストにある有名なパッケージ名を盲目的に信頼していたユーザーは、特に不審な点に気づかなかった可能性があります。

偽のPNGファイル

最終段階かつ最も巧妙な手口は、banner.png という名前のファイルに関係していました。.png という拡張子からは一般的な画像ファイルが想像されますが、RL の研究者らは、これは単なる偽装に過ぎないと指摘しています。通常の画像ビューアで開こうとすると、エラーメッセージが表示されました。

さらに調査を進めた結果、banner.png は画像ではなく、2つの悪意あるバイナリ(マルウェアの中核部分)を含むアーカイブファイルであることが判明しました。デコードされたドロッパーは、その後、Windows 標準ツールである cmstp.exe を利用して、これらのバイナリを起動しました。2つのうち大きい方は高度なトロイの木馬であり、その具体的な攻撃能力については現在も分析が続けられています。

なお、このキャンペーン内の他のいくつかの悪意ある拡張機能は、別の依存パッケージ (@actions/io) を使用しており、偽PNGファイルには依存していませんでした。その代わりに、バイナリを .ts ファイルと .map ファイルに分割して隠していました。

この 調査 は 2025年12月10日に公開され、Hackread.com と共有されたもので、脅威の急増を示しています。2025年の最初の10か月間で、悪意ある VS Code の検知件数は、2024年の27件から今年は105件へと、ほぼ4倍に増加しました。

研究者らは、検知されたすべての拡張機能が Microsoft に報告済みであることを確認しています。開発者に対しては、特にダウンロード数が少ない、あるいはレビューがほとんどない拡張機能をインストールする前に、十分な確認を行うよう強く呼びかけています。

翻訳元: https://hackread.com/malicious-vs-code-extensions-trojan-fake-png-files/

ソース: hackread.com