SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

アプリケーション開発の最新トレンド

なぜ検知できなかったのか? Axiosを襲った「遅延型」サプライチェーン攻撃の技術的解析

 週間1億DLを超える定番ライブラリ「axios」が北朝鮮系脅威アクターによる侵害を受けました。今回の攻撃は、本体コードには手を触れず、未公開の依存関係とpostinstallフックを悪用してスキャナーを欺く、極めて狡猾な手法です。この記事では、Googleの最新レポートに基づき、各OS向けに最適化されたバックドア「WAVESHAPER.V2」の挙動を技術的に解説します。また、侵害の有無を確認するコマンドから、実務で徹底すべき防衛策まで、詳しく紹介します。

1. 概要

 2026年3月31日、週間1億以上のダウンロード数を誇るJavaScriptライブラリ「axios」のNPMパッケージ(Node Package Manager)が侵害されました。NPMパッケージは、Node.jsのエコシステムで使われる「再利用可能なコードのまとまり」であり、ライブラリやツールをまとめた開発者向けのパッケージです。攻撃者は該当パッケージのメンテナンス用アカウントを乗っ取り、バージョン「1.14.1」および「0.30.4」に悪性の依存パッケージを注入しました。この依存パッケージはユーザーが該当バージョンの「axios」をインストールするときにバックドアを対象のOSに合わせて配置します。これらの一連の攻撃はGoogleのGoogle Threat Intelligence Group(以降、GTIG)により北朝鮮系脅威アクター「UNC1069」によるものとされています。

 今回の攻撃により影響を受けたバージョンは以下のとおりです。

パッケージ名 危険なバージョン 安全なバージョン
axios 1.14.1、0.30.4 1.14.0以下、0.30.3以下
plain-crypto-js 4.2.1 なし(悪性パッケージ)

 一連のインシデントは日本時間の3月31日の9時ごろから12時ごろに終了しました。悪性の「axios@1.14.1」の露出時間は約2時間53分、「axios@0.30.4」は約2時間15分と推定されます。

 上記の期間中に以下の操作をした場合、バックドアによる侵害が行われた恐れがあります。

  • 「npm install axios」を実行した場合
  • 依存パッケージにaxiosが含まれており、バージョン固定されていない状態で「npm install」を実行した場合
  • パッケージの依存ツリーにaxiosが含まれている状態で「npm install」を実行した場合

 また、CI/CDパイプラインなどでこの時間帯に「npm install」が行われていた場合にも、パイプラインの実行先サーバーが侵害されている恐れがあります。

 現在はnpm上で悪性バージョンは削除済みであり、「plain-crypto-js」も無害なセキュリティスタブに置換済みです。

2. キャンペーン概要

 Google Threat Intelligence Group(GTIG)は、NPMパッケージ「axios」を標的としたソフトウェアサプライチェーン攻撃を追跡しています。2026年3月31日00:21〜03:20 UTCの間に、攻撃者は「plain-crypto-js」という悪性の依存パッケージをaxiosのリリースに注入しました。

 axiosはHTTPリクエストを簡素化するための最も人気のあるJavaScriptライブラリであり、通常、上記バージョンはそれぞれ週間1億以上、8,300万以上のダウンロードを記録しています。この悪性依存パッケージはWindows、macOS、Linuxに「WAVESHAPER.V2」バックドアを展開する難読化されたドロッパーです。

 GTIGは、このアクティビティをUNC1069(2018年以降活動する金銭的動機のある北朝鮮系脅威アクター)に帰属するものとしています。これはUNC1069が以前使用していたWAVESHAPERの更新版であるWAVESHAPER.V2の使用、および本攻撃で使用されたインフラストラクチャのアーティファクト分析において、UNC1069の過去の活動に使用されたインフラストラクチャとの重複が確認されたことに基づいています。

3. 侵害の仕組み

3.1 アカウント侵害と不正公開

 侵害の起点はaxiosのメンテナアカウント(jasonsaayman)の乗っ取りです。いずれの悪性バージョンも、GitHubに対応するタグやコミットは存在せず、メンテナアカウント経由でnpmへ直接CLIアップロードされました。

 正規版(v1.14.0)と悪性版(v1.14.1)のnpm registryのマニフェストを比較すると、以下の差異があります。

 正規リリースはGitHub Actions OIDC(trustedPublisher付き)による短命トークンで行われているため、trustedPublisherなし・gitHeadなしの手動CLIパブリッシュは明確な異常です。メンテナのメールアドレスが攻撃者管理の「ifstap@proton.me」に変更されていることも確認されています。

 なお、v1.x系にはnpm trusted publishing(GitHub Actions OIDC)が設定されていましたが、publishワークフローが NODE_AUTH_TOKEN 環境変数も併用しており、npmはトークンとOIDCが両方存在する場合トークンを優先します。この構成が侵害の一因となった可能性も指摘されています。

3.2 悪意のある依存注入:postinstallフックの利用

 今回の侵害では、axios自体のソースコードには悪性コードが注入されていません。代わりに、package.jsonの「dependencies」(axiosが依存するパッケージ設定)に「plain-crypto-js」という悪性パッケージが追加されており、そちらのpostinstallフックが攻撃の起点になります。

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "postinstall": "node setup.js"
}

 つまり、「axios@1.14.1」または「axios@0.30.4」をインストール(CLIでは「npm install」した時点で悪性コードが実行されます。このインストールを回避するためには、インストール時のコマンドライン引数で「--ignore-scripts」を付けている必要がありました。

 plain-crypto-jsはaxiosのソースコードから一切 import されておらず、ランタイム依存としての必然性がありません。依存追加だけで攻撃が成立するこの手口は、以前のevent-stream侵害でも用いられた手法です。

 また、攻撃者はスキャン回避のために、悪性のaxiosバージョンを先に公開し、その後に悪性の「plain-crypto-js@4.2.1」を公開しました。これにより、悪性バージョンのaxiosをインストールしようとした場合、ほとんどのスキャナーでは異常を検知することができませんでした。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます
  • ・翔泳社の本が買える!
    500円分のポイントをプレゼント

メールバックナンバー

次のページ
4. マルウェアの解析

この記事は参考になりましたか?

アプリケーション開発の最新トレンド連載記事一覧

もっと読む

この記事の著者

株式会社フォアーゼット 蔀 綾人(カブシキガイシャフォアーゼット シトミ アヤト)

 株式会社フォアーゼットにてペネトレーションテスターとして、脆弱性診断やレッドチームオペレーションのほか、インシデントレスポンスやフォレンジック調査にも従事する。多数の民間企業にてセキュリティ顧問を務め、セキュリティ技術や知見を活用した組織強化にも寄与する。セキュリティキャンプをはじめとした、多数の...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/23847 2026/04/03 15:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング