Claude Code はリクエストにステガノグラフィの印を付けている
(thereallo.dev)- Claude Code 2.1.196 のバイナリには、システムプロンプト内の現在日付の文を変更して リクエスト内に分類シグナル を隠す関数が含まれている
- トリガーは
ANTHROPIC_BASE_URLで、公式のapi.anthropic.comではない、または値が設定されている場合、ホスト名とタイムゾーンを確認して アポストロフィと日付区切り文字 を変更する - ホスト名は base64 文字列を XOR キー
91でデコードしたドメイン・キーワード一覧と比較され、deepseek、zhipu、moonshot、baidu.com、bytedance.net、proxyai.comのような項目が含まれる - 公式 Anthropic API エンドポイントを使うか、
ANTHROPIC_BASE_URLがなければ早期リターンされ、通常のToday's date is 2026-06-30.形式が維持される - 悪意ある機能と断定はできないが、ファイルシステム・シェルへのアクセス権を持つ開発者ツールが 見えない Unicode 標識 で分類情報を隠すと、信頼は揺らぐ
日付文に埋め込まれるマーカー
- Claude Code のバイナリには、システムプロンプトに入る現在日付の文字列を変更する関数がある
- 基本の文は次の形式
Today's date is 2026-06-30.
- 変更されうる箇所は 2 つ
Today'sの アポストロフィ- 日付区切り文字:
-から/に変更
- 結果の文は見た目には普通の日付案内のように見えるが、生のリクエストには 隠れたマーカー が入る
- 平文に見える箇所へデータを隠す方式のため、プロンプト・ステガノグラフィ に当たる
ANTHROPIC_BASE_URL が有効にする条件付き経路
- トリガーは Claude Code の API ベース URL オーバーライドである
ANTHROPIC_BASE_URL ANTHROPIC_BASE_URLがなければ関数は早期リターンする- 値があってもホストが
api.anthropic.comなら同じ経路に入る - 早期リターンされない場合にのみ、次の条件を確認する
- システムのタイムゾーンが
Asia/ShanghaiまたはAsia/Urumqiか - API ベース URL のホスト名が、デコードされたドメイン一覧と一致するか、そのサブドメインか
- ホスト名に特定の AI 研究所キーワードが含まれるか
- システムのタイムゾーンが
日付とアポストロフィにエンコードされる情報
- タイムゾーンが
Asia/ShanghaiまたはAsia/Urumqiなら日付表記が変わる2026-06-30→2026/06/30
- ホスト名の分類結果に応じて
Today'sのアポストロフィが変わる- 一般:
' - 既知ドメイン:
\u2019 - 研究所キーワード:
\u02BC - 既知ドメインかつ研究所キーワードを含む:
\u02B9
- 一般:
- これらの Unicode 文字は、ほとんどの等幅フォントで 視覚的な差が非常に小さく、気付きにくい
隠されたドメイン・キーワード一覧
- ドメインとキーワードの一覧は base64 文字列として保存され、XOR キー
91でデコードされる - デコードされた研究所キーワード一覧は次のとおり
deepseekmoonshotminimaxxaminimzhipubigmodelbaichuanstepfun01aidashscopevolces
- デコードされたドメイン一覧はさらに大きく、中国企業のドメイン、AI 企業のドメイン、プロキシ・リセラー・ゲートウェイのドメインを含む
- 例として次の項目がある
cnbaidu.comalibaba-inc.comalipay.comantgroup-inc.cnbytedance.netkuaishou.comxiaohongshu.comjd.combilibili.coiflytek.comstepfun-inc.commoonshot.aianyrouter.topclaude-code-hub.appclaude-opus.topopenclaude.meproxyai.comyunwu.aizenmux.ai
- 全一覧は cc-domains.js で確認できる
システムコンテキストに入る位置
- 日付関数の結果は、エージェントコンテキストを構成する際に
currentDateの値として入る - 同じコンテキストには、条件によってユーザーのメールアドレスにひも付くプロジェクト情報も含まれうる
- したがって、このマーカーはモデルへ送信される システムコンテキスト の一部になる
- Anthropic のバックエンドがこの値をパースする可能性も残る
確認されたインストール環境
- 確認された Claude Code のインストールバイナリには Anthropic の署名が付いていた
Identifier=com.anthropic.claude-codeTeamIdentifier=Q6L2SF6YDWTimestamp=Jun 29, 2026SHA256=6fc6e61ab7582c2bf241225ff90d9f79e91d69380cb9589fc9dedd3a30070f5a
- 確認時点でシェルには
ANTHROPIC_BASE_URLが設定されておらず、タイムゾーンはAsia/Hong_Kongだった - この環境では通常のアポストロフィと
YYYY-MM-DDの日付文字列が生成される
影響を受けるユースケースと限界
- ほとんどのユーザーでは、この経路は無効のままになっている可能性が高い
- 公式 Anthropic API エンドポイントを使うか、
ANTHROPIC_BASE_URLがなければ、日付プロンプトは通常の形のまま維持される - 興味深いケースは、Claude Code を カスタム base URL にルーティングする場合
- 内部ゲートウェイ
- ローカルプロキシ
- モデルルーター
- リセラー
- 研究環境
- この場合、Claude Code はホスト名を分類し、その結果をプロンプトにエンコードする
- 回避方法は単純
- ホスト名の変更
- タイムゾーンの変更
- バイナリのパッチ
- プロセスのラッピング
- 深刻な攻撃者はこのシグナルを無効化できるため、奇妙だが正当な設定を使う一般開発者のほうが、より容易にフィンガープリント収集の対象になる
信頼を揺るがす実装方式
- Anthropic が API リセラー、承認されていない Claude Code ゲートウェイ、モデルの "distillation attack" パイプラインを検知しようとしている可能性はある
- カスタム
ANTHROPIC_BASE_URLが既知のリセラードメインを指していたり、ホスト名にdeepseek、zhipuが入っていたりすると、検知シグナルとして使われる可能性がある - 問題は実装方法
- システムプロンプトをひそかに変更する
- 一見普通の英語文に見える箇所へ、プロキシ・ゲートウェイ分類情報をエンコードする
- ドメイン一覧を XOR と base64 の背後に隠す
- コーディングエージェントはローカルマシン上でコード確認、コマンド実行、パッケージインストール、ファイル編集、コミットのプッシュまでできる
- カスタム API ゲートウェイを検知するなら、文書化された明示的なテレメトリフィールド、公開ポリシー、リリースノートのような方法も可能だ
- ファイルシステムとシェルへのアクセス権を持つツールが、見えないプロンプトの句読点に分類ビットを隠すなら、ほかのプライバシー保護の主張も信じにくくなる
1件のコメント
Hacker News の意見
サービス提供者が顧客のマシンに配布したツールが正確に何をしているのかを透明に公開していないことの重大性を矮小化する反応がある
事業上の必要があったからといって、正直に公開しなくてよいわけではない
正直に公開すると彼らの解決策が役に立たなくなる、というのも私の問題ではないし、むしろこれを問題ないと見ていたのなら、私のマシンから個人識別情報のような何かをほかにも収集しているのではないかと疑ってしまう
冷笑的に見ると、この件そのものへの判断というより、AI/Anthropic/米国などに対する感情がコメント欄の雰囲気に反映されているように感じる
これはそうした事実を明らかにするための当然の対抗手段に見える
価値判断はさておき、これをこんなに雑に実装したというのは少し驚きだ
リバースエンジニアリングで検出される可能性を下げつつ、同じ効果を出すことはできたように思う
この分野は Underhanded C Contest が生み出した「underhanded code」として知られている: https://www.underhanded-c.org
あまり知られていない「技芸」だが、理由は明らかだろう。こうした目的を達成するもっと賢い方法がある
明白な方法の一つはクライアントからサーバーへより多くを移すことで、もう一つは、もっと無害に見える形で、もっともらしく否認可能なクライアントコードを書くことだ
追加されたものの一部はクライアントでしか可能ではないが、一部は移せたし、クライアントが必要な部分ももっと微妙で、もっともらしく作れたはずだ
JSバンドルは非常によく調べられるので、いずれ発見されて報道されるとわかっていて、より隠密で欺瞞的にはしなかった可能性もあるが、それでも少し手抜きに見える
本気の大手AI研究所がモデルを蒸留するのを防ぐのは難しいだろうが、A) 手早く稼ごうとする粗雑なトークン再販業者を多く止められ、B) そうした大手研究所の誰かが回避策の導入を忘れて自ら露見することもあり得る
庭に鳥が多いのでプラスチックのフクロウを買うのに似ていると思う。フクロウは大半の鳥を追い払うが全部ではないので超音波装置を追加で買うとしても、フクロウを下ろす理由にはならない
防御層が一つではなく二重になるからだ
Anthropicのモデルが悪いからではなく、Claudeが毎日新しくて面倒なものを一つずつ壊しているように見えるので、CodexとOpenCodeのほうへさらに移りつつある
大規模言語モデルはトークン分布を利用して、もっともらしい散文のように読めるがペイロードとして復号されるステガノテキストを作れる¹
¹ https://github.com/hodgesmr/calgacus-mlx
Anthropicはこれをプロキシ再販業者に対する継続的な検出システムではなく、現時点でどこでどの文脈でプロキシ再販が行われているのかを把握するための、特定時点のサンプリングシステムとして実装したのかもしれない
いつかは見つかるだろうが、それまでの間、Anthropicは有用なスナップショットデータを得られる
このブログ記事の結論は少し過敏だ
このステガノグラフィの意図は非常に明確で、モデル蒸留をしている可能性のある中国企業の利用を識別しようとするものだ
これが何らかの形で「一般の開発者を罰する」というのは不明確だ
正当な理由には、Claude CodeがAnthropicに何を送っているのかを分析してデータ流出がないか検証すること、プロンプトの難易度に応じてモデルを動的に選んだり特定モデルを強制したりすること、プロジェクトに応じて複数のAnthropicアカウントを切り替えること、認証情報・個人識別情報・企業機密をフィルタリングすることなどがある
目的が常に手段を正当化するわけではない
今回被害があったかどうかにかかわらず、これは信頼と自律性の侵害だ
誰かが、少なくとも今のところは公敵第1号を検出して密告するためのコードだけが入っているとしても、こっそりルートキットをインストールしたなら、当然腹が立つだろう
Codex CLIはClaude Codeと違って自由なオープンソースソフトウェアなので、こういうことをする可能性はより低く、Claude CodeとClaude全般を避ける理由がまた一つ増えた
Codexについては、多くの目がこうした悪質な挙動を調べてくれることを望む
プライバシーポリシーや事業慣行にはかなり懐疑的だが、これが顧客である私にどんな不利益をもたらすのかが気になる
補助金が打ち切られる時点を遅らせる助けになるなら、むしろ顧客の立場では有利に見える
ただ、こうした詐欺的なプロキシが中国の研究所に追いつくのを助けるなら、長期的には、自分のハードウェア上で完全に制御できる高品質な個人用AIを持つうえで有利になるかもしれない
支持するという意味ではないが、そういうインセンティブがあることは認める
自由なオープンソースクライアントというのは、より多くの分析をサーバー側で隠して行うという意味でしかない
再現可能ビルドではないが、それでも本物のリポジトリから来たという出所保証は多少ある
「クライアントがカスタムAPIゲートウェイを検知したいなら、単にはっきりそう言えばいい。文書化された明示的なテレメトリフィールドを送り、ポリシーを見えるようにし、リリースノートにその挙動を書けばいい」という反応は、非常にナイーブに見える
クライアントがゲートウェイに明示的なテレメトリフィールドを送れば、悪質なゲートウェイはそのフィールドを通常のトラフィックに見えるよう、非常に簡単に削除したり変更したりできる
ステガノグラフィ的な猫とネズミのゲームに価値があるのは、使われているすべてのフィンガープリント機構をゲートウェイ側が継続的にリバースエンジニアリングするのがはるかに難しいからだ
もちろん、一部の悪質なゲートウェイは追いつき続けるだろうが、すべてが常にそうできるわけではない
中国の蒸留研究所でないなら、これは完全に問題のない事案だ
KYC回避サービスの国際市場は非常に発達しているからだ
AIツールだけでなく開発ツールもサンドボックス内で実行すべきだ
たとえばPythonやJavaScriptのパッケージリポジトリには何でも入れられるし、ウイルス対策会社との契約もなく、信頼できる市民による検証もないのだから、サンドボックスなしで実行してはいけない
どの国の匿名ユーザーでも何でもアップロードでき、何百万もの開発者がそれを自分のコンピューターで実行できることを考えてみてほしい
IDE、IDEプラグイン、LSPサーバー、AIプラグインもすべてサンドボックスに入れるべきだ
その大半はウイルス対策会社が検査しておらず、制限なしに実行してはいけない
さらに、どんなウイルス対策ソフトもコードの安全性を100%保証できないという定理はすでにある
興味深いことに、pipのドキュメントは「はじめに」の文書でサンドボックスやマルウェアの話題にまったく触れておらず、悪意ある個人・企業・国家が存在しない素晴らしい世界に住んでいるかのように見える
少なくともHNには、そんな幻想の中で生きている人がいないことを願う
IDE、LSP、AIツールを使いたいので、まず独自のサンドボックスシステムを書かなければならないが、Linuxは基本的なプリミティブしか提供していないため非常に時間がかかる
たとえばroot権限なしですべてのネットワークトラフィックを制御するには、ユーザー名前空間を作ってroot権限を得て、ネットワーク名前空間を作り、その名前空間内で実行され、データを外部の「監督者」プログラムへパイプする「トラフィック収集器」を書き、監督者プログラムが宛先へトラフィックをルーティングしなければならない
root権限なしでトラフィックを単にフィルタリングして検査するだけでも、Linuxはあまりにも多くの作業を要求する
ユーザー名やホスト名にも、いかなる情報も残してはいけない。この投稿が証明しているように、その情報はあなたに不利に使われることになる
Anthropicがすでにやってきたことを要約するとこうだ。政府が要求する何年も前から「全人類」の誤った側にいる人々をふるい落とし、モデルを恣意的な方法でダウングレードし、後で「申し訳ないが、特に申し訳ないとは思っていない」という態度で対応し、応答を密かに変えてユーザーに誤った結果を与えるよう積極的に妨害してきた
次には何を期待すべきなのか? 気に入らないユーザーのマシンを文鎮化するマルウェアか? 気に入らない人々をさらに広げることか?
Dario Amodeiの「全人類」のためのユートピア的な未来像がどのように展開するのか、すでに見えている気がする
この人たちが本気で超知能を作っていると信じている、という観点から見れば、すべて理解できる
AI安全派の圧倒的多数は、普通のHNの安楽椅子評論家よりも、この問題に人生と時間をはるかに多く注ぎ込んできており、中国が先に超知能へ到達するのを阻止しなければならず、超知能へのアクセスは検証済みの善良な行為者にのみ許可すべきで、この目標に失敗すれば人類が絶滅する競争だと見ている
「私たちは超知能を作っていると思っている」という言葉を嘘だと仮定しないなら、彼らのほぼすべての行動は理解できる
似たようなシステムプロンプト注入メカニズムをここで報告していた
https://news.ycombinator.com/item?id=48259288
https://github.com/anthropics/claude-code/issues/62061
予想どおり、こうしたものの新しく「創造的な」用途を見つけ続けているようだ
私は引き続きパッチで削除するつもりだ
システムプロンプトが「抽象化を避けろ。同じようなコード3行はヘルパー1つより良い」といった内容を仕込んでいるとは知らなかった
私は同意しない内容だ
CLAUDE.mdに指示を入れて、こうしたプロンプトを上書きする形で修正する方法はあるのか? システムプロンプト自体を直接変えることはできないだろうが、CLAUDE.mdが最終決定権を持つべきではないのか?
投稿者が強調したいプライバシー上の懸念がよく分からない
もちろん「こっそりした」ことをしていて見つかれば常に疑いを招くだろうが、逆にこうした「セキュリティ機能」がどう動くのかを公開してしまえば、実装する意味がない
それに私の考えでは、ステガノグラフィーは曖昧さに依存するセキュリティではない
RSAで秘密鍵を非公開に保つことが曖昧さに依存するセキュリティではないのと同じように、非公開であるべきものを非公開に保つことはセキュリティモデルの一部だ
だが、私のアクセスパターンを先に開示せずにフィンガープリンティングする形で実装した時点で台無しにしている
これは「こっそり」という程度ではなく、単に隠密で、不誠実で、良心に欠ける
今回の事例が無害だということも大した慰めにはならない。個人識別情報を収集していないと誰が保証するのか?
彼らの行動がビジネス上は理にかなっているということは、人々が欺瞞的で顧客に敵対的な判断を受け入れるべき理由にはならない
それとも、この仮定も理解できないのかとも思うが、実際には他人のプライバシーに関心がないように見える
「だからこの機能は主にフィンガープリンティングされやすい人、つまり奇妙だが合法的なことをしている一般の開発者を罰する」というが、ここでいう罰とは正確に何なのか?
特にそうした技術が存在し、Fableで本番利用すると公に述べていたことを考えるとなおさらだ