悪意のあるNPMパッケージが開発者のログイン情報を狙う

はじめに

Zscaler ThreatLabzのセキュリティ研究者たちは、JavaScript開発者を標的とする高度なリモートアクセス型トロイの木馬(RAT)をインストールするために設計された、3つの悪意のあるnpmパッケージを発見しました。これらのパッケージ、bitcoin-main-libbitcoin-lib-js、およびbip40は、2025年11月にnpmレジストリから削除されるまでに合計3,400回以上ダウンロードされていました。この攻撃は、正当なBitcoinJSプロジェクトへの開発者の信頼を悪用し、本物のBitcoin開発ライブラリに酷似したタイポスクワッティングされたパッケージ名を使用しています。

攻撃の仕組み

開発者がbitcoin-main-libまたはbitcoin-lib-jsをインストールすると、postinstallスクリプトが自動的に実行され、依存関係としてbip40をダウンロードしようとします。このbip40には、研究者がNodeCordRATと名付けた悪意のあるペイロードが含まれています。NodeCordRATは、Process Manager 2(PM2)の下でデタッチモードで起動され、ランタイムの永続性を提供します。これにより、インストーラーが終了した後もbip40は実行を継続し、現在のセッション中にクラッシュした場合でも自動的に再起動します。攻撃者は、正当性を装うため、各パッケージのpackage.jsonファイルを改変し、本物のbitcoinjs GitHubリポジトリへのリンクを含めていました。このソーシャルエンジニアリング戦術は、開発者が基本的なデューデリジェンスを行った際に、悪意のあるパッケージが初期の精査を回避するのに役立ちました。

NodeCordRATの機能

NodeCordRATは、Discordサーバーをコマンド&コントロール(C2)通信に利用する新しいマルウェアファミリーです。このトロイの木馬は、特に価値の高い開発者資産を標的としており、これには以下のものが含まれます。

  • Chromeブラウザの認証情報
  • .envファイルに保存されたAPIトークン
  • MetaMask仮想通貨ウォレットのデータ(秘密鍵やシードフレーズなど)

これら3つの悪意のあるパッケージは、[email protected]というメールアドレスを使用する単一の脅威アクターによってアップロードされました。NodeCordRATがアクティブになると、ハードコードされたDiscordサーバーに接続し、感染したシステムごとにプライベートチャンネルを確立します。マルウェアは、Windowsではwmic csproduct get UUID、Linuxシステムでは/etc/machine-idからシステムUUIDを抽出し、platform-uuid(例:win32-c5a3f1b4)形式の一意の識別子を生成します。攻撃者は、Discordを介して送信される3つのコマンドプレフィックスを介して感染システムを制御します。

  • !run: 任意のシェルコマンドを実行
  • !screenshot: フルデスクトップ画像をキャプチャしPNGファイルとしてアップロード
  • !sendfile: 被害者のマシンから指定されたファイルを窃取

盗まれたデータはすべて、ハードコードされた認証トークンを使用してDiscordのREST APIを介して送信され、ファイルはプライベートチャンネルメッセージに直接添付されます。

配布状況

以下は、各パッケージのバージョンとダウンロード数の内訳です。

  • bitcoin-lib-js: バージョン 7.2.1, 183ダウンロード
  • bitcoin-main-lib: バージョン 7.0.0, 7.2.0, 2,286ダウンロード
  • bip40: バージョン 1.0.0, 1.0.6, 958ダウンロード

侵害の痕跡 (IOCs)

以下は、これらの悪意のあるパッケージのMD5ハッシュです。

  • bitcoin-lib-js: 7a05570cda961f876e63be88eb7e12b8
  • bitcoin-main-lib: c1c6f4ec5688a557fd7cc5cd1b613649
  • bip40: 9a7564542b0c53cb0333c68baf97449c

推奨事項

npmはこれらの悪意のあるパッケージを削除しましたが、この事件はソフトウェアサプライチェーンセキュリティにおける永続的な脆弱性を浮き彫りにしています。開発者は、パッケージの著者評価の確認、ダウンロード統計の調査、およびインストール前のパッケージ依存関係のレビューを含む、厳格なパッケージ検証慣行を実装すべきです。また、組織は、疑わしいpostinstallスクリプトや開発環境における異常なネットワーク動作を検出する自動スキャンツールを展開することも推奨されます。


元記事: https://gbhackers.com/npm-packages-3/