Axios NPM サプライチェーン攻撃の仕組みとAPIプロジェクトの保護方法

Ashley Innocent

Ashley Innocent

1 4月 2026

Axios NPM サプライチェーン攻撃の仕組みとAPIプロジェクトの保護方法

簡単に言うと (TL;DR)

2026年3月31日、攻撃者は、週に8300万回ダウンロードされる最も人気のJavaScript HTTPクライアントであるAxiosのプライマリメンテナーのnpmアカウントを侵害しました。彼らは、開発者のマシンから認証情報、SSHキー、クラウドトークンを盗むクロスプラットフォームのRAT(リモートアクセスツール)を含む悪意のあるバージョン(1.14.1および0.30.4)を公開しました。直ちにAxios 1.14.0にダウングレードし、すべてのシークレットをローテーションし、システム上で侵害の痕跡がないかスキャンしてください。

はじめに

Axiosは、他のどのJavaScriptライブラリよりも多くのHTTPリクエストを処理しています。過去5年間にAPIクライアントを構築したり、エンドポイントをテストしたり、フロントエンドをバックエンドに接続したりしたことがあるなら、おそらくそれを使ったことがあるでしょう。

2026年3月31日00:21 UTC、脅威アクターは乗っ取ったメンテナーアカウントを通じてAxiosバージョン1.14.1を公開しました。そのパッケージは正規のリリースと寸分違わず見えました。変更点は極めて巧妙で、86個のファイルのうちpackage.jsonだけが変更されていました。しかし、その単一のファイルがplain-crypto-jsというファントム依存関係を注入し、npm installを実行するすべてのマシンにリモートアクセスツールを展開しました。

悪意のあるバージョンは、npmによって削除されるまで約2〜3時間公開されていました。週に8300万回ダウンロードされる中で、2〜3時間です。

💡
APIを構築またはテストしている場合、この攻撃は直接あなたのツールチェーンを標的にしました。Apidogの組み込みHTTPクライアントは、APIテストワークフローにおけるサードパーティ製HTTPライブラリの必要性を排除し、この攻撃対象領域全体をなくします。以下のセキュリティ監査手順に従うためにApidogを無料でダウンロードしてください。
button

この記事では、攻撃がどのように行われたか、システムが侵害されたかどうかを検出する方法、そしてAPIチームが今後の依存関係管理について変更すべき点について詳しく解説します。

Axiosサプライチェーン攻撃の展開方法

タイムライン

攻撃者は18時間の間にこの作戦を正確に実行しました。

アカウントがどのように侵害されたか

攻撃者は、Axiosの主要メンテナーであるjasonsaaymanのnpmアカウントを乗っ取りました。彼らは登録されているメールアドレスをifstap@proton.meに変更しました。主要なフォレンジック証拠:

この違いは重要です。もしあなたの組織がnpmパッケージを公開しているのであれば、リリースにおけるOIDCバインディングとCI/CDの履歴の欠如は、自動チェックする価値のある危険信号です。

依存関係注入の手法

この攻撃が巧妙だったのは次の点です。攻撃者はAxiosのソースコードを変更しませんでした。彼らはpackage.jsonの1行を変更し、plain-crypto-js@^4.2.1をランタイム依存関係として追加しました。このパッケージはAxiosのコードベースのどこにもインポートされていませんでした。それはnpm install中にそのpostinstallフックをトリガーするためだけに存在していました。

バイナリ分析により、その外科的な精密さが確認されました。パッケージ内の全86ファイルのうち、クリーンな1.14.0リリースと侵害された1.14.1の間で異なっていたのはpackage.jsonだけでした。

悪意のあるペイロードの機能

ドロッパーのメカニズム

plain-crypto-jspostinstallフックは、setup.jsという4.2KBの難読化されたファイルを実行しました。2層の難読化を使用しました。

  1. 第1層: 文字列"OrDeR_7077"から派生したキーを使用したXOR暗号
  2. 第2層: 文字反転を伴うBase64エンコーディング

デコードされると、ドロッパーはホストオペレーティングシステムを特定し、プラットフォーム固有のペイロードを実行しました。

プラットフォーム固有の攻撃経路

macOS:

Writes AppleScript to /tmp/6202033
Executes via osascript
Downloads payload to /Library/Caches/com.apple.act.mond

Windows:

Copies PowerShell to %PROGRAMDATA%\wt.exe (persistence artifact)
Executes VBScript dropper via cscript

Linux:

Downloads Python RAT to /tmp/ld.py
Executes via nohup python3

これら3つのブランチはすべて、プラットフォーム固有のPOSTボディでコマンド&コントロールサーバーに接触しました。

RATの機能

展開されたリモートアクセスツールは以下をサポートしています。

簡単に言えば、攻撃者はあなたの開発マシンを完全にリモート制御できることになります。あなたの.envファイルを読み取り、APIキーを盗み、SSHキーをコピーし、クラウドプロバイダーのトークンを収集できます。

フォレンジック対策:自己削除型ペイロード

実行後、ドロッパーは3つのクリーンアップ手順を実行しました。

  1. setup.js自体を削除
  2. 悪意のあるpackage.jsonを削除
  3. プリステージされたpackage.md(バージョン4.2.0を報告する)をpackage.jsonに改名

これにより、npm listがペイロードを実行した4.2.1ではなく4.2.0を報告するという欺瞞層が作成されました。後から依存関係をチェックした開発者は、何も異常に気づかないでしょう。

この攻撃の背後にいるのは誰か

Google脅威インテリジェンスグループは、Axios攻撃を北朝鮮の脅威アクターと疑われるUNC1069に帰属させました。macOSマルウェアは、Mandiantが2026年2月に追跡したC++バックドア「WAVESHAPER」と「かなりの重複」を示しています。

北朝鮮の国家支援グループは、サプライチェーン攻撃に関して深い経験を持っています。彼らはこれまで、侵害された開発ツールを使用して暗号通貨を盗んできました。そして、今回の作戦も同じ手口に従っています。広く使われている開発ツールを侵害し、数千の組織にわたる認証情報とクラウドインフラへのアクセスを得るというものです。

その巧妙さは注目に値します。2段階の依存関係注入、マルチプラットフォームRATの展開、およびフォレンジック対策のクリーンアップはすべて、十分なリソースを持つ作戦であることを示唆しています。これはスクリプトキディがクリプトマイナーをドロップしたものではありません。開発者のワークステーションを標的とした諜報活動です。

影響を受けているか確認する方法

ステップ1:Axiosのバージョンを確認する

Axiosを使用しているすべてのプロジェクトでこれを実行してください。

npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"

これが結果を返す場合、あなたのプロジェクトは侵害されたバージョンをインストールしています。

ステップ2:悪意のある依存関係を確認する

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENTIALLY AFFECTED"

ドロッパーが自己削除したとしても、そのディレクトリの存在はペイロードが実行されたことを確認します。

ステップ3:システム上のRATアーティファクトを確認する

macOS:

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null

Linux:

ls -la /tmp/ld.py 2>/dev/null

Windows (PowerShell):

Test-Path "$env:PROGRAMDATA\wt.exe"

ステップ4:ネットワークインジケーターを確認する

以下の接続をブロックし、スキャンしてください。

ステップ5:CI/CDビルドログを確認する

3月31日00:21 UTCから03:15 UTCまでの間のCI/CDパイプライン実行をすべて確認してください。この時間帯にAxiosを解決したnpm installまたはnpm ciの実行は、ビルド環境内でドロッパーを実行した可能性があります。

即座の修復手順

侵害の痕跡を発見した場合、影響を受けたシステムは完全に侵害されているものとして扱ってください。優先順位リストです。

1. 直ちにAxiosをダウングレードする

npm install axios@1.14.0

または0.xブランチの場合:

npm install axios@0.30.3

2. package.jsonにバージョンオーバーライドを追加する

悪意のあるバージョンへの推移的な解決を防ぎます。

{
  "overrides": {
    "axios": "1.14.0"
  }
}

Yarnの場合:

{
  "resolutions": {
    "axios": "1.14.0"
  }
}

3. 悪意のあるパッケージを削除する

rm -rf node_modules/plain-crypto-js

4. すべての認証情報をローテーションする

ドロッパーがあなたのマシンで実行された場合、以下が侵害されたと仮定してください。

すべてをローテーションしてください。RATが活動中に何を情報漏洩したかを知る方法はありません。

5. ネットワークレベルでC2をブロックする

ホストファイルまたはファイアウォールルールに追加してください。

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts

6. アーティファクトが見つかった場合、マシンを再構築する

シェル実行とファイルシステムアクセスが可能なRATは、何でも変更できます。ステップ3でアーティファクトを発見した場合、システムを信用しないでください。既知の正常な状態から再構築してください。

API開発チームのための長期的な防御策

ロックファイルを使用し、正確なバージョンを固定する

Axios攻撃は^セムバー範囲を悪用しました。もしpackage.json"axios": "^1.14.0"と指定している場合、npmは最新の互換バージョンを解決しますが、攻撃期間中は1.14.1でした。

{
  "dependencies": {
    "axios": "1.14.0"
  }
}

正確なバージョンを固定してください。常にpackage-lock.jsonまたはyarn.lockをコミットしてください。CI/CDではnpm installの代わりにnpm ciを実行して、ロックファイルの解決を強制してください。

CI/CDでpostinstallスクリプトを無効にする

攻撃全体は、npm install中にpostinstallフックが実行されることに依存していました。これは無効にできます。

npm ci --ignore-scripts

これにより、ネイティブコンパイルが必要な一部のパッケージが壊れる可能性があります。まずビルドをテストし、その後、必要なパッケージに対して.npmrcを使用してスクリプトを選択的に許可してください。

ignore-scripts=true

依存関係を定期的に監査する

npm audit
npx socket-security/cli audit

これらをCI/CDでゲートとして実行してください。重大または高レベルの脆弱性はビルドをブロックすべきです。

HTTPクライアントの依存関係の表面積を減らす

この攻撃が提起するより深い問いは、なぜあなたのAPIテストワークフローが、侵害される可能性のあるサードパーティ製HTTPライブラリに依存しているのか、ということです。

Apidogは、APIテスト、デバッグ、ドキュメント作成のための組み込みHTTPクライアントを提供します。あなたのテストスタックにAxios、node-fetch、gotは必要ありません。HTTPクライアントはプラットフォームの一部であり、侵害される可能性のあるサードパーティの依存関係はありません。

特にAPIテストの場合、HTTPリクエストをApidogに移行することで、攻撃対象領域全体を排除できます。

Apidogを無料で試してください。APIワークフローからHTTPライブラリの依存関係を削除することが、どのようにサプライチェーンのリスクを軽減するかを体験してください。

パッケージの来歴を確認する

npmは現在、Sigstoreを介したパッケージの来歴をサポートしています。依存しているパッケージがこれを使用しているか確認してください。

npm audit signatures

悪意のあるAxiosバージョンにはOIDCの来歴がありませんでした。CI/CDパイプラインからの正規のリリースには、そのビルド元の暗号学的証明が含まれています。来歴のない新しいバージョンが現れた場合、それを疑ってかかるべきです。

JavaScriptエコシステムにとっての意味

信頼モデルが破綻している

npmの信頼モデルは、メンテナーアカウントのセキュリティに依存しています。たった1つの侵害された認証情報で、攻撃者は週に8300万のプロジェクトがインストールするパッケージを制御できます。二要素認証は役立ちますが、侵害された開発環境から長期間有効なアクセストークンが盗まれる可能性は依然としてあります。

コミュニティではいくつかの構造的変更が議論されています。

サプライチェーン攻撃は減速しない

この攻撃は、RubyGemsの分裂事件や、継続しているPyPIの依存関係に関する懸念から数日後に発生しました。あらゆる言語エコシステムのパッケージレジストリが、継続的な攻撃に晒されています。API開発者は、依存関係ツリーを利便性としてではなく、攻撃対象領域として考える必要があります。

Redditの議論は、その感情をよく捉えています。「今日のインターネットにおける最大の弱点はNPMであり、それは依然として巨大な大災害を引き起こすだろう。」その誇張に同意するかどうかにかかわらず、Axios攻撃は、その被害範囲が現実のものであることを示しています。

比較:HTTPクライアントの依存関係アプローチ

アプローチ サプライチェーンリスク メンテナンス負担 テスト機能
Axios + カスタムスクリプト 高い(サードパーティ依存) 高い(バージョン管理) 手動設定が必要
Node.jsネイティブfetch 低い(ランタイムに組み込み) 低い 限られたテスト機能
Apidog組み込みクライアント なし(npm依存なし) なし(プラットフォーム管理) 全面的なテスト、モック、ドキュメント
curl/httpieスクリプト 低い(システムレベルツール) 限られた自動化

よくある質問

Axiosは現在使用しても安全ですか?

はい。バージョン1.14.0と0.30.3はクリーンです。侵害されたバージョン(1.14.1と0.30.4)は約3時間以内に非公開にされました。npm list axiosでインストールされているバージョンを確認し、ロックファイルを確認して安全なバージョンであることを確かめてください。

RATが私のマシンで実行されたかどうかを知るにはどうすればよいですか?

プラットフォーム固有のアーティファクトを確認してください:macOSでは/Library/Caches/com.apple.act.mond、Linuxでは/tmp/ld.py、Windowsでは%PROGRAMDATA%\wt.exeです。また、いずれかのプロジェクトにnode_modules/plain-crypto-jsが存在するかどうかも確認してください。ドロッパーは自己削除するため、侵害されたバージョンをインストールした場合、アーティファクトがないからといって安全であるとは限りません。

Axiosの使用を完全にやめるべきですか?

必ずしもそうではありません。Axiosは強力な実績を持つ、よくメンテナンスされたライブラリです。しかし、この攻撃は、そもそもサードパーティのHTTPクライアントが必要かどうかを評価するきっかけとなるべきです。Node.js 18+にはネイティブのfetchが含まれています。APIテストの場合、Apidogのようなプラットフォームは、この依存関係を排除する組み込みHTTPクライアントを提供します。

プロジェクトでサプライチェーン攻撃を防ぐにはどうすればよいですか?

正確な依存関係バージョンを固定し、ロックファイルをコミットし、CI/CDでnpm ci --ignore-scriptsを実行し、依存関係を定期的に監査し、npm audit signaturesでパッケージの来歴を確認し、依存関係ツリーを最小限に抑えてください。HTTP通信にnpmパッケージに依存しない統合プラットフォームにAPIテストワークフローを移行することも検討してください。

この攻撃はClaude Codeのソースコード漏洩と関連がありますか?

どちらの出来事も同じ日(2026年3月31日)に発生しましたが、無関係です。Axios攻撃は国家支援の脅威アクターによる意図的なサプライチェーン侵害でした。Claude Codeの漏洩は、本番環境でソースマップを出荷してしまったBunビルドツールのバグに起因するものです。この偶然のタイミングは、npmレジストリ全体のセキュリティに関する議論を加速させました。

Axios攻撃の背後にいたのは誰ですか?

Google脅威インテリジェンスグループは、この攻撃を北朝鮮の脅威アクターと疑われるUNC1069に帰属させました。macOSマルウェアは、Mandiantが追跡しているバックドア「WAVESHAPER」とかなりの重複が見られます。北朝鮮のグループは、サプライチェーン攻撃に関して広範な経験を持ち、通常は開発者の認証情報と暗号通貨インフラを標的にしています。

何人の開発者が影響を受けましたか?

悪意のあるバージョンは約2〜3時間公開されていました。週に8300万回ダウンロードされることから、潜在的な露呈は重大です。npmは公式な影響数を公表していません。StepSecurityのランタイム検出は、npm installの開始から依存関係の解決が完了するまでの1.1秒以内に、ドロッパーがC2に接触したことを確認しました。

Apidogはサプライチェーン攻撃を防ぐのに役立ちますか?

Apidogは、APIテスト、デバッグ、ドキュメント作成のための組み込みHTTPクライアントを提供することで、主要な攻撃ベクトルの一つを排除します。テストワークフローでAxios、node-fetch、その他のHTTPライブラリをインストールする必要はありません。これにより、npmの依存関係の表面積が減少し、侵害されたHTTPクライアントパッケージがAPI開発プロセスに影響を与えるリスクが排除されます。

主な要点

Axios攻撃は警鐘です。node_modules内のすべての依存関係は、信頼に関する決定です。それらの決定をデフォルトではなく、意図的に行っていることを確認してください。

button

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる