JavaScript ライブラリ axiosのnpmが乗っ取られる-1.14.1と0.30.4は導入済みなら侵害前提で対応が必要

セキュリティニュース

投稿日時: 更新日時:

JavaScript ライブラリ axiosのnpmパッケージが乗っ取られる-1.14.1と0.30.4は導入済みなら侵害前提で対応が必要

JavaScriptの代表的HTTPクライアントであるAxiosで、npm配布パッケージ自体が改ざんされるサプライチェーン攻撃が確認されました。StepSecurityによると、悪意あるバージョンは [email protected][email protected] で、攻撃者はAxiosの主要メンテナーのnpm資格情報を奪い、通常のGitHub Actionsによる公開フローを迂回してnpm CLIから直接公開したとされています。Techzineは、Axiosが週3億回超ダウンロードされる広範な利用基盤を持つため、影響範囲は非常に大きいと報じています。

【30秒でわかる本記事の概要】

  • axiosの主要メンテナのアカウントが乗っ取られ、悪意あるバージョン(1.14.1 および 0.30.4)が公開された。

  • このバージョンをインストールすると、Windows、macOS、Linuxを標的とした遠隔操作トロイの木馬(RAT)がシステムに投下される。

  • インストール後、自らの悪意あるコードを自動で削除して「クリーンなファイル」に偽装するなど、発見を遅らせる極めて巧妙な手口が使われている。

同時期のインシデント エンジニアは要注意:AnthropicのClaude Code ソースコードが漏洩-概要やセキュリティへの影響






概要

JavaScriptの代表的HTTPクライアントであるAxiosで、npm配布パッケージ自体が改ざんされるサプライチェーン攻撃が確認されました。

StepSecurityによると、悪意あるバージョンは [email protected][email protected] で、攻撃者はAxiosの主要メンテナーのnpm資格情報を奪い、通常のGitHub Actionsによる公開フローを迂回してnpm CLIから直接公開したとされています。Techzineは、Axiosが週3億回超ダウンロードされる広範な利用基盤を持つため、影響範囲は非常に大きいと報じています。

重要なのは、Axios本体のソースコードに直接マルウェアが書き込まれたわけではない点です。攻撃者は [email protected] という偽の依存パッケージを追加し、その postinstall スクリプトを使ってmacOS、Windows、Linux向けのクロスプラットフォームRATを落とす仕組みにしていました。StepSecurityは、該当バージョンをインストールした環境は侵害済みとみなすべきだと警告しています。






攻撃の巧妙な手口(サプライチェーン攻撃の連鎖)

今回の攻撃は、単にコードを書き換えるだけではない、非常に周到かつ巧妙な手順で行われました。

関連:北朝鮮系ハッカーがAxiosのnpmパッケージを汚染させサプライチェーン 攻撃を実行

アカウント乗っ取りとCI/CDのバイパス

攻撃者はaxiosのリードメンテナ(jasonsaayman氏)のnpmアカウントをハッキングした後、登録メールアドレスを匿名のProtonMailアドレスに変更しました。そして、プロジェクトで通常使用されているGitHub ActionsのCI/CDパイプラインを通さず、npmのCLI(コマンドライン)から手動で直接、マルウェア入りのパッケージを公開しました。

関連:Axiosへのサプライチェーン サイバー攻撃はどう起きたのか-メンテナーアカウント侵害から見る不正公開の手口

偽の依存関係(パッケージ)の注入

驚くべきことに、axios自体のソースコードには悪意のあるコードは1行も含まれていませんでした。

その代わり、攻撃者は[email protected]という未知の依存パッケージをaxiosに注入しました。これは正規の暗号化ライブラリである「crypto-js」を装っており、説明文や作成者名、リポジトリURLまで本物と同じように偽装されていました。

RATの投下と、痕跡を消す「自己クリーンアップ機能」

この偽パッケージの唯一の目的は、インストール後に自動実行されるフックスクリプト(setup.js)を動かし、RATのドロッパーとして機能させることです。 さらに恐ろしいのは、スクリプト実行後の隠蔽工作です。スクリプトは自らを削除し、悪意あるフックが含まれていたpackage.jsonを消去したうえで、全く無害に見える「クリーンなバージョン」にすり替えます。これにより、事後にnode_modulesフォルダ内を目視で検査しても、不正なコードが実行された痕跡を発見することは困難になります。






開発チーム・情シス部門が直ちに行うべき対策

自社の開発環境や本番環境、およびCI/CD環境が侵害されていないかを確認するため、以下の手順を早急に実施してください。

  1. ロックファイルの確認(最重要): node_modulesの直接確認では前述の隠蔽工作により見逃す恐れがあります。必ずプロジェクトのpackage-lock.jsonyarn.lockpnpm-lock.yamlなどを検索し、[email protected][email protected]、または[email protected]が含まれていないかを確認してください。

  2. 侵害を前提としたインシデント対応: もし上記のバージョンがインストールされていた場合、すでにバックドア(RAT)が仕掛けられ、コマンド&コントロール(C2)サーバーと通信している前提で動く必要があります。影響を受けた端末やサーバーを直ちにネットワークから隔離し、環境変数やローカルファイルに保存されていた認証情報(APIキー、AWS認証情報、ソースコード管理のトークンなど)の無効化・再発行(ローテーション)を即座に実施してください。

  3. 継続的なサプライチェーン防衛: 今回のように「ある日突然、信頼していた著名パッケージが牙を剥く」事態に備え、ソフトウェア部品表(SBOM)の管理や、依存関係の自動スキャンツール(SCAツール)の導入が必要です。

よくある質問(FAQ)

Q. どのバージョンのaxiosが悪意のあるマルウェアを含んでいますか?

A. 悪意のあるコードが含まれているのは、[email protected] および [email protected] です。また、これらのバージョンはバックドアを仕掛けるための偽の依存パッケージとして [email protected] を不正にダウンロードします。

Q. axios本体のソースコードにウイルスが書き込まれたのですか?

A. いいえ、axios本体のソースコード自体に悪意のあるコードは1行も記述されていません。攻撃者はaxios本体を改ざんするのではなく、インストール時に自動でマルウェアを呼び出す「偽の依存パッケージ」を注入するという、極めて巧妙な手口を使用しました。

Q. 開発環境が侵害されたかどうかを確認するにはどうすればよいですか?

A. 攻撃者はインストール後に不正な痕跡(不正なファイルや記述)を自動で消去し、クリーンな状態に偽装する仕組みを持っています。そのため、node_modules フォルダを目視で確認してはいけません。必ずプロジェクトのロックファイル(package-lock.jsonyarn.lockpnpm-lock.yaml など)を文字列検索し、該当バージョンが含まれていないかを確認してください。

Q. 該当するバージョンをインストールしてしまっていた場合、どう対応すべきですか?

A. すでにバックドア(遠隔操作トロイの木馬:RAT)が仕掛けられ、外部の攻撃者と通信している前提で直ちに行動してください。対象の端末やサーバーをネットワークから即座に隔離し、ローカル環境や環境変数に保存されていた認証情報(APIキー、AWS認証情報、ソースコード管理トークンなど)の無効化と再発行(ローテーション)を最優先で行う必要があります。

参照