140以上のMastra npmパッケージが侵害され、認証情報が窃取される

npmサプライチェーン攻撃がMastra AIフレームワークのエコシステムを標的とし、脅威アクターが140以上のパッケージを侵害して、暗号資産ウォレットデータ・ブラウザ履歴・開発者の認証情報を窃取するクロスプラットフォーム型インフォスティーラーを展開していたことが明らかになりました。

MicrosoftとSocketのセキュリティ研究者がそれぞれ独立してこのキャンペーンを確認しており、攻撃は2026年6月17日に発生しました。

攻撃者はnpmアカウント「ehindero」を使用し、UTC時間の01:15から02:36の間に、141個の@mastra/*パッケージの悪意あるバージョンを公開しました。

侵害されたパッケージのコードは正規バージョンと一バイトも違わず同一であり、唯一の変更点は"easy-day-js": "^1.11.21"という依存関係が1つ注入されたことのみでした。

このパッケージは、広く使われているdayjsライブラリを意図的にタイポスクワットしたもので、別のアカウント(sergey2016)によって前日に公開されていました。

バージョン1.11.21はdayjsのクリーンなコピーであり、無害な履歴を作り上げるために使用されました。一方、バージョン1.11.22では、npm installの実行時に自動的にnode setup.cjs --no-warningsを実行する悪意あるpostinstallフックが導入されました。

この悪意あるフックは推移的依存関係の中にのみ存在するため、@mastra/*パッケージのソースコードをレビューしても不審な点は何も見つからず、インストール時の挙動スキャンが唯一の信頼できる検出手段となっています。

Socketは公開からわずか6分以内に悪意あるeasy-day-jsを検知し、同社の顧客に対するインストールを自動的にブロックしました。

obfuscator.ioで難読化されたsetup.cjsは、コンパクトな第1ステージのダウンローダーとして機能します。このファイルはまずTLS証明書の検証を無効化(NODE_TLS_REJECT_UNAUTHORIZED=0)して攻撃者のインフラと自由に通信できるようにし、追跡ファイル(~/.pkg_historyおよび~/.pkg_logs)を書き込んで被害者のIDをビーコン送信した後、23[.]254[.]164[.]92:8000/update/49890878から第2ステージのペイロードをダウンロードします。

ペイロードはランダムな名前の.jsファイルに書き込まれ、インストール終了後も生き残るデタッチされた隠しバックグラウンドプロセスとして起動されます。その後、ローダーは自己削除してフォレンジックの痕跡を消去します。

第2ステージ(protocal.cjs)は約41KBのクロスプラットフォーム対応Node.jsタスキングクライアントで、主要な3つのOSすべてにログイン永続化機能をインストールします。Windowsでは、隠しPowerShellプロセスを起動するレジストリのRunキー(NvmProtocal)を作成します。

macOSではLaunchAgent(com.nvm.protocal.plist)を登録し、Linuxでは「System Config User Service」に偽装したsystemdユーザーユニット(nvmconf.service)をインストールします。永続化に使用される名前はいずれも、開発者環境に紛れ込むためにNode.jsツールを意図的に装っています。

このインプラントは166種類の暗号資産ウォレットブラウザ拡張機能を列挙しており、MetaMaskをはじめPhantom、Coinbase Wallet、TronLinkなどが対象となっており、一致したウォレットデータを窃取します。

また、Nodeの組み込みnode:sqliteを使用してChrome・Edge・Braveのブラウザ履歴を抽出するほか、ホスト名・アーキテクチャ・インストール済みアプリケーション・実行中のプロセスを収集するホスト偵察も実行します。

収集したデータはすべて、偽装されたユーザーエージェント(mozilla/4.0 compatible; msie 8.0)を使用したカスタムICAPスタイルのプロトコルで23[.]254[.]164[.]123:443に送信されます。このインプラントは攻撃者からの任意のフォローオンタスクをサポートしているため、認証情報窃取の全容は回収されたサンプルの範囲を超えている可能性があります。

影響を受けた@mastra/coreはnpmで週間918,000回以上ダウンロードされており、このキャンペーンの潜在的な被害規模は非常に大きいといえます。Microsoft Defender for Endpointをご利用の方は、Trojan:JS/ObfusNpmJsのアラートを監視してください。

影響を受けたバージョンでnpm installを実行したシステムは、完全に侵害されたものとして扱う必要があります。

開発者は[email protected]へのダウングレード、OS固有の永続化アーティファクトの削除、インストール時に存在していたすべての認証情報(npmトークン・クラウドキー・CI/CDシークレットを含む)のローテーション、そして高価値の暗号資産ウォレットの新しいシードフレーズへの移行を直ちに実施してください。

CI/CDのセキュリティ強化にあたっては、デフォルトでnpm install --ignore-scriptsを強制適用し、ビルドランナーのネットワーク出口制御を実装することをお勧めします。

注: IPアドレスとドメインは、意図しない名前解決やハイパーリンク化を防ぐために意図的にデファングされています(例:[.])。MISP・VirusTotal・SIEMなどの管理されたスレットインテリジェンスプラットフォーム内でのみ、元の形式に戻してご使用ください。

CISOおよびセキュリティリーダーの皆様へ:次の侵害は、顔のない脅威かもしれません。ISC2のLIVEウェビナー「Ghost in the Machine」にご参加ください。

翻訳元: https://cyberpress.org/compromise-140-mastra-npm-packages/

ソース: cyberpress.org