概要
- 2026年3月31日、StepSecurityがnpmで配布された [email protected] および [email protected] の 悪意あるバージョン を発見。
- 攻撃者は メンテナのnpm認証情報を乗っ取り、通常のCI/CDをバイパスして 手動で公開。
- 悪意ある依存パッケージ [email protected] を注入し、 クロスプラットフォームRAT を配布。
- macOS/Windows/Linux 向けにペイロードを分岐・自動削除で痕跡隠蔽。
- npmパッケージサプライチェーン攻撃として 極めて高度な手口。
axios悪意あるバージョン流通事件の全貌
2026年3月31日、 StepSecurity が [email protected] および [email protected] の 悪意あるバージョン をnpmで発見。
攻撃者は メンテナ(jasonsaayman)のnpmアカウント を乗っ取り、 ProtonMail アドレスにメール変更後、 npm CLI で手動公開。
GitHub ActionsのCI/CDパイプライン をバイパスし、公式リリースと見分けがつかない状態で公開。
[email protected] を新規依存として追加、 postinstallスクリプト で RATドロッパー を実行。
plain-crypto-js は実際のaxiosコードで一切import/requireされず、 依存関係のみで発動。
- [email protected] はクリーンなダミーとして事前公開し、 履歴偽装。
- [email protected] で postinstall: "node setup.js" と 難読化ドロッパー を仕込む。
RATドロッパーは C2サーバ(sfrclak.com:8000/6202033) に接続し、 OS別の2段階ペイロード を配布。
実行後は 自己削除 し、 package.jsonをクリーンなダミーで上書き、痕跡を消去。
攻撃タイムライン
- 2026-03-30 05:57 UTC
- [email protected] 公開(履歴作成用ダミー)
- 2026-03-30 23:59 UTC
- [email protected] 公開(悪意あるpostinstall追加)
- 2026-03-31 00:21 UTC
- [email protected] 公開(1.x系ユーザ狙い)
- 2026-03-31 01:00 UTC
- [email protected] 公開(0.x系ユーザ狙い、39分差で両系統カバー)
攻撃手法詳細
メンテナアカウント乗っ取り
- jasonsaayman アカウントのnpmトークンを奪取し、手動で公開。
- GitHub Actions経由でない リリースは通常と異なり、 trustedPublisherやgitHead情報が欠落。
- npmレジストリのメタデータで 不審リリース を識別可能。
悪意ある依存パッケージの事前準備
- plain-crypto-js を crypto-js の偽装として公開、説明・著者・リポジトリも本物そっくり。
- postinstallフック と 証拠隠滅用ファイル(package.md) を仕込み。
依存注入による攻撃
- [email protected]/0.30.4 は plain-crypto-js@^4.2.1 を追加した以外、他の依存は一切変更なし。
- npm install時に自動で plain-crypto-js がインストールされ、 postinstallスクリプト が実行。
phantom dependency(幽霊依存)
- axios 本体コード内で plain-crypto-js は一切使われていない。
- 依存関係にのみ現れる不自然なパッケージ は、サプライチェーン攻撃の強力な兆候。
RATドロッパーの技術的分析
- setup.js は 二重難読化 された1ファイル構成。
- 文字列・コマンド・C2 URL等は 配列stq[] にエンコード保存、 復号関数_trans_1/_trans_2 で実行時解読。
- C2 URL: http://sfrclak.com:8000/6202033
OS別ペイロード分岐
- macOS(darwin)
- AppleScript を一時ファイルで生成・実行し、 C2からバイナリ取得→/Library/Caches/com.apple.act.mondに配置・実行。
- Appleのシステムキャッシュ風パス で隠蔽、実行後はスクリプト自体を削除。
- Windows(win32)
- PowerShellバイナリ を偽装名でコピー、 VBScript で完全非表示のコマンド実行。
- C2からPowerShell RATスクリプト取得→一時ファイルで実行・自己削除。
- Linux
- curl でC2からPythonスクリプトを取得、 /tmp/ld.py に保存・実行、後始末も自動化。
axiosユーザへの注意喚起と推奨対応
- [email protected] または [email protected] をインストールした場合、 システム侵害済みと見なすべき。
- 即時のパッケージアップグレード・システムスキャン・証拠保全 が必要。
- 依存関係の不審な追加・postinstallの有無 を常時監査する体制の重要性。
npmサプライチェーン攻撃の教訓
- npmパッケージの信頼性はメンテナアカウントのセキュリティに依存。
- OIDC Trusted Publisher等のCI/CD署名 を活用し、 手動公開・不審なメタデータ の検知体制構築。
- phantom dependency(幽霊依存) や postinstallフック の有無は、攻撃兆候の強力なシグナル。
- サプライチェーン攻撃 は今後も増加傾向、 自動監査・AIアナリストの導入 が有効。
参考元:StepSecurity AI Package Analyst, Harden-Runner
前回のLiteLLMの事件で認証情報が盗まれたって賭けてもいいよ。いつになったら、こういうパッケージマネージャーを使うのをやめるべきなんだろう?最近、PythonやNode.jsを使うのがちょっと怖いって思ってるけど、これは本当に普遍的な問題だよね。