G_Wagon NPM Package Exploits Users to Steal Browser Credentials with Obfuscated Payload
2026/01/27 gbhackers — 正規の npm UI コンポーネント・ライブラリを装う、高度に洗練されたインフォスティーラー型マルウェアが、ansi-universal-ui パッケージを通じて開発者を標的としていることが判明した。このマルウェアは、研究者たちの間では G_Wagon と識別されている、多段階の難読化技術を用いて感染させたシステムから、ブラウザ認証情報/暗号資産ウォレット/クラウド認証キー/メッセージング・トークンを窃取するものである。

この Python ベースのインフォスティーラーを配布する悪意のパッケージは、2026年1月23日 08:46 UTC に初めて検知されたと、セキュリティ研究者たちは述べている。その攻撃シナリオは、独自のランタイム環境をダウンロードした後に、高度に難読化されたペイロードを実行して、ユーザーの機密データを侵害するというものだ。
このパッケージが主張するのは、モダン Web アプリケーション向けの軽量かつモジュール型の UI コンポーネント・システムであるが、正規の UI 機能は一切含まれていない。
攻撃者の手法
パッケージのバージョン履歴を分析すると、異例なほど高度な開発が反復的に行われていることが分かる。バージョン 1.2.0 では、npm の tar 依存関係を削除し、システムの tar コマンドを直接生成/実行する方式へと切り替えるという、注目すべき変更が加えられていた。
その後の、1月21日から 1月23日にかけて、脅威アクターは 10 個のバージョンを公開している。それぞれのバージョンには、攻撃インフラに対する段階的な改良が反映されている。

初期バージョンには、実行チェーンを検証するためのプレースホルダ・コードのみが含まれていたが、後続のリリースで追加されたのは、アンチ・フォレンジック機能/16 進数でエンコードされた C2 URL/メモリ上のみ実行されるペイロードなどである。
バージョン 1.4.0 は、回避技術における深刻な進化点である。従来の Python ペイロードをディスクへ書き込む方式を廃し、リモート・サーバから base64 形式でコードを取得してメモリ上で復号した後に、stdin 経由で直接 Python インタープリタへ渡す方式へと変更された。

このパッケージは、自己依存関係を利用した巧妙な手法により二重実行を実現している。”package.json” に自身を依存関係として記載することで、インストール時に postinstall フックが 2 回実行され、侵害成功の可能性が高められる。

それ以前のバージョン 1.3.7 では、実行後にペイロードを削除するためのクリーンアップ・コードが追加されていた。この脅威アクターは、ログ出力も正規に見えるよう細工しており、”Setting up Python environment” を “Initializing UI runtime” に変更するなどの改竄を行っている。
データ窃取機能
G_Wagon スティーラーは、きわめて広範な機密情報を標的としている。
Windows/macOS 環境においては、Chrome/Edge/Brave ブラウザから認証情報を抽出する機能を持つ。Windows システムでは、ブラウザ・プロセスを終了させた後に、Chrome DevTools Protocol を利用して Cookie を取得し、Windows Data Protection API を用いて保存済みパスワードを復号する。
その一方で、主要な目的は暗号資産ウォレットの窃取であり、MetaMask/Phantom/Coinbase Wallet/Trust Wallet/Ledger Live/Exodus を含む 100 以上のブラウザ・ウォレット・エクステンションが標的となっている。Ethereum/Solana/Cosmos/Polkadot/Cardano など、多数のブロックチェーン・エコシステムに対応する、ウォレット・エクステンションのデータ・ディレクトリ全体が窃取される。
クラウド認証情報も重要な標的である。このマルウェアは、AWS CLI/Azure CLI/Google Cloud SDK の認証ファイルに加え、SSH 鍵/Kubernetes コンフィグ・ファイルを取得する。さらに、Discord トークン/Telegram データ・ディレクトリ/Steam 認証ファイルも窃取対象に含まれる。
窃取されたデータは圧縮された上で、ニューヨーク/フランクフルトに配置された Appwrite ストレージ・バケットへアップロードされる。大容量ファイルについては 5 MB 単位に分割して送信され、転送の信頼性が確保されている。
一連のコードには Windows DLL が組み込まれており、NT ネイティブ API を用いてブラウザ・プロセスへインジェクションすることで、より深いシステム・アクセスが可能となっている。
影響を受けたユーザーにとって必要なことは、ansi-universal-ui の速やかな削除/ブラウザに保存されたすべてのパスワードの変更/暗号資産ウォレットの認証情報の無効化/クラウド・サービスのキーの再生成/メッセージング・アプリケーションのセッションの失効である。
正規の npm UI ライブラリを装い、開発者の環境から機密情報を根こそぎ奪う高度なマルウェア “ansi-universal-ui” (別名:G_Wagon) が発見されました。この脅威の本質は、開発者が日常的に利用する “npm install” という信頼のプロセスを悪用し、モダンな UI コンポーネントを装いながら、裏で多段階の難読化された Python ペイロードを実行する点にあります。
G_Wagon は、単なる悪意のスクリプトではなく、検知を逃れるための高度なエンジニアリングが施されています。
- メモリ上での実行:バージョン1.4.0以降では、悪意のコードをディスクに保存せず、リモート・サーバから取得した base64 データをメモリ上で復号し、そのまま Python インタープリタへ流し込む手法を採用しています。それにより、ファイル・スキャン型のセキュリティ製品を回避します。
- 二重実行とクリーンアップ:”package.json” の依存関係に、自分自身を含めるという構造により、インストール時に悪意のあるフックを 2 回実行させ、確実に感染させます。また、実行後にはペイロードを削除し、ログ出力を “UI ランタイムの初期化中” と偽装する隠蔽工作も行われています。
開発環境において、G_Wagon による感染の有無を確認する必要があります。よろしければ、カテゴリー Repository も、ご参照ください。
You must be logged in to post a comment.