TL;DR
Anthropicが誤って.mapファイルをClaude Code npmパッケージに同梱し、CLIツールの完全なTypeScriptソースコードが露呈しました。これにより、偽ツール注入による蒸留防止、欲求不満検知正規表現、AIによる著作元を隠す「アンダーカバーモード」、未公開の自律エージェントモード「KAIROS」などの存在が明らかになりました。本記事では、API開発者が技術的に注目すべき内部実装を解説し、実践的な視点で解説します。
はじめに
2026年3月31日、セキュリティ研究者のChaofan Shou氏が、AnthropicのClaude Code npmパッケージにソースマップ(.map)ファイルが含まれていることを発見。ソースマップは本来デバッグ用で、本番リリースからは除外されるべきものですが、今回は完全なTypeScriptソース・内部コメント・設計意図ごと公開されてしまいました。
この発見はHacker NewsやReddit等で拡散され、Anthropicは即時パッケージを削除しましたが、すでにコードは広く分析されています。
💡 Claude Code、Cursor、GitHub Copilot、またはApidogのAPI開発プラットフォームなど、どのAIコーディング/開発ツールを使う場合も今回の漏洩は内部構造理解に役立つ情報です。依存関係を最小化し、透明性の高いAPI開発を進めたい場合はApidogを無料でお試しください。
この記事では主要な技術的ポイントと、それらがAPI/AIツール開発・運用に与える実践的意味を解説します。
ソースコードがどのように漏洩したか
根本原因:Bunビルドツールのバグ
Claude CodeはBun(JavaScriptランタイム)上で構築されており、2026年3月11日にBunのバグ(oven-sh/bun#28001)により、本来含めてはいけないソースマップが本番ビルドに同梱されていました。Anthropicはnpm pack @anthropic-ai/claude-codeで配布物を作成する際、.mapファイルも出荷してしまい、完全な非ミニファイ化ソースが誰でも参照可能となりました。
露呈した内容
- 全TypeScriptモジュールの完全ソース
- 設計判断を説明する内部コメント
- 機能フラグ・実験的設定
- システムプロンプトテンプレート・安全機構
- 未公開機能の内部コードネーム
- パフォーマンス最適化の詳細なメトリクス
開発のための本番用コードベースがそのまま公開された形です。
蒸留防止:モデル盗用からの保護
偽ツールの注入
claude.ts(301-313行目)ではANTI_DISTILLATION_CCフラグが有効な場合、APIリクエストにanti_distillation: ['fake_tools']が付与されます。これによりAnthropicサーバー側で偽ツール定義がプロンプトに注入され、APIトラフィックをキャプチャしてモデルをコピーしようとする競合他社のデータセットを汚染します。
コネクタテキストの要約
betas.ts(279-298行目)では、ツール呼び出し間のアシスタントテキストをサマライズして暗号署名付きで返却。会話キャプチャ時には全文ではなく要約しか残らないため、推論パターンのリバースエンジニアリングが困難になります。
回避策
- MITMプロキシで
anti_distillationフィールドを除去可能 - 環境変数
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASで蒸留防止を無効化 - これら防御はパッシブキャプチャに有効だが、アクティブ利用には効果が薄い
これらは「完全防御」ではなく、攻撃コストを引き上げる多層防御の一つです。
アンダーカバーモード:AIによる著作元を隠す
アンダーカバーモードの機能
undercover.tsによると、Claude CodeがAnthropic以外のリポジトリで動く場合、以下を出力から自動的にマスキングします。
- 「Capybara」「Tengu」など内部コードネーム
- 内部Slackチャンネルやリポジトリ名
- 「Claude Code」というフレーズ自体
強制OFF不可。AI由来コードであることも同時に隠されます。
オープンソースへの影響
AIが生成したコードにも関わらず、著作元(AI関与)が出力から消えます。AI生成コードの開示を義務付けるOSSプロジェクトでは、ポリシー遵守が困難になる場合があります。
正規表現による欲求不満検知
実装方法
userPromptKeywords.tsで、正規表現パターンによりユーザー入力から冒涜語や感情的ワードを検出。UX改善・製品分析目的で運用されています(LLM推論より高速・低コスト)。
技術的ポイント
LLMではなく正規表現を選択した理由は「実運用コストとレイテンシ」。ホットパスでは正規表現、コアコーディングにはLLM推論、という実用的なトレードオフです。
ネイティブクライアントのアッテステーション
仕組み
system.ts(59-95行目)で、APIリクエストにcch=554ebのようなプレースホルダーを埋め込み、BunのHTTPスタック側でハッシュに置換。Anthropicサーバーがバイナリ正規性を検証します。
運用意図
不正なフォークやラッパーによるAPI利用を排除するための技術的仕組み。CLAUDE_CODE_ATTRIBUTION_HEADER等で無効化可能な段階的実施です。
API開発でも同様の「クライアント検証」が必要な場合、Apidogは異なるクライアント構成間のアッテステーション/証明書ピンニング検証に活用できます。
KAIROS:未公開の自律エージェントモード
コード分析による示唆
KAIROSは、バックグラウンドでリポジトリを監視・自律タスクを実行する未公開エージェント機能です。
-
/dreamスキル(夜間メモリ蒸留) - 日次追記ログ
- GitHub webhookサブスク
- 5分間隔のバックグラウンドデーモン
今後のAPI開発への示唆
自律型エージェントがAPIコードを自動修正する場合、OpenAPI仕様やテスト・ドキュメントとの同期が重要です。Apidogのような統合プラットフォームを使い、コード修正と契約・検証・ドキュメントを自動連携させる体制が推奨されます。
露呈したパフォーマンス最適化
ターミナルレンダリング最適化
-
ink/screen.ts・ink/optimizer.tsで、Int32Arrayベースの文字プール - 文字幅計算を50倍削減する最適化
- 長時間ストリームでも高速なCLI応答性を維持
プロンプトキャッシュの経済学
-
promptCacheBreakDetection.tsで14種のキャッシュブレイクベクトルを追跡 - 不要なキャッシュ無効化を防ぎ、インフラコスト削減
- プロンプトキャッシュ最適化はビジネスモデル上も最重要課題
オートコンパクトの障害
-
autoCompact.ts(68-70行目)のバグで1日25万回分のAPIコールが無駄に消費 -
MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3で再試行回数を制限し解消
セキュリティ強化の詳細
Bashセキュリティ:23項目のチェック
-
bashSecurity.tsでzsh組み込み、Unicodeゼロ幅、IFS nullバイト、HackerOneレビュー項目等23種のチェックを実装 - 一般的なCLIツールより遥かに強固なコマンドサニタイズ
- AIツールでAPIテストやインフラコマンドを自動生成・実行する場合は、コマンド実行層のセキュリティが極めて重要
API開発者がここから学ぶべきこと
1. AIコーディングツールの内部構造を理解する
蒸留防止・欲求不満検知・アンダーカバーモード・クライアントアッテステーション等、ユーザーが気づきにくい仕組みが多数存在。利用ツールがどんなデータを収集し、何を外部に送信し、どのような振る舞いを隠すか常に確認を。
2. ビルドツールチェーンは攻撃対象
Bunのバグで漏洩、同日にはAxios npmアカウントも侵害。CI/CDやパッケージマネージャー、ビルド環境も徹底監査が不可欠。
推奨施策:
- ビルドパイプライン依存関係の監査
- ソースマップや
.envファイルの露出防止 - Apidogのような統合型開発プラットフォームで依存面を最小化
3. AIコーディングツールは自律運用へ
KAIROSやCopilotエージェント等、自律的にリポジトリを監視・修正する流れが加速。API設計・テスト・ドキュメントとの自動連携基盤を早期に構築しておくのがベストプラクティス。
4. ソースコードの透明性
クローズドソースだと、意図しない挙動や非公開機能がわからないリスクあり。OSSツールであれば常に中身を検証可能。
選択の軸:
- 検証可能なツールか
- ベンダー信頼に依存するか
よくある質問
ソース漏洩後もClaude Codeは安全に使えますか?
はい。今回の漏洩はソースコードの露呈のみで、ユーザーデータやAPIキーは関与していません。機能(蒸留防止・欲求不満検知・アンダーカバーモード)は脆弱性ではなく設計上の判断です。
アンダーカバーモードとは?
Anthropic以外のリポジトリで動作時、内部名やAI関与情報を出力から隠します。強制OFF不可。
偽ツールとは?
蒸留防止有効時、APIプロンプト内に「偽ツール」定義を挿入。これによりAPI記録データを元にした競合他社のモデル蒸留を妨害します。
KAIROSとは?
未公開の自律エージェントモード。バックグラウンドでリポジトリを監視し、メモリ蒸留や自動修正を行う仕組みです。
ソース漏洩の原因は?
Bunのバグにより本来含まれるべきでないソースマップがnpmパッケージに同梱され、完全なソースが露呈しました。
この漏洩はClaude APIユーザーに影響しますか?
いいえ。漏洩したのはCLIツールのソースのみで、Claude API本体・ユーザーデータ・モデル重みには一切影響ありません。
欲求不満検知は問題?
正規表現でプロンプト内の感情的な言葉・冒涜語を検出。UX分析用途であり外部共有はされない設計ですが、利用者の快適さ次第です。
Axios npm攻撃との関係は?
同日に発生したが無関係。Axiosは攻撃による侵害、Claude Codeは偶発的なビルドミス。
主なポイント
- BunビルドツールのバグでClaude Codeの完全なTypeScriptソースがnpmパッケージ経由で漏洩
- 偽ツール注入や推論要約による蒸留防止機構
- アンダーカバーモードによるAI関与の自動隠蔽
- 欲求不満検知は正規表現で高速検出
- KAIROSによる未公開の自律エージェント機能
- クライアントアッテステーションで正規バイナリからのリクエストを検証
- API開発ワークフローには透明性・検証性の高いツール選択が必須
AIコーディングツールの内部動作を理解し、信頼・プライバシー・ワークフロー設計の判断材料としてください。APIチームは、開発ツールもセキュリティサーフェスの一部であることを意識し、次にコードを変更する存在(人間/AI問わず)に関係なく一貫性を保てる開発体制を目指しましょう。
Top comments (0)