1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【緊急】2026年3月31日、npmで2つの大事件が同時発生 ─ axios乗っ取り&Claude Codeソースコード漏洩

1
Last updated at Posted at 2026-04-01

【緊急】2026年3月31日、npmで2つの大事件が同時発生 ─ axios乗っ取り&Claude Codeソースコード漏洩

3行まとめ

  • 2026年3月31日、週間1億DLのaxiosが乗っ取られマルウェア入りバージョンがnpmに公開。npm install しただけでRAT(遠隔操作ウイルス)が実行される
  • 同日、AnthropicがClaude Codeのソースコード(51万行)を誤ってnpmに公開。数時間でコピー・複製され、取り返しのつかない状態に
  • 2つの事件が同じ日に同じnpmエコシステムで起きた。医療DXに関わるすべての人が知るべき「サプライチェーンリスク」の現実

この記事の対象読者

  • 医療DX・医療情報システムに関わるエンジニア
  • 臨床工学技士・医療従事者でITシステムの管理に携わる方
  • Node.js / JavaScriptを使った開発に関わるすべての方

【事件①】axios サプライチェーン攻撃

axiosとは

axios は、JavaScriptでHTTP通信(APIとのデータのやり取り)を行うためのライブラリです。週間ダウンロード数は1億回以上。Webアプリケーション開発では事実上のスタンダードであり、医療系Webシステムでも広く使われています。

何が起きたのか

2026年3月31日(UTC)、axiosのリードメンテナー(主要管理者)である jasonsaayman 氏のnpmアカウントが攻撃者に乗っ取られました。

攻撃者はアカウントの登録メールアドレスをProtonMailに変更し、以下の2つの悪意あるバージョンを公開しました:

バージョン 公開時刻(UTC) 状態
axios@1.14.1 00:21 ⚠️ 危険(削除済み)
axios@0.30.4 01:00 ⚠️ 危険(削除済み)
axios@1.14.0 - ✅ 安全
axios@0.30.3 - ✅ 安全

両バージョンとも約3時間後(03:29 UTC)にnpmレジストリから削除されましたが、その間にインストールした環境はすべて侵害されている可能性があります。

攻撃の背後:北朝鮮のハッキンググループ

Googleの研究者がこの攻撃を北朝鮮のハッキンググループ「UNC1069」と結びつけています。このグループは過去に暗号通貨やDeFi企業を標的にしてきたとされており、今回は「プロの仕事」と評されています。


攻撃の仕組み ─ なぜ「install しただけ」で感染するのか

Step 1:偽の依存パッケージを事前に仕込む

攻撃者は本番の18時間前に plain-crypto-js という無害に見えるパッケージを公開しました。

  • plain-crypto-js@4.2.0(無害版) → まず公開してレジストリの履歴を作る
  • plain-crypto-js@4.2.1(マルウェア入り) → 直後に差し替え

Step 2:axiosの依存関係に注入

乗っ取った jasonsaayman アカウントで axios@1.14.1 を公開し、依存関係に plain-crypto-js@^4.2.1 を追加。axiosのソースコード内では一切importされていない、インストール時の自動実行(postinstallフック)だけが目的のパッケージです。

Step 3:OSを判定して攻撃開始

npm install を実行すると、plain-crypto-jssetup.js が自動実行されます。

setup.js(難読化済み)
  ↓ Base64 + XOR で復号(キー: OrDeR_7077)
  ↓ OSを判定
  ├── macOS → AppleScript経由でC2サーバーからバイナリ取得
  ├── Windows → PowerShellスクリプト実行(VBScript経由で隠蔽)
  └── Linux → Pythonスクリプトを /tmp に配置・実行

Step 4:証拠隠滅(3段階)

  1. setup.js を自己削除
  2. package.json をクリーンな内容に差し替え
  3. マルウェア本体もメモリ上で動作し、再起動で消える

つまり、感染後に node_modules を確認しても痕跡が見つからないという非常に巧妙な手口です。


【事件②】Anthropic、Claude Codeのソースコードを誤って全公開

何が起きたのか

同じ3月31日、もう一つの大事件がnpmで発生しました。

AI企業Anthropicが、自社のAIコーディングツール「Claude Code」のアップデート(バージョン2.1.88)をnpmレジストリに公開した際、デバッグ用のソースマップファイル(.mapファイル)を誤って含めてしまいました

このファイルから、Anthropicのクラウドストレージ上にあるZIPアーカイブへの参照が見つかり、約51万2,000行、約1,900ファイルにわたるClaude Codeの完全なソースコードがダウンロード可能な状態になっていました。

発覚と拡散の時系列

時刻(ET) 出来事
早朝 Claude Code v2.1.88がnpmに公開(.mapファイル含む)
04:23頃 研究者 Chaofan Shou氏がXにダウンロードリンクを投稿
数時間以内 GitHubにミラーリポジトリが作成、41,500フォーク以上に拡散
同日中 AnthropicがDMCA通知でGitHubミラーの削除を開始
同日中 分散型プラットフォームにもコピーされ、事実上削除不可能に

Anthropicの公式声明

Anthropicは漏洩を認め、以下の声明を出しています:

「本日、Claude Codeのリリースに一部の内部ソースコードが含まれていました。機密の顧客データや認証情報が関与・露出することはありませんでした。これはヒューマンエラーによるリリースパッケージングの問題であり、セキュリティ侵害ではありません。再発防止策を展開しています。」

claw-code:Pythonでのクリーンルーム書き直し

この事件で話題になったのが、韓国の開発者 Sigrid Jin 氏の行動です。

Wall Street Journalの記事(2026年3月21日)で「昨年だけで個人で250億トークンを使用した、世界で最もClaude Codeを使い込んでいるユーザーの一人」と紹介されていた同氏は、午前4時にこのニュースで目を覚ましました。

Jin氏は、漏洩したTypeScriptのソースコードをそのままコピーするのではなく、Pythonでゼロからクリーンルーム書き直し(clean-room rewrite) を行い、「claw-code」としてGitHubに公開しました。

クリーンルーム書き直しとは、元のコードを直接コピーせず、その設計思想やアーキテクチャを理解した上で別の言語で独自に実装し直すことです。著作権法上、新たな創作物として扱われるため、DMCAの対象にはなりにくいとされています。

このリポジトリはGitHub史上最速級で5万スターを突破し、現在Rustでの再実装も進められています。

⚠️ 元ポストの一部は誇張を含みます

Xで拡散された投稿(@SantiTorAI氏)には事実に基づかない誇張が含まれています:

  • ❌「2100万人がスレッドを見た」→ 正確な閲覧数は一次ソースで確認できません
  • ❌「ガールフレンドが訴えられるか心配した」→ Jin氏自身のREADMEにこの記述はなく、脚色の可能性が高い
  • ❌「GitHub史上最速で3万スター」→ claw-codeのリポジトリ自身は「50Kスターを2時間で達成」と記載。「GitHub史上最速」は検証困難
  • ✅ ソースコード漏洩自体は事実(CNBC、Fortune、The Register、Axiosなど大手メディアが確認)
  • ✅ claw-codeのPython書き直しは事実(GitHubで公開中)
  • ✅ 分散型プラットフォームへのミラーも事実

SNSの投稿はバズりやすいよう脚色されることがあります。一次ソースの確認を心がけましょう。


⚠️ よくある誤解:「Claude Codeを使っていた人のコードが漏れた」は間違い

この事件について、「Claude Codeで開発していた人のソースコードが流出したのか?」 という疑問を持つ方が多いようです。答えは No です。

漏洩したのは Anthropic社自身が作った「Claude Code」というツールの内部コード(設計図) です。Claude Codeを使って開発していたユーザーのプロジェクトコードは一切含まれていません。

GitHubで例えるなら:

内容
❌ よくある誤解 「GitHubを使っている開発者のプライベートリポジトリが流出した」
✅ 実際に起きたこと GitHub自体のソースコード(GitHubを動かしているプログラム)が流出した」

つまり、「道具を使っている人」ではなく、「道具を作った会社」の設計図が漏れたということです。

Claude Codeの中身はざっくり2層に分かれています:

┌─────────────────────────────────┐
│  AIモデル(Claude本体の頭脳)      │ ← 漏洩していない
├─────────────────────────────────┤
│  エージェントハーネス              │ ← ★ここが漏洩した
│  ・ツールの呼び出し方              │
│  ・ファイル操作の制御              │
│  ・権限管理の仕組み               │
│  ・システムプロンプト              │
│  ・未公開機能のフラグ(44個)       │
└─────────────────────────────────┘

漏れたのは「ハーネス」と呼ばれる部分です。AIモデルに「こうやってコードを書け」「この権限で操作しろ」と指示を出す枠組みのコード。モデルの重み(AIの頭脳そのもの)は含まれていません。

ただし安心はできません。ハーネスの設計が公開されたことで、Claude Codeのセキュリティの仕組み(権限チェックの方法など)が丸見えになりました。 今後、この情報を悪用して権限チェックを回避したり、悪意あるリポジトリでClaude Codeを騙してバックグラウンドでコマンドを実行させるといった攻撃が出てくる可能性があります。Claude Codeを業務で使っている方は、Anthropicからのセキュリティアップデートに注意を払ってください。


漏洩から見えたもの ─ なぜ医療DXに関係あるのか

1. npmは「1つのミス」で大規模漏洩が起きる

Anthropicは世界有数のAI企業であり、セキュリティに対する投資も大きい企業です。それでも .npmignore の設定ミス1つでソースコード全体が公開されてしまいました。

医療機関や中小の開発チームが同じエコシステムを使っている場合、自分たちのコードや設定情報が意図せず公開されるリスクは他人事ではありません。

2. axios事件との「同時発生」の意味

VentureBeatの記事は、axiosの乗っ取りとClaude Codeの漏洩が同じ日にnpmで起きたことを指摘し、「3月31日 00:21〜03:29 UTCの間にClaude Codeをnpm経由でインストール・アップデートした場合、悪意あるaxiosを取り込んだ可能性がある」と警告しています。


医療DXに関わる人が注意すべき理由

1. 医療情報システムへの影響

医療機関のWebシステム(電子カルテ連携、患者ポータル、予約システムなど)でNode.jsが使われているケースは増えています。axiosはこれらのシステムで非常によく使われるライブラリです。

2. 医療情報の機密性

RATに感染した場合、攻撃者はそのマシン上のすべての情報にアクセスできます。これには以下が含まれます:

  • 患者情報(個人情報保護法・医療情報ガイドラインに抵触)
  • APIキー・認証トークン
  • データベース接続情報
  • SSHキー・クラウド認証情報

3. 厚生労働省ガイドラインとの関連

「医療情報システムの安全管理に関するガイドライン 第6.0版」では、ソフトウェアのサプライチェーンリスク管理が求められています。今回のような「正規パッケージの乗っ取り」は、まさにサプライチェーン攻撃の代表例です。


今すぐやるべき確認手順

手動で確認する方法

# package-lock.json から axiosのバージョンを確認
grep -r '"axios"' package-lock.json

# node_modules 内のバージョンを直接確認
cat node_modules/axios/package.json | grep version

# plain-crypto-js が存在しないか確認
ls node_modules/plain-crypto-js 2>/dev/null && echo "⚠️ 危険!" || echo "✅ 見つかりません"

# bun を使っている場合
grep axios bun.lockb 2>/dev/null || grep axios bun.lock 2>/dev/null

CI/CDのログを確認

2026年3月31日 00:00〜03:30 UTC の間にビルドが走っていた場合、そのビルド環境も確認が必要です。


✅ 筆者の環境での確認結果 ─ 実際にやってみた

実際に自分のプロジェクトで確認を行いました。結果は以下の通りです。

プロジェクト axios plain-crypto-js 状態
next_app 未インストール なし 安全
remotion-videos 未インストール なし 安全

package-lock.json にも axiosplain-crypto-js の記録はなく、影響なしでした。

今回はたまたま axios を直接使っていなかったため問題ありませんでしたが、axios を内部的に利用している別のパッケージ経由で間接的に入っているケースもあり得ます。package-lock.json を丸ごと検索するのが確実です。

📌 この脆弱性は本物でした

2026年3月31日 00:21〜03:30 UTC(約3時間)の間、npmレジストリに悪意あるバージョンが存在していました。

  • 感染バージョン: axios@1.14.1 / axios@0.30.4
  • 仕込まれたもの: plain-crypto-js@4.2.1(postinstallでRAT起動)
  • 安全なバージョン: 1.14.0 / 0.30.3 以前

「自分は大丈夫だった」で終わらせず、なぜ大丈夫だったのかを理解し、次のインシデントに備えることが重要です。


🤖 AIを活用したセキュリティ確認 ─ Claudeに打つべきプロンプト集

「自分の環境が大丈夫か確認したいけど、コマンドに自信がない」という方のために、Claudeに投げるだけで確認・対策できるプロンプトをまとめました。

プロンプト① ─ プロジェクトの依存関係を診断してもらう

以下は私のプロジェクトの package.json です。
axios の乗っ取り事件(2026年3月31日)の影響を受けているか確認してください。

- axios のバージョンが 1.14.1 または 0.30.4 かどうか
- plain-crypto-js が依存関係に含まれていないか
- その他のセキュリティ上の懸念点

[ここに package.json の内容を貼り付け]

プロンプト② ─ package-lock.json を丸ごと診断

以下の package-lock.json を分析して、axios供給チェーン攻撃
(2026年3月31日)の影響があるか教えてください。

具体的に以下を確認してください:
1. axiosのバージョン(1.14.1 または 0.30.4 が危険)
2. plain-crypto-js の存在有無
3. その他の不審な依存関係

[ここに package-lock.json の内容を貼り付け]

プロンプト③ ─ 感染していた場合の対応手順を聞く

axiosのnpm乗っ取り事件で、私の開発環境が影響を受けた可能性があります。

環境情報:
- OS: [macOS / Windows / Linux]
- 用途: [開発環境 / 本番サーバー / CI/CD]
- 扱うデータ: [医療情報あり / なし]

以下について対応手順を教えてください:
1. 感染確認の方法(ログやファイルシステムの確認コマンド)
2. 認証情報のローテーション手順
3. システム復旧の手順
4. 医療情報が含まれる場合の法的対応(個人情報保護法、厚労省ガイドライン)

プロンプト④ ─ 今後の再発防止策を設計してもらう

npm サプライチェーン攻撃(axios事件のような)を防ぐための
セキュリティ対策を提案してください。

私の環境:
- チーム規模: [人数]
- 使用技術: Node.js / [フレームワーク名]
- CI/CD: [GitHub Actions / その他]
- 医療情報を扱う: [はい / いいえ]

以下の観点で具体策をお願いします:
1. package-lock.json のピン留め戦略
2. npm install 時の自動検査ツール導入
3. OIDC署名検証(Provenance)の活用
4. Dependabot / Renovate の設定
5. 医療情報システム安全管理ガイドラインへの対応

プロンプト⑤ ─ 社内・院内向けの注意喚起文を作成してもらう

以下の状況について、医療機関の情報システム担当者向けに
注意喚起メールを作成してください。

状況:
- axiosというnpmパッケージがサプライチェーン攻撃を受けた
- 影響を受けるバージョン: 1.14.1, 0.30.4
- npm installで自動的にマルウェアが実行される
- 患者情報漏洩のリスクがある

トーン:緊急性を伝えつつ、非エンジニアにもわかるように
宛先:[病院の情報システム部門 / 全職員]

プロンプト⑥ ─ 自分のnpmパッケージが意図しない情報を公開していないか確認

npmにパッケージを公開する前のセキュリティチェックリストを作ってください。
Claude Codeのソースコード漏洩事件(2026年3月31日)を踏まえて、
以下の観点でお願いします:

1. .npmignore / package.json の files フィールドの設定確認
2. ソースマップファイル(.map)の除外確認
3. 環境変数・APIキー・内部URLの混入チェック
4. npm pack --dry-run で公開対象ファイルの確認方法
5. CI/CDパイプラインでの自動チェック導入

感染が確認された場合の対応チェックリスト

  • 該当マシンを即座にネットワークから隔離
  • クリーンなバックアップ(3月30日以前)からシステムを再構築
  • すべての認証情報をローテーション(APIキー、SSHキー、DBパスワード、npmトークン、クラウド認証情報)
  • CI/CDパイプラインのビルドログを確認(3月31日 UTC 00:00〜03:30)
  • C2ドメイン sfrclak[.]com / IP 142.11.206.73 への通信をファイアウォールでブロック
  • 医療情報を扱う場合:個人情報保護委員会への報告義務を確認
  • インシデント報告書の作成

根本的な問題 ─ npmエコシステムの「信頼モデル」

今回の2つの事件で改めて浮き彫りになったのは、npmエコシステムが抱える構造的リスクです。

axios事件 では、正規のリリースはGitHub ActionsからOIDC署名付きで公開されますが、今回の悪意あるバージョンにはこの署名がありませんでした。しかし、npmの仕組み上、署名がなくても latest タグで公開できてしまいます。

Claude Code事件 では、.npmignore の設定漏れ1つで51万行のソースコードが公開されました。ビルドパイプラインの設定ミスが、企業の知的財産を一瞬で流出させるリスクがあることを示しています。

引用元のポスト(@gunta85 氏)の言葉を借りれば:

npm installを打つたびに、メンテナーのアカウントが乗っ取られてないことを祈ってる状態。それはセキュリティじゃない。信仰だ。


今後の防御策

対策 概要 難易度
package-lock.json の厳格管理 バージョンをロックファイルで固定し、npm ci を使う ★☆☆
npm pack --dry-run の習慣化 公開前に含まれるファイルを確認(漏洩防止) ★☆☆
npm provenance の確認 OIDC署名の有無をチェック ★★☆
Socket / Snyk などの導入 インストール前にパッケージを自動スキャン ★★☆
Aikido Safe Chain の導入 公開から48時間未満のパッケージをブロック ★★☆
ネットワーク監視 不審な外部通信の検知体制 ★★★
サンドボックス環境での開発 Nix / Dockerなど隔離環境でインストール ★★★

まとめ

2026年3月31日は、npmエコシステムにとって歴史的な一日となりました。

  • axios乗っ取り ─ 正規パッケージが武器化され、npm install だけでマルウェアが実行される
  • Claude Code漏洩 ─ 世界有数のAI企業でも、ビルド設定1つのミスで知的財産が流出する
  • 2つの事件が同じ日に同じエコシステムで発生 ─ これは偶然ではなく、npmの構造的リスクの現れ

医療情報を扱う環境では、患者情報漏洩のリスクを前提に動くことが求められます。

「自分には関係ない」ではなく、「次は自分かもしれない」という前提で備えましょう。わからなければ、AIに聞きながら確認するだけでも大きな一歩です。


参考情報

axios乗っ取り事件

Claude Codeソースコード漏洩事件


この記事は2026年4月1日時点の情報に基づいています。最新の状況は上記の参考情報を確認してください。

筆者: 臨床工学技士 × AIエンジニア

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?