週7000万DLのライブラリが「トロイの木馬」に 開発者なのに気付けない4つの理由:axios汚染の仕組みと緩和策をMicrosoftが解説
Microsoftは、JavaScriptの人気HTTPクライアントライブラリ「axios」を標的としたソフトウェアサプライチェーン攻撃の分析結果と対策を公開した。
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.
関連記事
「正規のOSSパッケージがマルウェアだった」 ソフトウェアSC攻撃対策2機能を追加、Takumi byGMO
マルウェアをレジストリに混入させるサプライチェーン攻撃が急増している。GMO Flatt Securityは、セキュリティAIエージェント「Takumi byGMO」に、ソフトウェアサプライチェーン攻撃の対策機能を2つ追加した。
人気のAIモデル管理ライブラリLiteLLMにサプライチェーン攻撃 Trivy侵害と同じ攻撃グループの犯行
AI管理ライブラリ「LiteLLM」がサプライチェーン攻撃を受け、マルウェアを含むバージョンが配布された。LiteLLMは100以上のLLMに単一インタフェースでアクセスできる人気のライブラリ。目的はクレTrivyの侵害と同様にクレデンシャル窃取だった。
そのnpmパッケージは安全か? 生成AIの悪用などで「トークン」を狙うソフトウェアサプライチェーン攻撃と対策をAWSが解説
AWSは、2025年に発生した一連のnpmサプライチェーン攻撃キャンペーンへの対応経験と、そこから得た知見を公開した。