
概要#
週間ダウンロード数1億回を超える人気JavaScriptライブラリaxiosのNPMパッケージが乗っ取られ、悪意のあるバージョン1.14.1と0.30.4が公開される事態が発生しました。StepSecurityが2026年3月30日に検出したこの攻撃は、極めて巧妙な手法でリモートアクセストロイ(RAT)を配布する、これまでに記録された中でも最も高度な供給網攻撃の一つとされています。
攻撃の仕組み#
アカウント乗っ取りと不正公開#
攻撃者は、axiosプロジェクトの主要メンテナーであるjasonsaaymanのNPMアカウントを乗っ取り、登録メールアドレスをifstap@proton.meに変更しました。この不正アクセスを利用して、1.xと0.x両方のリリースブランチに悪意のあるバージョンを同時公開し、影響範囲を最大化しました。
偽装依存関係による巧妙な攻撃#
この攻撃の特徴的な点は、axios本体には悪意のあるコードが一行も含まれていないことです。代わりに、攻撃者は「plain-crypto-js@4.2.1」という偽の依存関係を注入しました。このパッケージはaxiosのソースコード内でインポートされることはなく、その唯一の目的はpostinstallスクリプトを実行してクロスプラットフォーム対応のRATドロッパーとして機能することでした。
自己破壊機能による証拠隠滅#
マルウェアは実行後に自身を削除し、package.jsonを無害なバージョンに置き換えて法科学的検出を回避します。開発者が後でnode_modulesフォルダを検査しても、異常の形跡を見つけることはできません。npmインストールから2秒以内に、npmが依存関係の解決を完了する前に、マルウェアは既に攻撃者のサーバーに通信を開始していました。
攻撃タイムライン#
攻撃は約18時間をかけて事前準備されました:
- 3月30日 05:57 UTC: plain-crypto-js@4.2.0が公開(正常な偽装バージョン)
- 3月30日 23:59 UTC: plain-crypto-js@4.2.1が公開(悪意のあるペイロード追加)
- 3月31日 00:21 UTC: axios@1.14.1が乗っ取られたアカウントにより公開
- 3月31日 01:00 UTC: axios@0.30.4が39分後に公開
- 3月31日 03:15頃: NPMが両バージョンを削除
- 3月31日 04:26 UTC: NPMがplain-crypto-jsにセキュリティホルダースタブを設置
検出と対応#
StepSecurity AI Package AnalystとStepSecurity Harden-Runnerがこの攻撃を検出しました。Harden-Runnerは、悪意のあるパッケージが攻撃者のC2ドメインに異常な外部接続を行うことを複数のオープンソースプロジェクトで検出しました。
影響と対策#
axios@1.14.1またはaxios@0.30.4をインストールした場合、システムが侵害されたものと見なす必要があります。この攻撃は偶発的なものではなく、精密に計画されたものでした。悪意のある依存関係は18時間前に準備され、3つのオペレーティングシステム用のペイロードが事前構築され、すべてのアーティファクトが自己破壊するよう設計されていました。
まとめ#
この事件は、トップ10のNPMパッケージに対して記録された中でも最も運用的に洗練された供給網攻撃の一つとして評価されています。攻撃者の高度な技術力と周到な準備が、オープンソースエコシステムの脆弱性を浮き彫りにしました。
筆者の見解: このような高度な攻撃は、パッケージ管理システムのセキュリティ強化と、開発者による依存関係の継続的な監視の重要性を改めて示しています。OIDC Trusted Publisher機能のような技術的対策の普及が急務といえるでしょう。
出典: Axios compromised on NPM – Malicious versions drop remote access trojan




