MicrosoftのVisual Studio Code Marketplaceにある9つのVSCode拡張機能が、合法的な開発ツールを装いながら、ユーザーにイーサリアムとモネロを採掘するXMRigクリプトマイナーを感染させている。
Microsoft VSCodeは、ユーザーがプログラムの機能を拡張するための拡張機能をインストールできる人気のコードエディタです。これらの拡張機能は、開発者がアドオンを見つけてインストールするためのオンラインハブであるマイクロソフトのVSCode Marketplaceからダウンロードできる。
ExtensionTotalの研究者Yuval Ronenは、2025年4月4日にMicrosoftのポータルで公開された9つのVSCode拡張機能を発見した。
パッケージ名は以下の通り:
- Discord Rich Presencefor VS Code (by `Mark H`) – 189K Installs
- Rojo – Roblox Studio Sync(by `evaera`) – 117K Installs
- Solidity コンパイラ(`VSCode Developer` 製) – 1.3K インストール
- Claude AI(`Mark H` 氏作)
- Golang コンパイラ(`Mark H` 氏作)
- VSCode 用 ChatGPT エージェント(`Mark H` 氏作)
- HTML 難読化ツール(`Mark H` 氏作)
- VSCode 用 Python 難読化ツール(by `Mark H`)
- VSCode 用 Rust コンパイラ(by `Mark H`)
マーケットプレイスによれば、4月4日以降、これらの拡張機能はすでに30万以上のインストールを集めている。これらの数字は、拡張機能に正当性と人気を与え、他の人にインストールするよう誘うために、人為的に膨らませた可能性が高い。
ExtensionTotalによると、この悪質な拡張機能をMicrosoftに報告したが、本稿執筆時点ではまだ利用可能な状態だという。

Source :
PowerShellコードがXMRigマイナーをインストール
インストールされ、有効化されると、悪意のある拡張機能は、’https://asdf11[.]xyz/’にある外部ソースからPowerShellスクリプトを取得し、実行します。終了すると、なりすました正規の拡張機能もインストールされるため、感染したユーザーが不審に思うことはありません。

ソース :
悪意のあるPowerShellスクリプトは、防御の無効化、永続性の確立、権限の昇格、最終的なクリプトマイナーのロードなど、複数の機能を実行します。
まず、「OnedriveStartup」を装ったスケジュールタスクを作成し、Windowsレジストリにスクリプトを注入して、システム起動時にマルウェア(Launcher.exe)が実行されるようにします。
次に、Windows UpdateやUpdate Medicのような重要なWindowsサービスをオフにし、検出を回避するためにWindows Defenderの除外リストに作業ディレクトリを追加します。
マルウェアが管理者権限で実行されなかった場合、システム・バイナリ(ComputerDefaults.exe)を模倣し、悪意のあるMLANG.dllを使用してDLLハイジャックを行い、特権を昇格させてLauncher.exeペイロードを実行します。
base64エンコード形式の実行ファイルは、PowerShellスクリプトによってデコードされ、myaunet[.]suのセカンダリサーバに接続し、Monero暗号通貨採掘ツールであるXMRigをダウンロードして実行します。
脅威行為者のリモートサーバーにも/npm/フォルダがあることが判明し、このキャンペーンがそのパッケージインデックスでもアクティブである可能性が示されました。しかし、NPMプラットフォーム上で悪意のあるファイルを見つけることはできませんでした。

Source :
ExtensionTotalのレポートに記載されている9つの拡張機能のいずれかをインストールしている場合は、直ちにそれらを削除し、手動でコインマイナー、スケジュールされたタスク、レジストリキー、およびマルウェアディレクトリを見つけて削除する必要があります。
この9つの拡張機能については、マイクロソフト社に問い合わせたので、その回答とともにこの記事を更新する予定である。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; object-fit: cover; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:10px 20px; width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; text-align: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px; width: 100%; } .ia_button { width: 100%; } .
Comments