🛡 概要
開発者向け拡張マーケットプレース(Microsoft Visual Studio MarketplaceとOpenVSX)で、Glasswormマルウェアの第3波が確認されました。新たに24件の悪性パッケージが両プラットフォームに投入され、人気拡張を装って配布されています。拡張が導入されると、GitHub・npm・OpenVSXアカウントの窃取や暗号資産ウォレット関連データの窃取、SOCKSプロキシの設置、HVNCによる秘匿リモートアクセスが行われます。初回感染は除去されましたが、新規パブリッシャーとパッケージで再出現しました。第3波はSecure AnnexのJohn Tuckner氏が確認し、Flutter/Vim/Yaml/Tailwind/Svelte/React Native/Vueなど広範な人気ツール・フレームワークが標的です。
本件は特定CVEが割り当てられた脆弱性ではなくキャンペーン起因です。ただし、見えないUnicode文字でコードを隠す手口は既知の「Trojan Source」(CVE-2021-42574)に関連します(本キャンペーン固有のCVSSはありません)。
🔍 技術詳細
攻撃者は正規風のVS Code互換拡張を用意し、審査通過後のアップデートで悪性コードを追加します。さらにダウンロード数を人工的に水増しして検索順位や信頼度を偽装し、正規拡張に酷似した名前・説明・アイコンでユーザーを欺きます。コード内では「不可視のUnicode制御文字(双方向制御など)」を差し込み、レビューや自動スキャンをすり抜ける難読化を行います。第3波では、拡張内にRust製インプラントが梱包され、拡張ホストプロセス(例:Code HelperやextensionHost)からネイティブバイナリが起動される挙動が見られます。
情報窃取の対象は、GitHub資格情報(例:~/.git-credentials、gh CLI設定)、npmトークン(~/.npmrc 等)、OpenVSXアクセストークン、そして暗号資産ウォレット関連データ(VS Code内の拡張データやブラウザ系ストア)です。C2面では被害端末上にSOCKSプロキシを展開し、攻撃者のトラフィックを被害機経由で中継することで秘匿化と信頼ドメイン悪用を図ります。さらにHVNC(Hidden VNC)クライアントを導入してステルスな遠隔操作を確立します。これらはプロセスの子孫関係に現れ、Code/extensionHost→Rust実行ファイル→ネットワーク待受/外向接続というチェーンを示すことが多いです。
確認された偽装パッケージ例(抜粋):
・VS Marketplace: iconkieftwo.icon-theme-materiall、prisma-inc.prisma-studio-assistance、prettier-vsc.vsce-prettier、flutcode.flutter-extension、csvmech.csvrainbow、codevsce.codelldb-vscode、saoudrizvsce.claude-devsce、clangdcode.clangd-vsce、cweijamysq.sync-settings-vscode、bphpburnsus.iconesvscode、klustfix.kluster-code-verify、vims-vsce.vscode-vim、yamlcode.yaml-vscode-extension、solblanco.svetle-vsce、vsceue.volar-vscode、redmat.vscode-quarkus-pro、msjsdreact.react-native-vsce など
・OpenVSX: bphpburn.icons-vscode、tailwind-nuxt.tailwindcss-for-react、flutcode.flutter-extension、yamlcode.yaml-vscode-extension、saoudrizvsce.claude-dev、saoudrizvsce.claude-devsce、vitalik.solidity など
⚠ 影響
開発者アカウントの乗っ取りにより、リポジトリ改ざん、パッケージ発行鍵の悪用、CI/CDへの横展開が発生し得ます。SOCKSプロキシにより被害端末が踏み台化し、社外への攻撃やデータ流出の隠蔽に悪用されるリスクがあります。HVNCによりユーザーの気づかぬ遠隔操作が可能となり、継続的な機密情報窃取が懸念されます。組織の信頼・ブランド毀損、規制対応、インシデント復旧コストが増大します。
🛠 対策
短期(即日):
・記載の悪性パッケージを全端末で列挙・アンインストール、VS Code拡張フォルダ(例:~/.vscode/extensions、%USERPROFILE%\.vscode\extensions)から不審ディレクトリ/実行ファイルを除去
・GitHub/npm/OpenVSXトークンの全ローテーション、SSO必須化・2FA強制、不要PAT失効、OAuthアプリの棚卸し
・当該端末の隔離、未知ポート(例::1080等)でのLISTENや外向接続ブロック、VNC関連トラフィック遮断
中期:
・VS Code拡張の許可リスト運用(企業内ミラー/私設マーケットの採用、発行者検証、署名/ハッシュ固定)
・EDR/AVでの拡張ディレクトリ実行監視、ネイティブバイナリ起動の制御(AppLocker/WDAC等)
・egress制御(プロキシ経由強制、SOCKS/不明TLD/新規登録ドメイン宛の遮断)、DNSログ監視
・シークレット管理(~/.npmrc、gh設定、.git-credentials への平文秘匿禁止、短寿命トークン化)
長期:
・サプライチェーンリスク管理(発行者信頼性評価、PR.SRに基づくベンダー/オープンソースガバナンス)
・開発端末の最小権限・分離(開発と個人利用の分離、管理者権限常用禁止)
・セキュアレビュー(Unicode制御文字の可視化・拒否設定、CIでのTrojan Source検査)
📌 SOC視点
検知ポイント:
・プロセス: Code/Code Helper/extensionHost配下で不明なRustバイナリやVNC/プロキシ関連プロセス生成(Sysmon EID 1/7、macOS FSEvents、Linux auditd)
・ファイル: VS Code拡張配下への実行ファイル/ライブラリ作成(Sysmon EID 11)、署名なしバイナリ出現
・ネットワーク: ローカルLISTEN(:1080などSOCKS)と外向接続の同時発生(Sysmon EID 3)、VNC相当ポート(5900/tcp等)
・認証/秘匿情報アクセス: ~/.npmrc、.git-credentials、%APPDATA%\gh\hosts.yml等への集中的アクセス、ZIP/暗号化後の外送
・コマンドライン: 「code –install-extension」「code –force」「–enable-proposed-api」等の不審連続実行
推奨ログソース: EDR、Sysmon、Windows Firewall、Proxy/NGFW、DNS、GitHub/npm/OpenVSXの監査ログ、VS Code拡張管理ログ。IOCとして上記パッケージIDと発行者名をブロックリスト化。
📈 MITRE ATT&CK
・Initial Access/Resource Development: T1195.001(開発ツール/依存関係の供給網妥協)— 拡張マーケット経由で悪性拡張を配布
・Defense Evasion: T1027(難読化/圧縮)— 不可視Unicodeでコードを隠蔽
・Credential Access: T1552(ファイル内資格情報)、T1555(パスワードストアからの資格情報)— GitHub/npm/OVSXトークンやウォレット情報窃取
・Command and Control: T1090(プロキシ)— 被害端末上のSOCKSで中継
・Lateral Movement/Command Execution: T1021.005(VNC)— HVNCによる秘匿リモート操作
🏢 組織規模別助言
小規模(〜50名): 拡張許可リストと2FA徹底、被害端末の迅速隔離とトークン総入替。管理者端末でのVS Code拡張導入を禁止。
中規模(50〜500名): 私設拡張リポジトリ運用、EDRで拡張実行監視ルール、プロキシ経由強制・SOCKS/VNC遮断、CI/CD用資格情報の短寿命化と監査。
大規模(500名以上): SBoM/SSDF準拠のサプライチェーン統制、コード署名検証と拡張サンドボックス化、集中化されたトークン管理(スコープ最小化/自動ローテ)、脅威ハンティングで拡張配下実行/通信のベースライン化。
🔎 類似事例
・Glassworm第1波(2024年10月、Koi Securityが初報)
・Trojan Source(CVE-2021-42574):不可視Unicodeを用いたソースコード偽装手法
・npm/PyPIでのタイポスクワッティング型マルウェア配布キャンペーン(開発者エコシステム狙い)
🧭 次の一手
まず全開発端末でインストール済み拡張の棚卸しを行い、本文の偽装パッケージを即時除去・隔離してください。続いて、GitHub/npm/OVSXトークンを全失効・再発行し、2FA/SSOを強制。VS Code拡張の許可リストと私設リポジトリを整備し、CIにUnicode制御文字検出を組み込んでください。詳細な運用手順や検知クエリの雛形は、当メディアの「開発環境サプライチェーン防御ガイド(実装編)」を参照ください。


