Claude Codeに数カ月前から組み込まれていた隠し識別子について、Anthropic側の削除方針が報じられた。狙いは、Claudeへの不正な代理アクセスや、Claudeの出力を大量に集めて他社モデルを訓練する「蒸留」への対策だった。仕組みがClaude Codeのシステムプロンプト内に目立たない記号として埋め込まれていたため、問題は不正利用対策の是非から、開発者ツールがどこまで黙って利用環境を分類してよいのかという論点へ移った。
The Registerによると、Claude CodeチームのThariq Shihipar氏は、この仕組みを3月に始めた実験だと説明した。目的は、無許可のリセラーによるアカウント濫用を防ぎ、蒸留からモデルを守ることだったという。同氏は、より強い対策がすでに入ったため、削除用のプルリクエストはマージ済みで、7月1日のClaude Codeリリースに含まれる見込みだと述べた。
AI企業がモデル出力の大量取得を警戒する理由と、開発者向けクライアントに隠れた信号を入れる危うさがここで衝突する。Claude Codeはチャット画面を越えて、リポジトリを読み、シェルを実行し、ファイルを書き換え、コミットやプルリクエストの作成まで扱う。こうしたツールで利用環境の分類が目立たない形でプロンプトへ混ぜ込まれると、通常のサーバー側不正検知よりも大きな説明責任が生じる。
識別子は日付文の句読点と区切り文字に埋め込まれた
発端は、Therealloという開発者が6月30日に公開した解析記事である。同氏はプライバシー上の理由からClaude Code 2.1.196を調べ、Claude Codeがサーバーへ送るシステムコンテキスト内の日付文を、利用環境に応じてわずかに変えていることを確認した。
通常の文は「Today's date is 2026-06-30.」のような単純な日付文である。解析によると、Claude Codeはこの文のアポストロフィを複数のUnicode文字へ置き換え、タイムゾーンがAsia/ShanghaiまたはAsia/Urumqiの場合は日付の区切りをハイフンからスラッシュへ変える。見た目はほぼ普通の日付文だが、未加工のリクエストには分類結果が残る。

起点になるのは、ANTHROPIC_BASE_URLである。Claude Codeの公式ドキュメントでは、この環境変数はAnthropic API互換のゲートウェイや内部プロキシ、LiteLLM、Kongなどを経由してモデルへ接続するための設定として説明されている。Therealloの解析では、この変数が未設定の場合、または公式のAnthropic APIエンドポイントを向いている場合、この経路は早期に終了する。通常の利用環境では日付文は変わらない。
ANTHROPIC_BASE_URLで別のホストが指定されている場合、Claude Codeはホスト名を取り出し、復号されたドメインリストとの一致、AIラボを示すキーワードの有無、タイムゾーンを確認する。キーワードにはdeepseek、moonshot、minimax、zhipu、bigmodel、baichuan、stepfun、01ai、dashscope、volcesなどが含まれていた。ドメインリストはBase64文字列をXORで復号する形で保存され、中国企業、AI企業、プロキシ、リセラー、ゲートウェイ関連のドメインを含んでいたという。
技術的には、利用経路の分類をプロンプト内に隠す処理である。コードや秘密情報を送る仕組みが確認されたわけではない。それでも、分類結果を明示的なテレメトリ欄やログではなく、見た目には普通の英文へ入れる設計は、開発者ツールの信頼に直結する。
背景にあるのはClaude出力の大規模な蒸留対策
Anthropicがこの種の検知を強める背景は、同社が2月に公表した蒸留攻撃の説明で確認できる。Anthropicは、DeepSeek、Moonshot、MiniMaxの3つのAIラボがClaudeから能力を抽出するため、約2万4,000件の不正アカウントを通じて1,600万回を超えるやり取りを生成したと主張した。
蒸留自体は、強いモデルの出力を使って小型モデルを訓練する一般的な手法であり、AI企業が自社モデルを軽量化する目的でも使われる。Anthropicが問題にしているのは、他社がプロキシや不正アカウントを使ってClaudeの出力を大量取得し、コストを負わずに能力を移植する使い方である。同社は、中国ではClaudeの商用アクセスを提供しておらず、中国企業の子会社にも提供していないと説明している。
Anthropicの説明では、こうしたラボは商用プロキシを通じてClaudeや他のフロンティアモデルへアクセスし、複数の不正アカウントを束ねた構造で検知を避ける。あるケースでは、1つのプロキシネットワークが2万件を超える不正アカウントを同時に管理し、蒸留用のトラフィックを通常の顧客リクエストに混ぜていたという。
同社は対策として、APIトラフィック上のパターンを検知する分類器、行動フィンガープリント、他社やクラウド事業者との情報共有、教育機関やスタートアップ向けアクセスの審査強化、モデル出力を蒸留に使いにくくするプロダクトやAPI上の対策を挙げていた。今回のClaude Code側の識別子も、こうした防御の一部として説明されている。
問題は検知ではなく、検知の置き場所だった
プロキシやリセラーの検知そのものは、不正利用対策として理解しやすい。ANTHROPIC_BASE_URLは、内部ゲートウェイやモデルルーター、リセラー経由の接続でも使われる。そこに中国AIラボ名や既知の代理アクセス網を示すホスト名が重なれば、Anthropicにとって調査すべき信号になる。
正当な開発者も同じ環境変数を使う。企業の内部プロキシ、ローカル検証、モデルルーター、研究用途では、公式API以外のURLを向ける構成が珍しくない。Therealloは、深刻な攻撃者ならホスト名やタイムゾーンを変える、バイナリを修正する、ラッパーを挟むといった方法で容易に回避できると指摘した。そうだとすれば、隠し識別子が強く作用する相手は、むしろ通常の開発者や研究者になりやすい。
Claude Codeの7月1日付近の公開リリースノートにも、ANTHROPIC_BASE_URLをめぐる設計変更の痕跡は見える。v2.1.196では、ANTHROPIC_BASE_URLが非Anthropicホストを指している場合にRemote Controlを無効化する変更が入った。v2.1.198では、サンドボックス化されたプロセスが同じネットワークホストへ繰り返しアクセスした際、バックグラウンドの分類器リクエストが過剰になる問題の修正が記載されている。リリースノートは隠し識別子の削除を明示していないため、削除の時期はShihipar氏の説明に依存する。
この境界が問題になるのは、クライアント側の挙動がユーザーの作業環境に近いからである。サーバー側で不正利用を検知する場合、ユーザーはAPIプロバイダーがアクセスログや利用パターンを見ていることをある程度想定できる。ローカルの開発者ツールが、環境変数やタイムゾーンをもとに分類結果をシステムプロンプトへ混ぜ込む場合、ユーザーが確認すべき対象はAPI利用規約からクライアント実装へ広がる。
透明な防御へ移れるか
Anthropicがモデル蒸留を警戒する流れは、米国政府のAI政策とも重なる。6月2日の大統領令14409は、先端AIモデルの安全な展開、AIによるサイバー防御、政府とAI開発企業の協力を掲げ、対象となるフロンティアモデルの高度なサイバー能力を評価する分類ベンチマークの整備にも触れている。この文書はClaude Codeの識別子を扱っていないが、フロンティアAIの能力管理が企業単独の課題から政策課題へ広がっていることを示している。
今回の削除方針は、Anthropicが蒸留対策をやめるという意味ではない。むしろ同社は、より強い対策が入ったため問題の実験を下げると説明している。残る焦点は、その新しい対策がどこで動き、どの情報を使い、ユーザーや企業管理者にどう開示されるのかである。
開発者向けAIエージェントは、便利さのために強い権限を持つ。だからこそ、不正利用対策も通常のプロダクト機能と同じように、説明できる形で置く必要がある。プロキシやリセラーを検知したいなら、明示的なテレメトリ項目、管理者向け設定、監査ログ、リリースノートで扱える。見えにくい句読点に分類結果を持たせる設計は、攻撃者を確実に止めるより先に、正当なユーザーの疑念を増やす。
Claude Codeの隠し識別子は、AI企業がモデルの盗用を防ぐためにどこまでクライアントへ手を伸ばすのかを示した。削除後に問われるのは、Anthropicが不正利用対策を弱めるかではなく、開発者が検証できる防御へ移れるかである。