npmサプライチェーン攻撃とは?週1億回DLのaxios乗っ取り事件を徹底解説

週1億回ダウンロードされる部品が、3時間だけ汚染された

JavaScriptの定番ライブラリ「axios」が乗っ取られたのは2026年3月31日。そして2026年7月29日、Amazonが「あの一連の攻撃は北朝鮮系だ」と公表しました。世界では大きく報じられているのに、日本語ではほとんど誰も書いていません。日本の開発現場にこそ関係のある話を、確信度まで含めて整理します。

あなたの会社のWebサービスは、いくつの「他人が書いたプログラム」で動いているでしょうか。

現代のソフトウェア開発では、すべてを自分で書く人はいません。世界中の誰かが公開した部品(ライブラリ)を組み合わせて作ります。JavaScriptの世界では npm という巨大な部品倉庫があり、コマンドひとつで数千個の部品が自動的にダウンロードされます。

便利です。そして、その便利さがそのまま攻撃経路になります。倉庫にある部品のひとつに悪意あるコードを混ぜれば、それを使っている世界中の開発者のパソコンとサーバーに、自動的に配られるからです。

2026年3月31日、それが実際に起きました。標的は axios週に1億回以上ダウンロードされる、JavaScript開発の超定番ライブラリです。

⚠️ この記事の前提
本記事は Amazon(AWS)の公式発表、axiosメンテナ自身が公開したポストモーテム(事後検証)、および複数の独立した報道にもとづきます。国家への帰属(アトリビューション)は、断定ではなく「確信度つきの評価」です。本記事ではその確信度も含めて正確に伝えることを重視し、誰が・どの程度の確からしさで・何を根拠に言っているかを明示します(詳しくは第4章)。

CHAP1

第1章 / 全8章

🇯🇵 日本語で誰も書いていない、という異常

まず、この記事を書いた理由から

当サイトでは、日本語と英語のセキュリティ情報を毎日集めて比較しています。2026年8月1日時点の集計は、次のようになりました。

テーマ世界の報道日本語の報道偏り
北朝鮮系の攻撃グループ9件0件🔴 10.4倍
ランサムウェア(比較用)70件59件🟢 0.7倍
フィッシング(比較用)63件8件🟠 4.6倍

表1:当サイトの収集データによる集計(日本語記事898本/世界1,500本を、同一事件の重複をまとめたうえで比較)

調べた全56テーマの中で、「北朝鮮系の攻撃グループ」の偏りは最大でした。日本語の記事898本を「Lazarus」「ラザルス」「北朝鮮」「DPRK」「Kimsuky」で全文検索して、本当に0件です。

🚨

「報道が無い」は「関係が無い」ではありません

むしろ逆です。この記事で扱う axios も debug も chalk も、日本のWeb開発現場で日常的に使われている部品です。日本語の情報が無いということは、日本の開発者が気づく手段が無いということでもあります。報道の空白は、安全の証明ではなく、単なる空白です。

ちなみに、この件については米国のCISA(サイバーセキュリティ・インフラセキュリティ庁)が2026年4月20日に公式アラートを出しています。国レベルで注意喚起されるほどの事案が、日本語ではほぼ流通していない。これがこの記事を書いた理由です。

第1章 おわり — 次は第2章

CHAP2

第2章 / 全8章

📈 3段階で進んだ、1年がかりの攻撃

いきなり本命を狙ったわけではありませんでした

Amazonの分析でいちばん興味深いのは、これが単発の事件ではなく、1年かけて規模を広げた「段階的な作戦」だったという指摘です。

時期標的パッケージ手口位置づけ
2025年
3月
typo-crypto
ほぼ無名のパッケージ
最初から偽物として公開(乗っ取りではない)。特定の入力を受けたときだけ、OSごとに使い分けた第2段階を外部から取得🟡 練習台
小さな標的で手口を試す
2025年
9月
debug / chalk
合計20億回超のDL規模
メンテナがそっくりのnpm偽サイトでフィッシングされ、アカウントを奪われる。ブラウザ内で送金先アドレスを書き換える仕掛け🟠 中規模
暗号資産の窃取狙い
2026年
3月31日
axios
週1億回超のDL
メンテナのPCが標的型の誘導とRAT(遠隔操作ウイルス)で侵害され、npmアカウントを奪われる。悪意ある依存パッケージを注入🔴 本命
3OS対応のRATを配布

表2:3段階のキャンペーン(出典:Amazon Threat Intelligence、2026年7月29日)

Amazonの最高情報セキュリティ責任者 CJ Moses 氏は、最初の typo-crypto について「標的が小規模だったからこそ、大舞台に出る前に手口を試せた」という趣旨の説明をしています。本番前のリハーサルだったという見立てです。

📌

debug / chalk の被害は、意外にも小さかった

2025年9月の debug / chalk 事件では、Wiz Research の観測で「約10件に1件のクラウド環境が、わずか2時間のうちに影響を受けた」とされます。規模は甚大です。
ところが攻撃者が実際に盗めた額は、Socket社の報告で約600ドル(日本円で10万円弱)でした。仕掛けが「ブラウザ上で暗号資産の送金先を書き換える」というピンポイントなものだったためです。規模の大きさと、実害の大きさは比例しません。

逆に言えば、同じ規模の配布力で、もっと悪質な仕掛けを配ることもできたということです。そして2026年3月の axios では、実際にそうなりました。

第2章 おわり — 次は第3章

CHAP3

第3章 / 全8章

⏱️ axios侵害を、分単位で追う

この章がいちばん実用的です

axios の開発チームは、事件後にポストモーテム(事後検証レポート)を公開しました。隠さず、時刻まで含めて公開されています。ここでは、その内容をそのまま紹介します。

時刻(UTC)出来事
3月31日
00:21
axios@1.14.1 が公開される。悪意ある依存パッケージ plain-crypto-js@4.2.1 が注入されていた
01:00頃axios@0.30.4 も公開される(旧系統にも手が回っていた)。同時に外部の検知が動き始める
01:00頃コミュニティの利用者がGitHubに「おかしい」と報告。共同メンテナがnpmへ直接連絡
03:15悪意あるバージョンがnpmから削除される
公開されていた時間:約3時間

表3:axios侵害のタイムライン(出典:axios公式ポストモーテム)

侵入経路は、技術的な脆弱性ではありませんでした。主要メンテナ個人のパソコンが、標的型の誘導とRAT(遠隔操作ウイルス)で乗っ取られ、npmアカウントの認証情報が盗まれたのです。人が狙われました。

この「人を狙う」部分こそが、いま最も進化している領域です。2026年のフィッシングは、ワンタイムパスワードを入れても止まらない段階に入っています。開発者アカウントを守るうえで直結する話なので、フィッシング3世代の進化もあわせてご覧ください。

そして注入された plain-crypto-js は、macOS・Windows・Linux の3つすべてにRATを仕込むものでした。開発者のパソコンも、ビルドサーバーも、区別なく対象です。

🚨

いちばん怖いのは、この一文です

ポストモーテムには「不正な公開を自動的に検知する手段は無かった」と書かれています。気づいたのは自動監視ではなく、たまたま様子がおかしいと気づいた利用者でした。世界で最も使われるライブラリのひとつでさえ、この状態だったのです。

🔧 あなたの環境が影響を受けたかを確認する

axios のメンテナが公式に案内している対処は、次の5点です。2026年3月31日ごろに依存パッケージを更新した心当たりがあるなら、必ず確認してください。

#やること補足
1バージョンを戻す
axios@1.14.0 または axios@0.30.3
汚染版は 1.14.10.30.4 の2つ
2残骸を消す
node_modules/plain-crypto-js/ を削除
これが実体。存在したら侵害の可能性あり
3秘密情報を入れ替える
該当端末の認証情報・鍵をすべてローテート
ここが最重要。RATが動いていた前提で考える
4通信ログを確認する
sfrclak[.]com または 142.11.206[.]73 のポート8000への接続
接続記録があれば実害を疑う
5CI/CDも忘れない
該当期間のビルドで注入したシークレットをローテート
見落としがちだが被害が大きい

表4:axios公式が案内する確認・対処手順(通信先は無害化表記)

# いま自分が使っているバージョンを確認する

npm ls axios

上のコマンドで、依存関係の奥に潜んでいる axios も含めて一覧できます。自分で直接使っていなくても、別のライブラリの中で使われていることがほとんどなので、必ず確認してください。

第3章 おわり — 次は第4章

CHAP4

第4章 / 全8章

⚖️ 「北朝鮮の仕業」はどこまで確かなのか

ここを飛ばさないでほしい章です

ニュースの見出しは「北朝鮮のハッカーの仕業」と断定形で書かれます。しかし、元の発表を読むと、そこまで強い言い方はしていません。

Amazon の公式ブログの表現は、こうです。

🔍

Amazon の実際の言い方

これらのキャンペーンが北朝鮮に関連する攻撃者によるものであると、「中程度の確信度(medium confidence)」で評価する
根拠:トロイの木馬化されたnpmパッケージ、post-installフックの利用、コードの再利用といった共通の戦術・技術・手順(TTP)、およびC2(指令サーバー)の指標の分析。

「断定」ではなく「中程度の確信度での評価」です。この違いは、とても大きい。

確信度意味するところ読み手の姿勢
高(high)複数の独立した強い証拠が一致しているほぼ事実として扱ってよい
中(medium)もっともらしいが、別の説明も否定しきれない「そう評価されている」と理解する
低(low)断片的で、今後覆る可能性が高い参考程度にとどめる

表5:脅威インテリジェンスにおける確信度の目安(一般的な用法)

では、なぜ「中」なのでしょうか。報道を丁寧に読むと、いくつか無視できない引っかかりがあります

引っかかる点具体的には
どの証拠がどの事案を結ぶのか不明Amazonは根拠の種類は挙げているが、「この証拠が、この事案とこの事案を繋ぐ」という対応関係は示していない
手口が根本的に違うdebug/chalk はブラウザ内で送金先を書き換える仕掛けで永続化すらしない。axios はpost-installフックでRATを仕込む設計思想が別物
他社は名指ししていないdebug/chalk について、Amazon以外のベンダーの公開研究は攻撃者を名指ししていない
帰属までの時間差が不自然axios は2日で帰属。debug/chalk は10か月後。typo-crypto は16か月

表6:帰属をめぐって指摘されている論点

公平を期すために書き添えると、axios 単体については、より強い裏づけがあります。Google は独自に UNC1069 という攻撃者に帰属させ、その根拠としてWAVESHAPER.V2 というバックドアと、この集団が以前使っていたVPNノードを挙げています。Microsoft も同じ事案を Sapphire Sleet に帰属させました。複数の組織が独立に、同じ方向の結論に達しているのは強い材料です。

🧠

この章でいちばん伝えたいこと

「北朝鮮の仕業だ」という情報に接したとき、「誰が」「どの確信度で」「何を根拠に」言っているのかを確認する。この3点を見る習慣があるだけで、情報の受け取り方がまったく変わります。
そして実務的には、攻撃者が誰かはあまり重要ではありませんやるべき対処(第3章と第7章)は、犯人が誰であっても同じだからです。

🔗 関連記事

脅威インテリジェンスの読み方を、もう一段深く

確信度、IOC(侵害の痕跡)、MITRE ATT&CK。この記事で出てきた考え方を体系的に押さえたい方はこちらへ。今回の sfrclak[.]com のような指標を、自分で調べられるようになります。

脅威インテリジェンス実践ガイド →

第4章 おわり — 次は第5章

CHAP5

第5章 / 全8章

🎭 名前が多すぎる問題

調べようとした人が、まずここでつまずきます

この事件について調べ始めると、同じ集団が記事によって違う名前で呼ばれていることに気づきます。これは初心者が最初につまずくポイントであり、実は専門家でも混乱の元になっています。

呼び名名付け親備考
Sapphire Sleet(サファイア・スリート)Microsoft今回の報道で最もよく使われた名前
BlueNoroff(ブルーノロフ)セキュリティ業界で定着した呼称金銭目的に特化した集団として知られる
UNC1069Google(Mandiant)axios を独自に帰属させた際の呼称
STARDUST CHOLLIMACrowdStrike 系の命名規則「チョリマ」は北朝鮮関連集団に付く共通の語
Alluring Pisces / CageyChameleon / CryptoCore各社いずれも重なりがあるとされる

表7:同一とされる集団の呼び名(出典:Microsoft、Google、Amazon の各発表で言及された対応関係)

なぜこんなことになるのか。各セキュリティ企業が、自分たちの観測データにもとづいて独自に名前を付けているからです。観測範囲が違えば見える活動も違うので、「完全に同一」とは言い切れないまま、重なりだけが確認されるという状態になります。

⚠️ 「Lazarus」という言葉の使われ方に注意

ここで、この記事で最も注意深く書きたい点をお伝えします。

日本語で北朝鮮のサイバー攻撃といえば、まず Lazarus(ラザルス) という名前が挙がります。しかし今回の一連の発表で、Amazon も Microsoft も Google も、「Lazarus」という名前は使っていません。使われたのは Sapphire Sleet / BlueNoroff / UNC1069 です。

📌

Lazarus は「傘」の名前です

Lazarus は、北朝鮮に関連するサイバー活動全体をざっくり指す傘のような言葉として使われることが多く、その下にいくつもの下位グループがあると整理されます。BlueNoroff はその中でも「金を稼ぐ」役割を担うとされる集団です。
ただしこの階層関係の描き方は企業ごとに違い、統一された正解はありません。「Lazarusの仕業」という表現は、間違いとまでは言えないが、解像度が粗いと考えてください。

実務上のコツをひとつ。集団の名前を追いかけるより、「手口」を追いかけるほうが役に立ちます。名前は会社ごとに変わりますが、「メンテナのアカウントを乗っ取って、正規のパッケージに悪意あるコードを混ぜる」という手口は変わりません。そして守り方も、手口に対して決まります。

第5章 おわり — 次は第6章

CHAP6

第6章 / 全8章

🇰🇷 もうひとつの顔 ── 韓国での動き

日本にとって、いちばん他人事でない話

npm の話と同じ時期に、韓国からもうひとつの重要な発表がありました。今度はLazarus そのものについてです。

2026年7月末、韓国の4つの機関(国家情報院・警察庁・KISA・金融保安院)が合同で注意喚起を出し、セキュリティ企業 AhnLab がその裏づけとなる調査を公表しました。作戦名は 「Operation Double Barrel(二連銃作戦)」

項目内容
誰がLazarus(国家系)と Gunra ランサムウェア(犯罪系)
いつ2025年〜2026年上半期
どこを韓国の政府機関・暗号資産取引所・IT事業者など。少なくとも72組織にスパイ用バックドアが展開された
入口韓国で導入が義務づけられている金融セキュリティソフトの脆弱性(両者が同じ穴を悪用)
繋がりの根拠同じマルウェアのファイル名・同じ権限昇格ツール・同じC2インフラ・同じSSH鍵のフィンガープリント
役割分担Lazarus が諜報のために侵入し、Gunra が同じアクセスを使って暗号化・恐喝

表8:Operation Double Barrel の概要(出典:韓国4機関の合同アドバイザリ、AhnLab の調査)

この発表が重い理由は、「国家がやるスパイ活動」と「金目当ての犯罪」の境界が溶けていることを、具体的な技術的証拠つきで示した点にあります。

💥

「うちは狙われるような組織じゃない」が通じなくなる

これまでは「国家系に狙われるのは政府や防衛産業だけ」と考えることができました。しかし国家系が開けた穴を、そのままランサムウェア犯罪者が使うのであれば、話は変わります。諜報価値がゼロの組織でも、身代金の対象としては十分な標的だからです。

そして日本にとって重要なのは、入口が「その国で導入が事実上必須になっているソフト」だったという点です。日本にも、業界ごとに「これを入れることになっている」というソフトウェアは数多くあります。全員が同じものを入れている=一箇所破れば全員に届くという構造は、韓国だけの話ではありません。

🔗 関連記事

取引先の「格付け」で選ばれる時代へ

サプライチェーン攻撃が増えた結果、いまや取引先のセキュリティ体制そのものが取引条件になりつつあります。文字で読むのが大変な方には漫画版もあります。

サプライチェーンの格付けとは →   📖 漫画で読む →

第6章 おわり — 次は第7章

CHAP7

第7章 / 全8章

🛡️ 日本の開発現場が、今すぐやること

犯人が誰であっても、やることは同じです

第4章で書いたとおり、攻撃者が誰かは実務上あまり重要ではありません。重要なのは「同じ手口が来たときに耐えられるか」です。立場別に整理します。

立場やることこの事件のどこに対応するか
個人・一般利用者直接の対処はほぼ不要。ただし暗号資産を扱うなら送金先アドレスを画面で必ず目視確認する習慣をdebug/chalk の送金先書き換え
Web開発者npm ls axios で確認。バージョンを固定(lockfile をコミット)し、勝手に上がらないようにする3時間だけ存在した汚染版
開発者(防御強化)インストール時スクリプトを既定で無効化する(npm ci --ignore-scripts の検討)axios のpost-installフック
ライブラリのメンテナnpmアカウントに耐フィッシングのMFA(パスキー/セキュリティキー)を設定するdebug/chalk の偽サイトでのフィッシング
情シス・SOCビルドサーバーからの外向き通信を制限。CI/CDのシークレットを短命化3OS対応RATの通信
経営・管理職自社製品に何が入っているかの一覧(SBOM)を作れる状態にする「使っているか分からない」問題

表9:立場別・今日からやること

特に強調したいのは3行目「インストール時スクリプトの無効化」です。

npm には、パッケージを入れた瞬間に自動でプログラムを実行する仕組み(post-installフック)があります。便利な機能ですが、axios の攻撃はまさにこれを使いました。多くのプロジェクトでは、この機能を使っていない依存パッケージがほとんどです。既定で止めておけば、同種の攻撃の大半は不発になります

# インストール時スクリプトを実行せずに依存を入れる(CI環境で特に有効)

npm ci --ignore-scripts
⚠️

ただし、いきなり本番に入れないこと

ネイティブモジュールのビルドなど、インストール時スクリプトが本当に必要なパッケージもあります。無効化するとビルドが壊れることがあるので、まず検証環境で試し、必要なものだけ個別に許可するという順序で進めてください。安全策を入れて業務が止まっては本末転倒です。

📝 確認チェックリスト

  • npm ls axios を実行して、1.14.1 と 0.30.4 が入っていないことを確認しましたか
  • node_modules の中に plain-crypto-js が残っていませんか
  • 2026年3月31日前後にビルドしたCIのシークレットをローテートしましたか
  • lockfile(package-lock.json)をリポジトリにコミットしていますか
  • 依存パッケージの更新を自動で本番に反映していません
  • ビルドサーバーは外向き通信が制限されていますか
  • あなたがメンテナなら、npmアカウントに耐フィッシングのMFAを設定していますか
  • 自社サービスがどの外部部品を使っているか一覧できます
🔗 同じ構造の攻撃

「配布物を汚染する」はAIの世界でも起きています

今回はnpmパッケージでしたが、まったく同じ構造の攻撃がAIモデルの配布でも起きています。悪意あるモデルファイルを見抜く練習もどうぞ。

AIモデルのサプライチェーン攻撃 →   🎮 AIモデル鑑定士で練習 →

第7章 おわり — この先はまとめです

CHAP8

第8章 / 全8章

📋 まとめ ── 3つの持ち帰り

読んで終わりにしないために

#わかったことだから何をするか
1狙われたのは技術ではなく「人」だった
axios も debug/chalk も、メンテナ個人が騙されて始まった
アカウントの守り(耐フィッシングMFA)が最優先。ライブラリの安全性は、メンテナの安全性で決まる
2汚染はわずか3時間。それでも世界中に届く
debug/chalk では2時間で1割のクラウド環境に到達したとの観測も
バージョンを固定し、自動更新をそのまま本番に流さない。「速く上げる」より「一拍おく」
3帰属は「断定」ではなく「中程度の確信度」
見出しの断定形と、元発表の慎重さには差がある
誰が・どの確信度で・何を根拠に、を確認する。そして犯人が誰でも対処は同じと割り切る

表10:この記事の結論と、次の行動

✅ 今日やる3ステップ

ステップ1(3分・開発者):手元のプロジェクトで npm ls axios を実行し、1.14.1 / 0.30.4 が無いことを確認する。
ステップ2(10分・開発者)package-lock.jsonリポジトリにコミットされているか確認する。されていなければ、今日コミットする。
ステップ3(5分・全員):自分が管理している開発系アカウント(npm・GitHub・クラウド)のMFAを見直し、SMSではなくパスキーやセキュリティキーに切り替える。

最後に、この記事を書きながら考えたことを書いておきます。

今回いちばん印象に残ったのは、axios のメンテナが公開したポストモーテムにあった「不正な公開を自動的に検知する手段は無かった」という一文でした。

週に1億回ダウンロードされるライブラリです。世界中の企業が、金融も医療も含めて、その上にサービスを載せています。それでも守っていたのは、たいてい少人数の、多くは無償の開発者でした。そして異変に最初に気づいたのは、自動監視ではなく「なんかおかしい」と思った一人の利用者だったのです。

私たちは、この構造の上に生活しています。誰かの善意で公開された部品を、無料で、当たり前のように使っている。だからこそ、使う側にもできることがあります。バージョンを固定する。更新を確認してから入れる。おかしいと思ったら報告する。どれも地味ですが、今回axiosを救ったのは、まさにその地味な行動でした。

そして最後にもう一度。日本語の情報が無いことは、日本が安全であることを意味しません。この記事が、その空白を少しでも埋められていれば幸いです。

第8章 おわり — お読みいただきありがとうございました

🧭 このシリーズについて

当サイトでは、日本語と海外のセキュリティ報道を毎日集めて突き合わせ、「世界では動いているのに、日本ではまだ話題になっていない」テーマを探しています。この記事も、その分析から生まれた1本です。

📁 参考にした情報源

コメント