週7000万DLのライブラリが「トロイの木馬」に 開発者なのに気付けない4つの理由axios汚染の仕組みと緩和策をMicrosoftが解説

Microsoftは、JavaScriptの人気HTTPクライアントライブラリ「axios」を標的としたソフトウェアサプライチェーン攻撃の分析結果と対策を公開した。

» 2026年04月10日 08時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2026年4月1日(米国時間)に公式セキュリティブログで、毎週7000万回以上ダウンロード(DL)されているJavaScriptの人気HTTPクライアントライブラリ「axios」を標的としたソフトウェアサプライチェーン攻撃の分析結果を公開した。攻撃の実行者は北朝鮮の国家支援型脅威アクター「Sapphire Sleet」と特定されている。

攻撃の概要

 2026年3月31日にaxiosの新バージョン(「1.14.1」「0.30.4」)がnpmレジストリに公開されたが、この2つのバージョンには、Sapphire SleetのC2(コマンド&コントロール)サーバに接続し、第2段階のRAT(リモートアクセス型トロイの木馬)ペイロード(実行本体)をダウンロードする、悪意ある依存関係が組み込まれていた。

 axiosは、依存関係を自動的に更新するように設定されていることが多い。そのため、「1.14.0」以上または「0.30.0」以上のaxiosを指定しているプロジェクトは、パッケージのインストール時に、悪意ある依存関係が自動的に実行され、このRATをダウンロードすることになった。

開発者なのに気付けない4つの理由

axios自体のコードは一切書き換えられていない

 今回の攻撃の特徴は、axiosのソースコードのアプリケーションロジックを書き換えることなく、「plain-crypto-js@4.2.1」という偽の依存パッケージを追加したことにある。このパッケージは、axiosの実行時コードには一切インポートされないが、インストール後に自動実行されるスクリプトを通じて、RATの取得処理を起動する仕組みになっていた。

 そのため、開発者のエンドポイントやCI/CD(継続的インテグレーション/継続的デリバリー)システムにおいて、「npm install」「npm update」コマンドの実行時にバックグラウンドで不正な処理が行われても、アプリケーションの通常動作は変わらない可能性がある。

事前に「無害なバージョン」を公開して実績を作る

 攻撃者は、「plain-crypto-js@4.2.1」で悪意あるインストールロジックを導入する前に、「plain-crypto-js@4.2.0」という無害なバージョンをリリースして公開履歴を作り、疑いを持たれないようにする準備工作も行っていた。

OS固有のペイロード

 インストール手順がトリガーされると、悪意あるスクリプトは難読化を利用して文字列をデコードし、Sapphire Sleetが所有するC2サーバに接続する。攻撃インフラは単一のエンドポイントを使用するが、対象環境のOSに応じて固有の第2段階RATペイロードを配信する仕組みを持つ。

 Windowsでは、再起動のたびにペイロードを取得するスクリプト、macOSではバックグラウンドで実行されるネイティブバイナリ、LinuxではPythonペイロードがそれぞれ利用される。

インストールが終わると、自身のローダファイルを削除

 さらに、検出を逃れるためにインストーラロジックは自身のローダファイルを削除し、クリーンに見えるパッケージマニフェストを復元する。これにより、インシデント後の検査で元のインストールフックが発見される可能性を減らしている。

脅威アクター「Sapphire Sleet」とは

 Sapphire Sleetは2020年3月ごろから活動する北朝鮮の国家支援型脅威アクターだ。暗号資産、ベンチャーキャピタル、ブロックチェーン関連組織を主な標的としている。主な目的は暗号資産ウォレットの窃取による収益確保であり、「LinkedIn」などのSNSを通じて標的に接触し、「Microsoft OneDrive」「Google Drive」にホストした悪意あるファイルに誘導する手口で知られる。他のセキュリティベンダーから「UNC1069」「BlueNoroff」「CryptoCore」などの名称でも追跡されている。

緩和策と保護のガイダンス

 Microsoftは、axiosを狙った攻撃の影響を受けた組織に対し、以下の対応を推奨している。

  • axiosを安全なバージョン(1.14.0または0.30.3以前)にロールバックする
  • 「npm cache clean --force」でローカルキャッシュを削除する
  • 「package.json」内のキャレット(「^」)やチルダ(「~」)を削除し、バージョンを固定する
  • 可能ならば、「npm ci --ignore-scripts」コマンドでインストール後フックを無効化する
  • CI/CDパイプラインのログを確認し、「plain-crypto-js」がインストールされないかどうかチェックする
  • ネットワークのアウトバウンドトラフィックで「sfrclak[.]com」または「142.11.206[.]72」(ポート8000)への接続がないかどうか調査する
  • 侵害が確認された場合は、関連するシークレットと認証情報を全てローテーションする

ソフトウェアサプライチェーン攻撃への継続的な備えを

 今回の攻撃は、「広く利用されているオープンソースパッケージの配布チャネルを汚染し、下流に広範な影響を与える」というソフトウェアサプライチェーン攻撃の典型的な手口を踏襲している。

 Microsoftは企業に対し、axiosに限らず、重要なnpmパッケージの自動更新機能を無効にすることや、自動化された依存関係管理ボットの制限、標準規格の「OIDC」(OpenID Connect)を用いた「Trusted Publishing」の導入などを組み合わせた多層的な防御を強く推奨している。

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

その「AIコーディング」は本当に必要か?
Microsoft & Windows最前線2026
4AI by @IT - AIを作り、動かし、守り、生かす
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。