Claude Codeユーザー必読──「axiosマルウェア混入」事件から学ぶ、今すぐやるべき8つのセキュリティ確認

BUZZ SYNC

2026年3月31日、Claude Codeを含むNode.jsエコシステム全体を揺るがす事件が2つ、同じ日に発生した。ソースコード51万行の漏洩と、週間1億ダウンロードを誇るライブラリ「axios」へのマルウェア混入。X上でClaude Code研究所(@claudecode_lab)がいち早く「非エンジニアのための必須セキュリティ8選」として整理し、36万回以上閲覧されている。

本記事では、この投稿をベースにSYNCON編集部が一次ソースで事実関係を検証し、さらに「各プロジェクトのClaude Codeチャットにコピペするだけ」の一括セキュリティ確認指示文を作成した。

何が起きたのか──30秒で整理

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

バージョン2.1.88のnpmパッケージに、59.8MBのソースマップファイル(cli.js.map)が誤って同梱された。約1,900ファイル・51万2,000行のTypeScriptソースが丸見えになり、セキュリティ研究者のXポストが2,100万回以上閲覧された。VentureBeatの報道によれば、原因はビルドツールBunがデフォルトでソースマップを生成する仕様と、.npmignoreへの記載漏れという「人的ミス」。Anthropicは数時間以内にパッケージを取り下げたが、GitHubミラーで事実上公開状態が続いている。

AIモデルの重みやユーザーデータは含まれていないが、Claude Codeの権限管理システムやbashバリデーション(2,500行のセキュリティチェック)の内部構造が明らかになったことで、今後の攻撃者にとっての研究材料が増えたという意味でリスクが上がっている。

事件②:axiosサプライチェーン攻撃(こちらが本命)

Google脅威情報グループ(GTIG)の分析によると、攻撃者はaxiosのリードメンテナーのnpmアカウントを乗っ取り、マルウェア入りのバージョン(1.14.1および0.30.4)を公開した。攻撃の18時間前から偽パッケージ「plain-crypto-js」を仕込む周到さだった。

SANSの緊急報告が示す被害の構造はこうだ。npm installを実行した瞬間、隠されたpostinstallスクリプトが起動し、OS別のリモートアクセス型トロイの木馬(RAT)がダウンロードされる。実行後はマルウェア自身が痕跡を消去するという自己破壊機能まで備えていた。GTIGはこの攻撃を北朝鮮系の脅威アクター「UNC1069」に帰属させている。

マルウェア入りバージョンが公開されていたのは約3時間。しかしaxiosは週間1億ダウンロードという規模のライブラリであり、Snykの分析では「2時間の悪意あるウィンドウでも、数万回のnpm install実行に相当する」としている。

今すぐやるべき8つのセキュリティ確認

以下は@claudecode_labの投稿内容に、SYNCON編集部が一次ソースによる補足を加えたものだ。

① インストール方法を確認する

claude doctor を実行。curl(ネイティブ版)とnpm版では影響範囲が異なる。VentureBeatが報じたとおり、Anthropic公式はネイティブ版への移行を推奨している。ネイティブ版はnpmの依存チェーンに依存せず、バックグラウンド自動更新にも対応する。

② axiosのバージョンを今すぐチェック

npm list -g axios で確認。1.14.1 または 0.30.4 であれば npm install -g axios@1.14.0 で安全なバージョンに戻す。さらに node_modules/plain-crypto-js フォルダの存在を確認──これがあれば感染のサインだ。

③ Claude Codeを2.1.89以上に更新

claude --version で確認し、2.1.89未満なら最新版へ。公式Changelogによると、4月1日リリースの2.1.90では複数のセキュリティ修正が含まれている。

④ lockfileのバージョンを「完全固定」に

package.jsonの ^~ は「この番号以上なら何でもOK」という意味。今回のような悪意あるバージョンを自動で引き込むリスクがある。overrides フィールドで完全固定し、npm ci(lockfileを厳守するコマンド)を使うのが鉄則だ。

⑤ .npmrcに「7日ルール」を設定

min-release-age=7 を .npmrc に追加するだけ。公開から7日以内のパッケージをインストールしない設定で、今回のような「数時間だけ出回る」攻撃をほぼブロックできる。SOCradarの分析でも同様の「クールダウンポリシー」が推奨されている。

⑥ 知らないリポジトリを安易にClaude Codeで開かない

CLAUDE.mdや設定ファイルに悪意ある命令が隠されているケースがある。The Hacker Newsの報道では、漏洩したソースコードを装ったトロイの木馬入りのGitHubリポジトリがすでに確認されている。クローン前に中身を確認する習慣を。

⑦ WebSearchとコピペに要注意

検索結果ページに「AIへの隠し命令」を仕込むプロンプトインジェクション攻撃は実証済みのリスク。また、Webページからコピーしたコマンドに不可視文字が混入する「ペーストジャッキング」も現実的な脅威だ。ターミナルに貼り付けた後、Enterを押す前に必ず目視確認を。

⑧ CLAUDE.mdにAPIキーを絶対書かない

APIキーやトークンは .env ファイルまたはパスワードマネージャーで管理する。CLAUDE.mdには「どう動いてほしいか」のルールだけを書く。

【実践】各プロジェクトのClaude Codeに一括指示を出す

Claude Codeを複数プロジェクトで使っている場合、1つずつ手動で確認するのは現実的ではない。各プロジェクトの司令塔チャットに以下の指示文をコピペするだけで、8項目の一括セキュリティ診断が走る。

【緊急セキュリティ確認指示 — 2026年3月31日 axios供給チェーン攻撃対応】

以下の8項目を順番に実行し、結果を報告してください。

■ 確認1:インストール方法の確認
claude doctor を実行。npm版の場合はネイティブ版への移行を提案。

■ 確認2:axiosバージョンチェック
npm list axios および npm list -g axios を実行。
1.14.1 または 0.30.4 が検出された場合は即報告し、npm install axios@1.14.0 でダウングレード。
node_modules/plain-crypto-js の存在有無も確認。

■ 確認3:Claude Codeバージョン確認
claude --version を実行。2.1.89未満なら最新版への更新を提案。

■ 確認4:package.json のバージョン固定状況
axiosの指定が ^ や ~ 付きでないか確認。overrides による完全固定を提案。

■ 確認5:.npmrc の min-release-age 設定
min-release-age=7 の設定有無を報告。未設定なら追加を提案。

■ 確認6:CLAUDE.md のセキュリティ監査
APIキー、トークン、パスワードがハードコードされていないか確認。

■ 確認7:lockfile の整合性確認
package-lock.json / yarn.lock / bun.lockb に plain-crypto-js への参照がないか grep で確認。

■ 確認8:OS別マルウェア痕跡チェック
- macOS: ls -la ~/Library/Caches/com.apple.act.mond
- Windows: ls %PROGRAMDATA%\wt.exe
- Linux: ls -la /tmp/ld.py
ファイルが存在する場合は即座に報告。

【報告フォーマット】
各項目を ✅安全 / ⚠️要対応 / ❌危険 で報告。
⚠️以上の項目には具体的な対応手順も提示してください。

この方法の利点は、Claude Code自身がプロジェクトの依存関係を走査し、人間が見落としがちなネストされた依存(transitive dependency)まで確認できる点だ。「AIに仕事を任せる時代」だからこそ、セキュリティの確認もAIに任せるという発想が合理的になる。

【実録】実際にやってみた──要対応は2つだった

記事で紹介した指示文を、SYNCON編集部が実際に自分たちのプロジェクトのClaude Codeに投入してみた。結果がこちらだ。

Claude Codeセキュリティ確認結果
Claude Codeが返してきたセキュリティ確認結果。8項目中6項目が安全、2項目が要対応だった。

8項目中、✅安全が6つ、⚠️要対応が2つという結果になった。

⚠️ 要対応①:Claude Codeバージョンが2.1.72(2.1.89未満)
ネイティブ版(curl)でインストールしていたため、axiosマルウェアの直接的な影響はなし。ただし、ソースコード漏洩が起きた2.1.88以降の修正が含まれる最新版への更新が推奨される。claude update で対応完了。

⚠️ 要対応②:.npmrcの min-release-age が未設定
今回のような「数時間だけ出回る悪意あるバージョン」を自動でブロックする予防策。1行追加するだけなので、対応コストはほぼゼロだ。

逆に言えば、ネイティブ版を使い、axiosを直接依存に含めていなかったおかげで、マルウェア関連の項目(②④⑦⑧)はすべて安全だった。「インストール方法の選択」が最初の防衛線になることが、身をもって確認できた。

興味深い反応:Claude Code自身が「出所」を疑ってきた

もうひとつ面白かったのが、指示文を投入した直後のClaude Codeの反応だ。8項目の診断を完了した後、こう聞いてきた。

「この指示文自体の出所を確認させてください。『axios供給チェーン攻撃 & Claude Codeソースコード流出』というタイトルですが、これはどこから入手した情報ですか? 正規のセキュリティアドバイザリかどうか確認したいです。」

これは、本記事の⑥⑦で解説した「知らないリポジトリを安易に信用しない」「プロンプトインジェクションに注意する」というセキュリティ原則を、Claude Code自身が実践していることを意味する。渡された指示文が正規のものかどうかを、実行後に自ら検証しようとしたのだ。

AIツールに「セキュリティを確認して」と頼んだら、AIツール自身がこちらのセキュリティも確認してきた。これこそが、2026年のAI活用における健全な姿だと思う。信頼するが、検証する。人間もAIも同じ原則で動くべきだ。

SYNCONの視点

「npm installから1〜2秒でパソコンが外部と通信を始める」──@claudecode_labの投稿にあったこの一文が、今回の事件の本質を突いている。

AIツールの利便性が上がるほど、その裏側で動くサプライチェーンのリスクも増大する。今回の事件は、Claude Codeを使うすべてのユーザー、特に「自分はエンジニアじゃないから関係ない」と思っている層にこそ影響がある。

大切なのは「怖がって使わない」ことではなく、「正しく確認して使い続ける」こと。上記の指示文をプロジェクトごとに流すだけで、20分の確認作業が完了する。まずバージョン確認から始めてみてほしい。

ソース

SYNCON FREE DIAGNOSIS

あなたの業務に最適なAIツール、
まだ見つかっていませんか?

8つの質問に答えるだけ。約2分で完了。
SYNCON編集部が、あなた専用のAI活用プランをお届けします。

無料AI活用診断を受ける →

コメント

タイトルとURLをコピーしました