Source:https://thehackernews.com/2025/12/researchers-find-malicious-vs-code-go.html
🛡 概要
研究者が、Microsoft Visual Studio Code (VS Code) Marketplace上の2つの拡張機能と、Go・npm・Rust各エコシステムで流通する複数の悪性パッケージを確認しました。これらは外観上はテーマやAI支援ツール、ユーティリティを装いながら、実際には追加ペイロードの取得、スクリーンショット取得、クリップボード・ブラウザセッション・Wi‑Fi認証情報などの窃取を行い、攻撃者管理のサーバへ送信します。VS Code拡張はBigBlack.bitcoin-black(12/5/2025削除、16インストール)、BigBlack.codo-ai(12/8/2025削除、25インストール)、および同出版社のBigBlack.mrbigblacktheme(マルウェア含有で削除)。並行して、Goのbpoorman/uuid・bpoorman/uid(信頼ライブラリのtyposquat)、npmのelf-stats-*系420パッケージ、Rustのfinch-rust+sha-rustも確認されています。CVSSは現時点で未割り当てです。
🔍 技術詳細
VS Code拡張は、見かけは「プレミアムダークテーマ」や「AIコーディング支援」ですが、内部に隠し機能を備え、VS Codeの操作トリガーで活動します。初期版はPowerShellを用い、外部の「syn1112223334445556667778889990[.]org」からパスワード付きZIPを取得し、Expand‑Archive/.NET System.IO.Compression/DotNetZip/7‑Zip(存在時)で展開。ある版では誤ってPowerShellウィンドウが可視化され得ましたが、後続版はウィンドウを不可視化し、バッチ+curlでEXEとDLLを直接取得する流れに簡略化しています。投入される実行ファイルは正規のLightshotのバイナリで、同一ディレクトリの不正DLL「Lightshot.dll」を読み込ませるDLLサイドローディングにより実行フローを乗っ取り、以下を収集します:クリップボード、インストール済みアプリ一覧、実行中プロセス、デスクトップのスクリーンショット、保存済みWi‑Fi資格情報、詳細なシステム情報。さらに、Google ChromeとMicrosoft Edgeをヘッドレスで起動し、保存Cookieを取得してユーザーセッションを乗っ取ります。収集データは攻撃者サーバへ送出されます。
Goでは、github[.]com/bpoorman/uuidとgithub[.]com/bpoorman/uidが、google/uuidやpborman/uuidに似せたtyposquatで、アプリ側が用意されたvalid関数を呼ぶと、検証対象データをpaste系サービス「dpaste」へ流出させます。npmでは、仏語話者と見られる攻撃者が「elf-stats-*」命名規則で420個のパッケージを投入し、一部がリバースシェルの実行やPipedreamエンドポイントへのファイル送信機能を含有。Rustでは、「finch」を装ったfinch-rustがローダとして働き、スケッチのシリアライズ機能にフックされた一行の不正コードでsha-rust(資格情報窃取)を読込・実行します。
いずれも、開発者の開発環境・依存解決プロセス・実行時を狙うサプライチェーン攻撃の態様で、検知回避や正規機能への混入(Living-off-the-Land/DLLハイジャック/typosquatting)を併用しています。
⚠ 影響
・ソースコード、設計資料、認証トークンやCookieの流出によるリポジトリ/チケット/CI/CD/クラウド管理コンソールの乗っ取り
・Wi‑Fi資格情報流出を起点とした横展開、在宅開発端末からの社内侵入リスク
・拡張機能や依存パッケージを介したビルドパイプライン汚染、署名鍵・環境変数・機密設定の漏洩
・ブランド/コンプライアンス損害、秘密保持契約違反、インシデント対応コスト増
🛠 対策
・VS Code拡張のホワイトリスト運用:企業内マーケットプレイス(extensionsGallery設定)や発行者の検証済みバッジ確認、未知Publisherのブロック。拡張格納ディレクトリ(%USERPROFILE%/.vscode/extensions)に改変検知を導入。
・Code.exeからのPowerShell/cmd/curl/7z/Lightshot.exe起動をEDRで検知・制御(親子プロセス制約)。
・依存固定とスクリプト抑止:npmはnpm ci --ignore-scriptsをCIで標準化、package-lock.json/npm-shrinkwrap.jsonを強制。RustはCargo.lock固定+cargo-vetやcargo-crevで審査、GoはGOSUMDB(sum.golang.org)有効とgo mod verify。
・SCA/レジストリ監視:typosquat検出(例:Socket、osv-scanner)をCIに組込み、未知/新規公開パッケージは手動審査ゲートを通す。
・ネットワーク制御:dpasteやPipedreamなど不要な外向き宛先の遮断、TLS SNI/HTTP Host監視。
・資格情報保護:ブラウザプロファイルの企業管理、セッション固定の短縮、機密操作に再認証/条件付きアクセス。
・インシデント対応:影響端末のオフボーディング、トークン失効、Wi‑Fiキーローテーション、リポジトリ強制ログアウト・PAT再発行。
📌 SOC視点
・プロセス監視:Code.exe→powershell.exe/cmd.exe/curl.exe/7z.exe/Lightshot.exe、Code.exe→chrome.exe/msedge.exe(–headless等)を高優先度で検知。Windows 4688、Sysmon Event ID 1/3/7/11/22、PowerShell 4103/4104を有効化。
・ファイル/モジュール:ユーザプロファイル配下や拡張フォルダに出現するLightshot.exe/Lightshot.dllの新規作成(Sysmon 11)、DLLロードの異常(Sysmon 7)。
・DNS/HTTP:syn1112223334445556667778889990[.]org、dpaste系、Pipedreamエンドポイントへの通信(POST/PUT、異常SNI/Host)。
・VS Code拡張の監査:新規フォルダ生成、package.jsonの改変、署名/Publisherメタの不整合。
・コンテキスト相関:拡張インストール直後のプロセス連鎖、ブラウザCookieアクセスを伴うヘッドレス起動、短時間に多量のスクリーンショット/クリップボード取得。
📈 MITRE ATT&CK
・Initial Access: T1195 供給網攻撃(拡張機能/パッケージの汚染)
・Defense Evasion: T1574.001 DLL検索順序ハイジャック(Lightshot.dll)
・Execution: T1059.001 PowerShell、T1059.003 Windowsコマンドシェル(バッチ+curl)
・Collection: T1113 画面キャプチャ、T1115 クリップボード、T1555.003 ブラウザ資格情報
・Discovery: T1082 システム情報、T1057 プロセス、T1518 ソフトウェア
・Command and Control: T1105 ツール/ペイロード転送(外部サーバから取得)
・Exfiltration: T1567.003 テキスト共有サイトへの流出(dpaste)、T1041 C2チャネル上の流出
🏢 組織規模別助言
小規模(〜50名): 市販EDRの導入と親子プロセス制御から開始。VS Code拡張の許可リストと、npm/Go/Rustのロックファイル強制をGitフックで徹底。
中規模(50〜500名): 私設パッケージプロキシ/キャッシュを構築(Artifactory/Nexus等)し、外部レジストリへの直接到達を遮断。CIでosv-scanner+typosquat検出を強制ゲート化。
大規模(500名〜): 開発端末をゼロトラスト管理下に置き、拡張・依存の承認ワークフロー、SBOM(CycloneDX/SPDX)自動生成、SSDF(NIST SP 800‑218)準拠の供給網リスク管理を制度化。
🔎 類似事例
・npm「event-stream」汚染(2018)— ウォレット狙いの悪性依存混入
・UAParser.jsの悪性版流通(2021)— CI/端末の情報窃取
・CVE-2024-3094(xz Utilsバックドア)— ビルド・配布プロセスを狙う供給網侵害
🧭 次の一手
直ちに拡張・依存のインベントリを棚卸しし、BigBlack系拡張、elf-stats-*、bpoorman/uuid・uid、finch-rust/sha-rustの混入を確認・除去してください。被疑端末でトークン失効とブラウザプロファイルの再初期化を実施。次は、社内の「拡張機能・依存の承認フロー設計」と「CIにおけるtyposquat検出/ignore-scripts標準化」のガイドを参照し、SSDFに沿った供給網管理へ移行しましょう。


