世界を動かす技術を、日本語で。

クロードコードのソースリーク:偽のツール、フラストレーション正規表現、アンダーカバー モード

2026年3月31日原文(alex000kim.com)

概要

  • Anthropic社のClaude Code npmパッケージ から ソースコードが流出
  • 内部機能や防御策、未公開モード「KAIROS」などが明らかに
  • 技術的な抜け道内部事情 も多数判明
  • 競合他社への情報流出 が最大のダメージ
  • Bunの既知バグ が流出原因の可能性

Claude Codeソース流出事件の概要

  • 2024年3月、 AnthropicのClaude Code CLIツール のnpmパッケージに .mapファイル が誤って含まれ、 可読なソースコード が流出
  • パッケージは既に削除済みだが、 Hacker Newsや各所でミラー・解析 される事態
  • 一週間以内に2度目の流出事故 (直前にはモデル仕様のリークも発生)
  • 内部関係者による故意流出疑惑 もSNS上で浮上
  • OpenCodeへの法的措置 直後のタイミングで発生し、業界では注目度が高い

流出コードから判明した主な内部機能

  • アンチ蒸留(Anti-distillation)機構

    • fake_tools 等のダミーツール定義をAPIレスポンスに混入し、 競合モデルの学習データを汚染 する仕組み
    • GrowthBookのfeature flag や複数条件で有効化を厳格に制御
    • 中間者攻撃(MITM)や環境変数の設定 で容易に回避可能
    • 法的抑止力 が主な防御策
  • サーバー側要約署名機構

    • tool呼び出し間のテキストをサマリー化+署名付与 し、APIトラフィックから 完全な推論過程を隠蔽
    • Anthropic内部専用 で外部ユーザーは利用不可
  • アンダーカバーモード(undercover.ts)

    • Anthropic社内情報やコードネーム (例:Capybara, Tengu, Claude Code)を 外部リポジトリ利用時に自動非表示
    • 強制OFF不可 (一方通行ロジック)
    • AIによるコミット・PRが人間作成と区別困難 になる懸念
  • ユーザーのフラストレーション検出

    • userPromptKeywords.ts罵倒語や苛立ち表現を正規表現で検出
    • LLMによる感情分析よりも低コスト・高速、皮肉だが実用的な選択
  • ネイティブクライアント認証

    • system.ts内でAPIリクエストにcch=00000プレースホルダ を挿入、 Bun(Zig製)ネイティブHTTPスタック が送信直前にハッシュ値へ置換
    • 公式バイナリのみが正規クライアントであることを証明
    • GrowthBookフラグや環境変数で無効化可能、バイパスは困難だが不可能ではない
  • APIコール無駄遣い防止の修正

    • autoCompact.ts で「3連続失敗で自動圧縮停止」により 1日25万件の無駄APIコール削減
  • 未公開モード「KAIROS」

    • /dreamスキル(夜間メモリ蒸留)
    • 日次ログ、GitHub Webhook、バックグラウンドワーカー、5分毎のcron実行
    • 本格的な自律型エージェント実装の足場

その他の注目点

  • エイプリルフール用コンパニオン機能
    • Tamagotchi風の生き物生成、レアリティやRPG風ステータス付き
  • ターミナル描画の最適化
    • Int32Arrayやビットマスク等、ゲームエンジン技術を応用
    • ストリーミング性能向上
  • bashコマンド実行時の23段階セキュリティチェック
    • Zsh特有の脅威モデル対応
  • プロンプトキャッシュの経済的最適化
    • 14種類のキャッシュ破壊要因を管理
    • トークン課金型サービスならではの設計思想
  • マルチエージェント協調モード
    • 協調アルゴリズム自体もプロンプト記述
    • 「弱い成果物は承認しない」等の方針をAIに指導
  • コードベースの課題
    • print.tsの巨大関数(3167行、12階層)
    • HTTPクライアントに脆弱なAxiosを使用
    • npm上でAxiosがマルウェア混入被害に遭うタイミングの悪さ

流出の本質的影響

  • Google Gemini CLIやOpenAI CodexのOSSとは異なり、Claude Codeは「内部実装」まで流出
  • 最大の損失は「プロダクト戦略やfeature flagの露見」
    • KAIROSやアンチ蒸留策など、競合が今後の動向を先読み可能
    • コード自体は書き換え可能だが、戦略的サプライズは戻らない
  • Bunのソースマップ処理バグ(oven-sh/bun#28001)が流出原因の可能性
    • Anthropic自身のツールチェーンが既知バグを抱えたまま本番運用
    • 皮肉な自社製品による事故

総括

  • Claude Codeの流出は単なるソース漏洩に留まらず、Anthropicの内部戦略・設計思想・実務的な苦労 まで露見
  • 競合他社への情報提供、エンジニアリングの現実、セキュリティとプロダクト運用の難しさ を浮き彫りにした事件

Hackerたちの意見

アンダーカバー・モードの部分がよくわからないんだけど、これってコミットでクラウドの帰属を無効にするのとどう違うの?(ついでにクラウドに人間っぽく振る舞うように指示することも選べるしね。)それにしても、この記事も明らかにAI生成っぽいし、著者がもうちょっと手直ししなかったのが残念だな。

みんな過剰反応してるだけだよ。目的はシンプルで、外部や公開されるコードを触るときに、コードネームやプロジェクト名、ファイル名などを漏らさないことなんだ。最新のクラウドコードを使ってメンテナンスしているからね。開発者がコミットを書くようにさせたいってのはちょっと変に感じるけど、デバッグ情報がコミットメッセージに出ないようにするためかもしれないね。

これらのコメントの中には、明らかにAIの手助けを受けたものもある。気づいちゃうのが嫌だな。

「アンダーカバー・モード」って名前と「『クラウドコード』というフレーズや、あなたがAIであることに言及すること」っていうのはちょっと不気味だけど、ソースを読んでみると、最初の反応として「これは人間のふりをするためのものだ」って感じにはならないかな。ファイルの内容は主にアンソロピックの内部情報、例えばコードネームを隠すことについてだから。結論を出すためにはソース自体を見てみることを勧めるよ。すごく短いからさ。

「私の最初の反応は『これは人間のふりをするためのものだ』って感じにはならないかな…」って言ったけど、「人間の開発者が書くようにコミットメッセージを書いて — コード変更が何をするかだけを説明する」っていうのは言ってたよね。

アンダーカバー・モードは、問題を検出したときにOSSに貢献する方法みたいだね。クラウド・ミソス・ギガブレイン・100000Bが問題を見つけたってことをうっかり漏らさないようにするための。

開発者がAIを使っているのを明らかにせずに仕事に使えるようにするのが目的だと思う。

これはダメ(絶対に書かない方がいい): - 「Claude Capybaraでテスト中に見つかったバグを修正」 - 「claude-opus-4-6に1発でやられた」 - 「Claude Codeで生成」 - 「Co-Authored-By: Claude Opus 4.6」 これが「アンダーカバー」の意図について理解できる理由だね。

コードネームを漏らさないのは一つのことだけど、AI生成だっていう信号を明示的に消すのは、かなり意味のある変化に感じるね。

coordinatorMode.tsのマルチエージェントコーディネーター・モードも見てみる価値があるよ。全体のオーケストレーションアルゴリズムはコードじゃなくてプロンプトなんだ。ランチェーンやラングラフはどうなったんだろうね!! だって、アンソロピック自身がそれを使ってなくてプロンプトを使ってるなら、ランチェーンの大騒ぎは何なんだろう。

まだ使ってもいないのに。

Langchainはモデルに依存しない構成のためのもの。Claude Codeは自分のモデルを持ち上げるためのインターフェースを一つだけ使ってるから、抽象化レイヤーは全く必要ない。Langgraphは状態グラフとしてのマルチエージェントのオーケストレーション用だけど、Claude Codeにはマルチエージェントのチェイニングがないから役に立たない。基本的に、需要に応じてサブエージェントを生成する単一のコーディネーターエージェントを使ってるから、状態グラフに制約するにはあまりにもダイナミックなんだ。

Hacker Newsで議論の続きを見る