Hackers で悪意のパッケージを検出:マルウェア配布とデータ送信バックエンドとして悪用

Hackers Use Hugging Face to Host Second-Stage Malware for npm Supply Chain Attack

2026/05/22 CyberSecurityNews — AI 分野で最も信頼されるプラットフォーム Hugging Face を武器化する、新たなハッキング手法が確認された。北朝鮮に関連する脅威アクターたちが、広く利用される AI/ML ハブである Hugging Face 内に 2-Step のマルウェアを埋め込み、マルウェア配布チャネルおよびデータ外部送信バックエンドとして悪用している。この活動が、世界中のソフトウェア開発者を標的とする、高度な npm サプライチェーン攻撃の一つとなっている。

この “terminal-logger-utils” と呼ばれる攻撃は、通常の開発ユーティリティのように見える単純な npm パッケージから開始される。それに加えて、パッケージ pretty-logger-utils/ts-logger-pack/pinno-loggers が連鎖することで悪意の挙動を拡散し、それらをインストールする開発者に深刻なリスクをもたらしている。

このマルウェアは、Telegram データ/SSH キー/暗号資産ウォレット/ブラウザ・ログイン・データベース/クラウド設定ファイルなどを窃取する。

これらの悪意のパッケージを展開しているのは、北朝鮮 (DPRK) 関連キャンペーンに関連する脅威アクターであることを、OX Security の研究者たちが特定した。以前の DPRK 活動に関連していた脅威アクターのアカウント “jpeek895” が、類似の npm パッケージを公開していたことを、kmsec.uk が指摘している。

OX Security は、「このパッケージは、キーロガー/インフォスティーラー/リモートアクセス型トロイの木馬 (RAT) の機能を備える。きわめて高機能で危険な脅威である」と述べている。

この攻撃の特徴は、Hugging Face を巧妙に悪用し、検知を回避している点にある。マルウェアを配布する攻撃者は、独自のサーバを運用する代わりに、Hugging Face のプラットフォーム上に第 2段階のバイナリをホストしている。この手法により、多くのセキュリティ・フィルタにおいて、安全かつ信頼できるサイトとして扱われる。

さらに、窃取されたデータは Hugging Face のプライベート・データセットへアップロードされる。その結果、悪意ある通信は通常の AI 研究トラフィックに自然に溶け込み、検知を回避する。

依存パッケージに関連する npm メンテナ・アカウント pvnd3540749/yggedd817513/jpeek886 が感染の拡大に関与している。

一連の悪意のパッケージをインストールした開発者は、自身の環境が侵害されたという前提で、直ちに対応する必要がある。

Hugging Face を悪用するハッカー

マルウェアの侵入点は、パッケージの package.json 内に埋め込まれた、ポスト・インストール・フックにある。開発者が npm インストールを実行すると、このフックにより “utils.cjs” というファイルが静かに実行される。このファイルは、難読化されたマルウェア・ドロッパであり、被害者の OS を判定した上で、Hugging Face から適切なバイナリを取得する。

Attack chain (Source – OX-Security)

ダウンロードされたバイナリは、Node.js Single Executable Application であり、悪意の JavaScript インプラントを内包している。

このバイナリが実行されると、WebSocket 接続を通じて攻撃者のサーバへの接続が確立され、以下のようなマシン制御へと至る。

  • ファイルの読み書き
  • シェルコマンドの実行
  • スクリーンショットの取得
  • 入力の注入

さらに起動時にはバックグラウンドループが並行実行され、キーストロークの継続的な記録/クリップボードの監視/窃取データの HTTP エンドポイントへの送信を行う。これらはすべて開発者に気付かれずに実行される。

永続化および自己更新のメカニズム

Windows マシン上に展開されたインプラントは 、”%LOCALAPPDATA%\MicrosoftSystem64″ に自身をインストールする。このディレクトリ名は正規の Microsoft システム・フォルダに似せて設計されている。

その後に、隠蔽された VBS ランチャおよびスケジュール・タスクにより、ログイン時の永続化が登録される。それに加えて、レジストリ Run キーが、フォールバックとして設定される。

初回の実行時には、Hugging Face 上の攻撃者リポジトリに接続し、自身の更新に関する必要性の有無を確認する。この自己更新の機能により、再感染を行わずにインプラントの置換やアップグレードが可能となる。

セキュリティ・チームにとって必要なことは、すべての感染したマシンからマルウェアを削除し、以下に示す侵害指標 (IoC) への通信を遮断することだ。それに加えて、すべてのキーをローテーションし、二要素認証を有効にすべきである。

開発者に対して強く推奨されるのは、不明なパッケージに含まれるポスト・インストール・スクリプトを信頼しないことである。さらに、CI やビルドパイプライン環境では npm ci の使用が推奨される。

侵害指標 (IoC)
TypeIndicatorDescription
npm Packageterminal-logger-utilsPrimary malicious npm package; contains the postinstall hook that triggers the attack chain
npm Packagepretty-logger-utilsDependent malicious package that imports terminal-logger-utils
npm Packagets-logger-packDependent malicious package that imports terminal-logger-utils
npm Packagepinno-loggersDependent malicious package that imports terminal-logger-utils
File Nameutils.cjsObfuscated malware dropper; opened by the postinstall hook to download second-stage payload
File Path%LOCALAPPDATA%\MicrosoftSystem64Persistence installation path used by the implant on Windows machines
Hugging Face RepositoryLordplay/system-releasesAttacker-controlled repository used to host the second-stage Node.js SEA binaries
HTTP Endpoint/api/validate/keyboard-eventsC2 endpoint used by the implant to exfiltrate keystroke data over HTTP
Threat Actor Accountjpeek895npm account responsible for uploading the primary malicious package
npm Accountpvnd3540749Maintainer account linked to the dependent malicious packages
npm Accountyggedd817513Maintainer account linked to the dependent malicious packages
npm Accountjpeek886Maintainer account linked to the dependent malicious packages
IP Address195.201.194.107WebSocket C2 server address used by the implant for full machine control

Note: IP アドレスおよびドメインは、意図的に無効化 ( 例: [.] ) されている。再有効化は MISP/VirusTotal/SIEM などの、制御された脅威インテリジェンス環境で実施すべきである。