悪意のあるnpmパッケージ「js-logger-pack」は、Hugging Faceをマルウェアのカテゴリだけでなく、盗まれたデータをリアルタイムで流出させるバックエンドとしても悪用し、人気のあるAIプラットフォームを、機能豊富なクロスプラットフォーム型インプラントチェーンの一部に変えています。
過去のキャンペーンではHugging Faceをこれらのバイナリの単なるホスティングポイントとして使用していましたが、最新のビルドではさらに進んで、被害者のデータを攻撃者が管理するプライベートHugging Faceデータセットにプッシュしています。
その結果、一見無害に見えるnpmロギングライブラリが情報窃取ツール、キーロガー、リモートアクセスツールとなり、通常の開発者ワークフローに溶け込むサプライチェーン攻撃が発生します。
npm上では、js-logger-packは正当なロギングユーティリティに見えます。dist/index.jsには、軽い検査では通過するもっともらしい無害なロガー実装が含まれています。
js-logger-packの最新バージョン(1.1.27を含む)は、パブリックHugging Faceリポジトリ「Lordplay/system-releases」からMicrosoftSystem64という名前のバイナリをダウンロードし、セカンドステージペイロードとして実行します。
真の実行トリガーはpackage.jsonに隠されています。ここではpostinstallフックがnpm installの際にnode print.cjsを静かに実行してから、バックグラウンドで自身をバックアップさせるので、インストールが正常に完了したように見える間、マルウェアダウンローダーは実行し続けます。
print.cjsはhttps[:]//huggingface.co/Lordplay/system-releases/resolve/main/に接続し、OSとアーキテクチャに基づいて4つのMicrosoftSystem64バイナリの1つをプル(Windows PE、macOS Intel/ARM Mach-O、Linux ELF)します。
これらのバイナリは4つの異なるファミリーではなく、同じクロスプラットフォーム型インプラントをNode.js Single Executable Application(SEA)コンテナにラップしたもので、すべてのプラットフォーム上で同一の組み込みJavaScriptバンドルを持っています。
インプラントの機能とC2
起動されると、MicrosoftSystem64プロセスは永続性を登録(Windows上ではスケジュール済みタスクまたはRunキー、macOS上ではLaunchAgent、Linux上ではsystemd/XDG自動起動経由)し、WebSocketおよびHTTPで195[.]201[.]194[.]107:8010のハードコードされたコントローラに接続して、データの収集を開始します。

箱から出したままで、キーストロークをログに記録し、クリップボードを監視し、秘密および機密ファイルをスキャンし、オペレーターコマンドを受け取るためのライブ接続を維持します。
インプラントは、攻撃者がファイルをリストして読み込み、ディレクトリを削除または作成し、認証情報とウォレットを再帰的にスキャンし、Telegram Desktopのデータを流出させ、任意のバイナリをデプロイし、ブラウザセッションをクリアし、オンデマンドで自身を更新することができるリッチタスクプロトコルを公開しています。
ファイル操作は、サンドボックスなしで任意の絶対パス、UNCパス、およびドライブレターパスを受け入れるので、オペレーターは侵害されたマシン上のユーザーが到達可能なすべてのデータに広くアクセスできます。

Hugging Faceはこの攻撃チェーンで2つの役割を果たしています。MicrosoftSystem64バイナリをホストし、盗まれたデータの流出バックエンドとしても機能します。
マルウェアは定期的にLordplay/system-releasesリポジトリのversion.txtファイルをチェックして新しいバイナリが利用可能かを確認し、その後、署名またはチェックサムの検証なしにダウンロードして再起動することで自己更新します。

データ窃取の場合、オペレーターはupload_folder_hfタスクを発行して、選択したファイルまたはディレクトリをgzipにアーカイブするようインプラントに指示し、被害者のagentIdとパスから派生したプライベートデータセットを作成または再利用し、組み込まれたHugging Faceクライアントライブラリを使用してアーカイブをアップロードできます。
アップロード状態はローカルで追跡され、再接続後に再開されます。つまり、攻撃者は大規模な盗まれたデータセットをC2サーバー自体に保持する必要がなく、代わりにHugging Faceのインフラストラクチャをストレージおよび配布に活用できます。
クロスプラットフォームキーロギングとOSINTリンク
コアペイロードはJavaScriptであるため、各プラットフォーム上でネイティブヘルパーを動的にコンパイルまたは呼び出して、キーストロークおよびクリップボードデータをプラットフォームネイティブ方式でキャプチャします。
Windows上ではPowerShell経由でC#コードをコンパイルし、macOS上では一時的なSwiftプログラムをコンパイルし、Linux上ではX11ツールまたは生の/dev/inputアクセスを使用して、デスクトップ全体のユーザー入力への深い可視性を確保します。
Lordplay Hugging Faceネームスペース周辺のオープンソースインテリジェンスは、異常なアイデンティティシフトを示しています。古い無害なモデルリポジトリは1つの一貫した著者アイデンティティを使用していますが、悪意のあるsystem-releasesリポジトリは、実際のエンジニアリングエグゼクティブと一致する異なる著者文字列に切り替えます。おそらく意図的ななりすまし行為として。
whisdev / snipmaxi / jrodacooker.devクラスターとの追加の重複は、キャンペーン隣接ペルソナおよびインフラストラクチャを示唆していますが、利用可能な証拠は操作を特定の個人に決定的に帰属させていません。
[email protected]、またはMicrosoftSystem64バイナリをダウンロードするリリースをインストールした環境は、CI/CDランナーを含む完全に侵害されたものとして扱う必要があります。および開発者ワークステーション。
ディフェンダーは、影響を受けたホストで公開されているすべてのシークレットをローテーションし、Windows、macOS、およびLinux全体で永続性アーティファクトを削除し、ローカルインプラントデータディレクトリをワイプし、悪意のあるnpmパッケージとロックファイルをパージし、デフォルトでスクリプト実行を無効にした状態で依存関係を再インストールする必要があります。
翻訳元: https://gbhackers.com/malicious-npm-package-3/