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

クロードコードがリクエストにステガノグラフィックなマークを付けています

2026年7月1日原文(thereallo.dev)

概要

  • Claude Code バイナリに隠されたプロンプト改変機能の発見
  • APIゲートウェイ検出 を目的としたステガノグラフィの利用
  • 環境変数やタイムゾーン による挙動分岐
  • 隠されたドメイン・キーワードリスト の存在
  • 開発者ツールとしての 透明性と信頼性への懸念

Claude Codeのプロンプト改変機能とその目的

  • Claude Code バイナリ内部に、システムプロンプトへ挿入する日付文字列を 微妙に改変する関数 の存在
    • 通常例 :「Today's date is YYYY-MM-DD」
    • 改変例 :アポストロフィや日付区切り記号が 目立たないUnicode文字 に置き換わる
  • プロンプト・ステガノグラフィ (見た目は普通だが、内部的に意味を持つ文字列埋め込み技術)の採用
  • 改変条件
    • ANTHROPIC_BASE_URL (APIベースURL)のオーバーライド検出
    • タイムゾーン がAsia/ShanghaiやAsia/Urumqiの場合
    • ホスト名 が特定のドメインリストやAIラボ関連キーワードを含む場合
  • アポストロフィの変化例
    • 通常:'
    • 既知ドメイン:\u2019
    • ラボキーワード:\u02BC
    • 両方一致:\u02B9
  • 日付区切り記号の変化 :'-'→'/'
  • Unicode文字 の違いは モノスペースフォントではほとんど判別不可能

隠されたリストと判定ロジック

  • ドメインリスト・キーワードリストBase64+XOR(キー91) で難読化
    • AI企業、リセラー、プロキシ、ゲートウェイ 系ドメイン多数
    • ラボキーワード例 :deepseek, zhipu など
  • プロンプト生成時 にこの情報が モデルへのシステムコンテキスト として送信
  • Anthropic側で解析・判定 される仕組み

機能の意図と問題点

  • APIリセラーや無許可ゲートウェイ、モデル蒸留攻撃 対策が主目的
  • カスタムAPIエンドポイントプロキシ経由 利用時にのみ発動
  • バイパス も容易
    • ホスト名・タイムゾーン変更
    • バイナリパッチ
    • プロセスラッピング
  • 通常利用者 (公式エンドポイント利用・環境変数未設定)は通常のプロンプト
  • この機能の問題
    • 透明性の欠如 :ドキュメントやリリースノートで明示されていない
    • 隠し信号 による分類は 信頼性を損なう
    • 普通の開発者 が不当に識別・ペナルティを受けるリスク

開発者ツールの信頼性と今後のあり方

  • 開発者ツール明示的なポリシー表示ドキュメント化 が信頼の前提
  • ファイルシステムやシェルアクセス を持つツールは、特に 透明性 が重要
  • ステガノグラフィ的な隠蔽 は、 本来は明示的なテレメトリフィールドポリシー通知 で代替すべき
  • 信頼は「地味な部分」で築かれる べきであり、隠し機能は逆効果
  • APIプロバイダーや企業 は、 濫用検出やモデル保護 を正当な方法で実施すべき

まとめ

  • Claude Codeプロンプト内に不可視な分類情報 を埋め込むことで、特定の利用形態を識別
  • 技術的には悪意ある機能ではない が、 開発者コミュニティの信頼 を損なう設計
  • 明示的な告知と透明な運用 が、今後の開発者ツールには必須

Hackerたちの意見

これはすごく興味深いね。転売屋対策や蒸留は、確かに難しい問題だと思う。記事に書かれているテクニックが、結構高度なマルウェアが使う観察回避技術に似ているのが面白いけど、でもそれを打破するのは結構簡単だよね。

なんか皮肉なことに、コンテンツ所有者がボットのスクレイパーを正当なユーザーからフィルタリングしようとしているのと似た問題だね。

そう、これを打破するのは比較的簡単だけど、特に高度なプレイヤーにとってはね。でも、すべてのトリックを常に打破するのは難しい。お金を偽造する時に、すべてのトリックを打破するのが高くて難しくて不確実なのと似てる。例えば、チームがパッチを当てたバイナリを使っているとする。そしたらCCが更新して、新しいトリックのパッチを当てたバイナリが必要になる。そうなると、バイナリを分析してトリックに対処するチームが必要になるし、未パッチのコードは今やフィンガープリンティングされちゃう。もし研究者が新機能にアクセスするために自分でClaudeを更新したら、フィンガープリンティングされる。1つのフィンガープリンティング技術を打破するのは簡単だけど、すべての技術を常に打破するのは難しい。

「この機能は、奇妙だけど正当なことをしている普通の開発者を主に罰する」って、具体的にどんな罰があるの?

正当な使用でも、バンされる可能性が高くなるよね。

出力の汚染や、最終的にはアカウントのバンになるんじゃないかな、予想だけど。

たぶん、Fableで捕まった時と同じように、かなり簡略化されたモデルを使ってるんだろうね。それがあるから、正当な顧客としてはそれを使いたくない。どこか嫌がるゾーンに入っちゃうかもしれないから。

正直、Claudeのコードはかなりマルウェアっぽい感じがする。最初からそんな感じだったよね。

俺はボスからサブスクリプションをもらって、試してみるために1ヶ月間Claude Codeを使ったんだ。その1ヶ月で仕事のプロジェクトを終わらせて、個人的なハーネスを強化したから、もうAnthropic(みたいなトラブル)には関わりたくないね。

どのモデル使ってるの?バイナリ使ってないとしても、まだどこかのプロバイダーと関わってるんじゃない?

同意だわ。Claude Codeのおかげで、ローカルのLLM環境を整えるのが楽になった。家のことでは、今はローカルで委任できるようになった。ただ、オープンソース側のエージェントハーネスはもうちょっと改善が必要だね。

個人用のハーネスみたいなものって、どうやって作るんだろう?工具とかあるのかな、それともゼロから作る感じ?

Hacker Newsで議論の続きを見る