ホーム / ブログ / Claude ステガノグラフィ
ENGINEERING BLOG · 2026.07.03

Claude Code ステガノグラフィ事件:
Anthropic の見えない Unicode フィンガープリント

Claude Code を利用している、またはプロキシ経由で Anthropic API に接続している開発者で、「Claude がこっそり追跡しているのでは」と不安を感じている方へ——結論から言えば、2026 年 6 月末のリバースエンジニアリング報告によると、非公式の ANTHROPIC_BASE_URL が設定されている場合、Claude Code はシステムプロンプト内の Today's date is... 行をテキストステガノグラフィで書き換え、肉眼では区別できない Unicode 単一引用符と日付区切り文字を通じて、タイムゾーンおよび中国関連ドメイン/AI ラボ情報を各リクエストに静かにエンコードしていました。Anthropic は 2.1.197 で関連コードを削除済みです。おそらく反モデル蒸留(anti-distillation)目的ですが、手法が極めて隠蔽的で、意図的に難読化されている点が論争の焦点です——2026 年 4 月の Claude Desktop によるブラウザへのサイレント注入事件とは、別事件として理解する必要があります。

01

今回の騒動は、実は2 つの独立した事件が重なって拡大したものです。混同して語ると HN/Reddit/セキュリティコミュニティの読者に見抜かれ、E-E-A-T を損ないます。公開前に必ず区別してください:

事件 A(サイレントブラウザ注入)vs 事件 B(システムプロンプト・ステガノグラフィ)
次元 事件 A:サイレントブラウザ注入 事件 B:システムプロンプト・ステガノグラフィ
対象製品 Claude Desktop(macOS クライアント) Claude Code(CLI コーディングツール)
情報源 Alexander Hanff(プライバシーアドバイザー、The Register 寄稿者) 開発者によるバイナリ RE、thereallo.dev で公開、Reddit → HN 経由で拡散
時期 2026 年 4 月(4/18 頃から) 2026 年 6 月 30 日
核心行為 Chrome/Edge/Brave/Arc 等に Native Messaging マニフェスト com.anthropic.claude_browser_extension.json をサイレント書き込み、3 つの拡張機能 ID にサンドボックス外 chrome-native-host 呼び出しを事前承認;ブラウザ未インストールでもディレクトリを事前作成、削除後の再起動で復活 ANTHROPIC_BASE_URL ≠ api.anthropic.com の場合、システムプロンプトの Today's date is... 行をステガノグラフィで書き換え
付けられたレッテル "spyware"/"backdoor"(スパイウェア/バックドア) "prompt steganography"/"covert channel"(プロンプト隠蔽/秘密チャネル)
トリガー条件 Claude Desktop のインストール/起動で即発動 非公式 Base URL(プロキシ)設定時のみ;毎回の会話で必ず発動するわけではない
Anthropic の対応 正式な公開声明なし;後続バージョンで承認スイッチ追加、基盤権限モデルは根絶されていない コード存在を認め、7/1 に 2.1.197 で削除、changelog には未記載
  • 事件 A の再現と裏付け:独立コンサルタント Noah Kenney(Digital 520)が Hanff の技術的主張の再現性を確認;安天ラボ(Antiy Labs)が専門リスク分析レポートを公開しました。
  • 事件 B のバージョンカバレッジ:RE 実施者が 2.1.193/2.1.195/2.1.196 の 3 バージョンすべてでステガノグラフィロジックを確認;HN スレッドは数時間でフロントページに到達、350+ points、100+ コメント。
  • 開発者の信頼危機:デスクトップ AI Agent と CLI コーディングツールがシステムレベル権限を得る中、知情同意なしかつ意図的に隠蔽された行為は、目的如何にかかわらず開発者ツールの信頼レッドラインを踏みます。
  • モデル選定との関連:Anthropic はOpenRouter 6 月ランキングでも重要なシェアを維持していますが、「API の使いやすさ」と「ツールの信頼性」は別次元の問題です。

注意:本文は「報道によると/RE 報告によると/ alleged(疑惑)」の表現を用いています。Anthropic の反蒸留目的手段は分けて評価すべきです——目的は理解可能でも、手段こそが論争の焦点です。

02

重要な前提:ANTHROPIC_BASE_URL を非公式アドレス(プロキシ、ゲートウェイ、第三者リセール、OpenAI 互換レイヤー)に向けた場合のみ発動します。公式 api.anthropic.com では手を加えません。通常の Claude Web 版ユーザーは事件 B の影響を受けません。

発動後、プログラムは 2 つの処理を行い、いずれも無害に見える Today's date is ... 行に隠されています:

  1. 日付区切り文字の変更:システムタイムゾーンが Asia/Shanghai または Asia/Urumqi の場合、2026-06-302026/06/30 に変わります。
  2. 単一引用符の置換:Today's 内のアポストロフィを、見た目は同じだが Unicode が異なる文字に差し替え、「何にヒットしたか」をエンコードします。
Claude Code システムプロンプト Unicode フィンガープリントマッピング(thereallo.dev RE 報告に基づく)
検出条件 日付形式 単一引用符文字 Unicode
デフォルト(ドメインリスト外、AI ラボ非該当) 2026-06-30 ' 標準 ASCII アポストロフィ U+0027
中国機関/ディーラードメインにヒット 2026-06-30 ' 右シングルクォート U+2019
AI ラボキーワードにヒット(deepseek/moonshot/zhipu/minimax/baichuan/stepfun/01ai 等) 2026-06-30 ʼ 修飾レター・アポストロフィ U+02BC
ドメインとラボの両方にヒット 2026-06-30 ʹ 修飾レター・プライム U+02B9
中国タイムゾーン重ね合わせ(Asia/Shanghai/Asia/Urumqi) 2026/06/30 (単一引用符ルールは上記と同じ)

要約すると:リクエストは表面上ただの英語プロンプトですが、バックエンドは日付区切り文字とそのアポストロフィの Unicode コードポイントを見るだけで、「このユーザーは海外 VPN を使っているが実際は中国タイムゾーン、さらに某中国 AI ラボの疑いがある」とタグ付けできます。ドメインとキーワードリストは base64 + XOR(91) で軽度に難読化され、約 147 件のドメインルールがあります。典型的な秘密チャネル(covert channel)およびテキストステガノグラフィ(prompt steganography)です。

check-apostrophe.sh
# Today's 内アポストロフィの Unicode コードポイントを確認(例)
echo "Today's date is 2026-06-30" | xxd | grep -A1 "Today"

# U+0027 以外のバイト列はフィンガープリント化の可能性
python3 -c "s=\"Today\u2019s\"; print([hex(ord(c)) for c in s if c in \"'\u2019\u02bc\u02b9\"])"

03

コミュニティの主流見解(比較的抑制的)は、目的は反蒸留 + 無許可リセール対策です。Anthropic、OpenAI、Google はいずれも、競合が API から大量出力を取得して小モデルを訓練する(model distillation)リスクを公言しています。中国関連のプロキシ、リセール、ラボが重点的な疑いの対象となり、この「タグ付け」ロジックが追加されました。

目的は理解できても、手段が問題です:分類シグナルを肉眼では識別不能にし、さらに難読化したコードとして各リクエストに埋め込む行為は、開発者の信頼で成り立つツールにとって信頼レッドラインを踏みます。HN では二派に分かれて激論が交わされました:

  • 「合理的な反蒸留防御」:API のリセールと蒸留は現実的な脅威であり、ベンダーにはモデル保護の権利がある。
  • 「開発者ツールに対してほぼ悪意ある行為」:隠蔽、難読化、非開示——ユーザーはバイナリ RE しないと発見できない。デフォルト動作であるべきではない。

「スパイウェア」は感情的なラベルです。より正確な表現は次のとおりです:

  • 事件 A は「無許可の第三者ソフト改変 + 休眠攻撃面の予約」に近い——現時点で悪用されていなくても、ブラウザサンドボックス外の高権限チャネルを事前に敷いています。Claude for Chrome が自ら公開したプロンプトインジェクション成功率(緩和なし 23.6%、緩和あり 11.2%)と合わせると、リスクは現実的です。
  • 事件 B は「未開示の隠蔽テレメトリ/ユーザー分類」に近い——従来意味の情報窃取型トロイではなく、未開示の covert channel です。

"spyware" という語を使うかどうかにかかわらず、核心は同じです:ユーザーの知情同意なし、かつ意図的に隠蔽されている。

04

  1. ANTHROPIC_BASE_URL を確認:shell 設定または .envecho $ANTHROPIC_BASE_URL を実行します。空または api.anthropic.com を指していれば事件 B のロジックは発動しません;プロキシ経由のユーザーは重点確認が必要です。
  2. Claude Code を 2.1.197+ にアップグレード:Anthropic は 2026 年 7 月 1 日にこのバージョンでステガノグラフィコードを削除しました(changelog 未記載、実際のバイナリで確認してください)。
  3. macOS ブラウザ Native Messaging マニフェストを確認(事件 A):各ブラウザディレクトリで ~/Library/Application Support/<ブラウザ>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json を検索します。Chrome、Edge、Brave、Arc、Vivaldi、Opera、Chromium に対応。
  4. 必要に応じて削除し復活を監視:上記 JSON を手動削除後、Claude Desktop を再起動し再作成されるか観察します。後続バージョンで承認スイッチは追加されましたが、基盤権限モデルは reportedly 根絶されていません。
  5. システムタイムゾーンとフィンガープリント残留を検証:Asia/ShanghaiAsia/Urumqi タイムゾーンが日付区切り文字に影響するか確認します;旧版 Claude Code 使用時は 16 進ツールでシステムプロンプト内アポストロフィのコードポイントを確認できます。
  6. 企業/機密環境での最小権限評価:Claude Desktop/Claude Code を高権限プログラムとして扱い——明示的承認、ネットワーク分離、監査可能なログが最低ラインです;本番パイプラインでのデスクトップ Agent 継続利用を評価してください。
  7. 公式・コミュニティの動向をフォロー:Anthropic changelog とセキュリティ公告を購読;第三者 API リセラーには Base URL ルーティングとコンプライアンス声明の開示を要求してください。

05

引用可能なハードデータ(公開 RE とコミュニティ議論に基づく、公開前に再確認を推奨):

  • ドメインルール規模:base64 + XOR(91) 難読化、約 147 件のドメイン/キーワードルール
  • 影響を受けたバージョン:2.1.193/2.1.195/2.1.196 すべてに存在;2.1.197 で削除
  • HN の熱量:スレッドが数時間でフロントページ到達、350+ points100+ コメント、コミュニティは明確に分裂
  • Claude for Chrome プロンプトインジェクション:緩和なし成功率 23.6%、緩和あり 11.2%(Anthropic 自ら公開したデータ、事件 A の攻撃面に関連)
  • Native Messaging 事前承認:3 つの拡張機能 ID がサンドボックス外 chrome-native-host を呼び出し可能、ユーザーがブラウザをインストールしていなくてもディレクトリを事前作成
Claude Code はスパイウェアですか?

従来意味のスパイウェアではありませんが、システムプロンプト内に未開示・難読化されたフィンガープリントを隠し、プロキシ経由の中国関連ユーザーをタグ付けしていました;Anthropic は 2.1.197 で削除済みです。より正確には「未開示の秘密チャネル」であり、情報窃取型トロイではありません。

Claude Code はタイムゾーンを検出しますか?

RE 報告によると Asia/ShanghaiAsia/Urumqi をチェックします——ただし非デフォルトの ANTHROPIC_BASE_URL を使用した場合に限ります。公式エンドポイント使用時、日付行は変更されません。

Today's date 単一引用符 Unicode trick とは?

Today's 内のアポストロフィが U+0027、U+2019、U+02BC、U+02B9 の間で切り替わり、エンドポイントが中国関連ドメイン、AI ラボキーワード、両方、またはいずれにも該当しないかをエンコードします。

Anthropic はなぜこれを追加したのですか?

主流解釈はモデル蒸留(distillation)と無許可 API リセールの検出——正当な目標ですが、実装が未開示かつ意図的に隠されており、信頼危機を引き起こしました。

Claude Desktop「スパイウェア」事件と同じことですか?

いいえ。2026 年 4 月の独立事件で、Claude Desktop がブラウザ Native Messaging マニフェストをサイレント書き込みした件です。Alexander Hanff が The Register に開示しました。

通常の Claude Web 版ユーザーは影響を受けますか?

事件 B は Claude Code かつ非公式 ANTHROPIC_BASE_URL 設定時のみ発動します。公式エンドポイントユーザーはこのロジックの影響を受けません。

Claude Desktop が注入したブラウザファイルの削除方法は?

~/Library/Application Support/<ブラウザ>/NativeMessagingHosts/ 下の com.anthropic.claude_browser_extension.json を削除します。Claude Desktop 再起動で再作成される可能性に注意してください。

Should you trust Anthropic after this?

信頼は再現可能・監査可能・オフ可能な行為に基づくべきです——「バイナリ RE しないと分からない秘密」ではありません。ベンダーは反蒸留を公開し、ユーザーにスイッチを提供することも可能です。

この事件の本当の警告は「1 つのアポストロフィ」ではなく、モデル能力が急激に向上する一方でセキュリティ境界・承認・監査が大幅に遅れている状況にあります。ベンダーは「UX/悪用防止」を名目に、ユーザーと他ソフトウェアベンダー間の信頼境界を一方的に越えやすくなっています。実践的な対応は次のとおりです:

  • デフォルト不信、証拠で判断:再現可能・監査可能・オフ可能——これが信頼の条件です。
  • 「隠すのではなく開示を」:反蒸留は公然と行える——公開説明とスイッチ提供があり、句読点に隠すべきではありません。
  • 最小権限 + 境界分離:あらゆるデスクトップ Agent を高権限プログラムとして扱います。
  • 足で投票 + 制度による制約:GDPR/個人情報保護法と市場選択が、「技術の無境界性」を抑える最終手段です。

技術に立場はなくても、企業には立場が必要です。能力が大きいほど自己規制が求められる——それはユーザーがバイナリ RE して初めて分かる秘密であるべきではありません。

原始 RE と権威ある報道(リンクを再確認してください):

thereallo.dev:Claude Code Prompt Steganography(原始 RE)

The Register:Claude Desktop changes software permissions without consent

第三者分析とセキュリティ研究:

Malwarebytes:Claude Desktop Native Messaging 報道

安天ラボ:Claude Desktop 高権限ブラウザチャネルリスク分析

Hacker News:Claude Code steganography 議論スレッド

AI コーディング Agent を 7×24 で監査可能・分離可能な本番環境で稼働させる必要がある場合、共有 VM 上の Hypervisor オーバーヘッドと制御不能なシステムレベル注入は、どれほど強力なモデルでもコンプライアンスと安定性の二重リスクをもたらします。ゼロオーバーヘッドのネイティブ算力、安定した iOS CI/CD、AI Agent の 7×24 自動化が必要な本番環境では、ZUKCLOUD のベアメタル Mac mini クラウドノードが通常より優れた選択です:Apple Silicon 物理マシン専有、Hypervisor オーバーヘッドなし、7×24 オンライン、日/週/月の柔軟な契約。ベアメタルアーキテクチャ宣言では UMA ゼロコピーと MDM オーケストレーションの観点から、Agent を完全に掌握できる物理境界内で稼働させることが、「ブラックボックス型デスクトップツールの権限逸脱」に対抗する最も実務的なエンジニアリング選択の一つであると論証しています。