Claude Code ステガノグラフィ事件: Anthropic はアポストロフィ1文字でユーザーをタグ付けしていた
結論:2026年6月末、開発者の逆解析報告によれば、Claude Code(Claude Web 版ではありません)が ANTHROPIC_BASE_URL を非公式プロキシに向けた場合、システムプロンプトの Today's date is... 行でテキストステガノグラフィを用い、日付区切り文字と肉眼では区別しにくい Unicode アポストロフィを切り替えて、「中国タイムゾーンか」「中国ドメイン/AI ラボに一致するか」などのビット情報をサーバーへ密かに返送していました。Anthropic は 2.1.197 で関連コードを削除済みです。おそらく反モデル蒸留/転売対策ですが、手法が隠蔽的かつ難読化されていた点が論争の中心です。
Claude Code 利用者、セキュリティエンジニア、企業 IT 意思決定者向けに、① 2026年4月の Claude Desktop ブラウザ注入と6月の Claude Code ステガノグラフィという2つの独立事件、② Unicode フィンガープリント表とトリガー条件、③ 6ステップの自己点検・HN コミュニティ論争・AI ベンダーの越境への対応姿勢を解説します。表現は「報道によると/逆解析報告/非難されている」原則に従い、目的(反蒸留)と手段(ステガノグラフィ)を分けて評価します。
01 2026年 Claude ステガノグラフィとブラウザ注入:何が起きたか
今回の騒動は実際には2つの独立事件が重なって拡大したものです。執筆前に区別しておく必要があります。混同すると HN / Reddit / セキュリティ界から即座に指摘され、E-E-A-T と信頼性を損ないます。
| 時期 | 事件 | 出典 |
|---|---|---|
| 2026-04(約4/18〜) | 事件 A:Claude Desktop がブラウザ Native Messaging マニフェストをサイレント書き込み | Alexander Hanff(The Register 寄稿者) |
| 2026-06-30 | 事件 B:Claude Code システムプロンプトステガノグラフィが逆解析で暴露 | thereallo.dev → Reddit → Hacker News |
| 2026-07-01 | Anthropic が Claude Code 2.1.197 をリリースしステガノグラフィコードを削除(changelog 未記載) | Tech Startups / Developers Digest 等 |
| HN 議論 | 数時間でフロントページ入り、350+ points、100+ コメント、コミュニティは二派に分裂 | Hacker News |
- 事件 A の問題点:Claude Desktop(macOS)インストール後、Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium へ
com.anthropic.claude_browser_extension.jsonを無告知で書き込み、3つの拡張 ID にサンドボックス外chrome-native-host呼び出しを事前承認。ブラウザ未インストールでもディレクトリを事前作成し、削除後も再起動で復活します。 - 事件 B の問題点:
ANTHROPIC_BASE_URL ≠ api.anthropic.comの場合のみ、システムプロンプトの日付行に隠しフィンガープリントを埋め込み。毎回の会話で必ず発動するわけではありません。 - 独立アドバイザー Noah Kenney(Digital 520) が Hanff の事件 A に関する技術的主張の再現性を確認。安天实验室(Antiy Labs) が Claude Desktop の高権限ブラウザチャネルリスク分析レポートを公開しました。
02 Claude Desktop 注入 vs Claude Code ステガノグラフィ:比較マトリクス
| 観点 | 事件 A:サイレントブラウザ注入 | 事件 B:システムプロンプトステガノグラフィ |
|---|---|---|
| 対象製品 | Claude Desktop(macOS クライアント) | Claude Code(CLI コーディングツール) |
| 告発者 | Alexander Hanff(プライバシーアドバイザー) | 開発者によるバイナリ逆解析、thereallo.dev で公開 |
| ラベル | "spyware" / "backdoor"(スパイウェア/バックドア) | "prompt steganography" / "covert channel"(プロンプトステガノグラフィ/隠れチャネル) |
| トリガー条件 | Claude Desktop のインストール/起動で即発動 | 非公式 Base URL(プロキシ/ゲートウェイ)設定時のみ |
| Anthropic の対応 | 公式声明なし。後続版で承認スイッチ追加、根本的権限モデルは未解消 | コード存在を認め、7/1 に 2.1.197 で削除、changelog 未記載 |
主流解釈:Anthropic の意図は未許可転売 + モデル蒸留(distillation)の検出であり、個人監視ではない。論争の焦点は手段(隠蔽、難読化、未開示)であり目的ではありません。
03 Claude Code ステガノグラフィの仕組み:Unicode アポストロフィ表
重要な前提:ANTHROPIC_BASE_URL を非公式アドレス(プロキシ、ゲートウェイ、第三者転売、OpenAI 互換レイヤー)に向けた場合のみ発動します。 公式 api.anthropic.com には手を加えません。逆解析者は 2.1.193 / 2.1.195 / 2.1.196 の3バージョンすべてで当該ロジックを確認しました。
発動後、プログラムは innocuous な Today's date is ... 行の中で2つのことを行います:
- 日付区切り文字の変更:システムタイムゾーンが
Asia/ShanghaiまたはAsia/Urumqiの場合、2026-06-30が2026/06/30になります。 - アポストロフィの置換:
Today's内の撇号を視覚的に同じだが Unicode が異なる文字に置き換え、「何に一致したか」をエンコードします。
| 検出状況 | 日付形式 | アポストロフィ文字 | Unicode |
|---|---|---|---|
| デフォルト(一致なし) | 2026-06-30 | ' 標準 ASCII 撇号 | U+0027 |
| 中国機関/ディーラードメイン一致 | 2026-06-30 | ' 右シングルクォート | U+2019 |
| 中国 AI ラボキーワード一致 | 2026-06-30 | ʼ 修飾子アポストロフィ | U+02BC |
| ドメイン + ラボ両方一致 | 2026-06-30 | ʹ 修飾子プライム | U+02B9 |
| 中国タイムゾーン叠加 | 2026/06/30 | (上記ルールと同じ) | — |
ドメインとキーワードリストは base64 + XOR(91) で軽度難読化され、約 147 件のドメインルール。キーワードには deepseek、moonshot、zhipu、minimax、baichuan、stepfun、01ai 等が含まれます。
要約:リクエストは表面上普通の英語プロンプトですが、バックエンドは日付区切り文字とアポストロフィの Unicode コードポイントを見るだけで、「海外 VPN 利用だが実際は中国タイムゾーン、さらに某中国 AI ラボの可能性」などをタグ付けできます。典型的な隠れチャネル(covert channel)とプロンプトステガノグラフィ(prompt steganography)です。
# システムプロンプト内 Today's アポストロフィの Unicode コードポイントを確認
python3 -c "
s = open('system_prompt.txt').read()
idx = s.find('Today')
if idx >= 0:
c = s[idx+5]
print(f'Char: {c!r} Codepoint: U+{ord(c):04X}')
"
# 公式エンドポイント期待値: U+0027。プロキシユーザーは U+2019 / U+02BC / U+02B9 の可能性
04 Anthropic の動機は?Claude Code はスパイウェアか
動機:反蒸留 + 未許可転売対策
コミュニティの主流判断(比較的抑制された見方):目的は反蒸留 + 未許可転売対策です。Anthropic、OpenAI、Google はいずれも、競合が API から大量出力を取得して小モデルを訓練することを公に懸念しています。中国関連プロキシ、転売、ラボが重点的な疑いの対象となり、このタグ付けロジックが追加されました。
目的は理解できるが、問題は手段:分類信号を肉眼では不可視にし、難読化して各リクエストに埋め込むことは、開発者の信頼に依存するツールとして信頼の赤線を踏みます。HN では二派に分かれ、一派は「正当な anti-distillation defense」、もう一派は「開発者ツールとしては malware-adjacent behavior に近い」と主張しています。
「スパイウェア」は感情的ラベル。より正確には:
- 事件 Aは「第三者ソフトウェアの無許可改変 + 休眠攻撃面の事前確保」に近い。たとえ現時点で悪用されていなくても、ブラウザサンドボックス外の高権限チャネルを事前に敷いた。Claude for Chrome が自ら開示したプロンプト注入成功率(緩和なし 23.6%、緩和あり 11.2%)と合わせ、リスクは現実的です。
- 事件 Bは「未開示の隠蔽テレメトリ / ユーザー分類」に近い。
"spyware" という語を使うかどうかに関わらず、核心問題は同じ:ユーザーの知情同意なく、意図的に隠蔽されていること。 本サイトが以前分析した Claude Fable 5 輸出規制、MCP プロトコル が示す「AI ベンダーとユーザーの信頼境界」と同根です。
HN コミュニティ二派の見解
- 防御派:合理的な anti-distillation defense。API の転売・蒸留を防ぐ。
- 批判派:malware-adjacent behavior for a dev tool。開発者ツールとしては悪意に近い。句読点に隠すのではなく公開説明とスイッチを提供すべき。
05 Claude Code ステガノグラフィの自己点検:6ステップ防御ガイド
- ANTHROPIC_BASE_URL の確認:シェルで
echo $ANTHROPIC_BASE_URLを実行。空またはapi.anthropic.comを指す場合、事件 B ロジックは発動しません。プロキシ/ゲートウェイ利用者は重点的に点検してください。 - Claude Code を 2.1.197 以上に更新:Anthropic は 2026-07-01 に当該バージョンでステガノグラフィコードを削除。
claude --versionでバージョンを確認してください。 - システムタイムゾーンの確認:
date +%Zとreadlink /etc/localtime(Linux)またはシステム環境設定(macOS)でAsia/Shanghai/Asia/Urumqiか確認。 - システムプロンプトの取得と分析:プロキシ環境でネットワークキャプチャまたはデバッグモードで prompt をエクスポートし、
Today'sアポストロフィの Unicode コードポイントが U+0027 以外でないか確認。 - Claude Desktop Native Messaging の点検(事件 A):macOS 各ブラウザの
~/Library/Application Support/<ブラウザ>/NativeMessagingHosts/でcom.anthropic.claude_browser_extension.jsonを検索・削除。Claude Desktop 再起動で再作成される可能性に注意。 - 企業/機密環境での最小権限分離:本番パイプラインで Desktop Agent を継続利用するか評価。あらゆる Desktop AI Agent を高権限プログラムとして扱い、明示的承認・監査可能・ネットワーク分離を実施。AI コーディングアシスタント比較で「テレメトリ透明性」を選定基準に含めてください。
06 引用可能な技術データと主要パラメータ
- ドメインルール数:約 147 件、base64 + XOR(91) 難読化、Claude Code バイナリ内に保存(逆解析報告)。
- 影響バージョン:2.1.193、2.1.195、2.1.196 にステガノグラフィロジック存在。2.1.197(2026-07-01)で削除。
- HN 議論の熱量:350+ points、100+ コメント、数時間でフロントページ。
- Claude for Chrome プロンプト注入成功率:緩和なし 23.6%、緩和あり 11.2%(Anthropic 自ら開示、事件 A リスク文脈関連)。
- トリガー条件:
ANTHROPIC_BASE_URL ≠ api.anthropic.comのみ。公式エンドポイントユーザーは事件 B の影響なし。 - Unicode コードポイント:U+0027(デフォルト)、U+2019(中国ドメイン)、U+02BC(AI ラボキーワード)、U+02B9(二重一致)。
権威ある出典:The Register(Claude Desktop 権限変更)、Malwarebytes / gHacks / YOOTA(Native Messaging 報道)、thereallo.dev(原典逆解析)、Tech Startups / TMC Insight / Developers Digest / TechTimes(2.1.197 修正)、安天实验室(Antiy Labs)リスク分析レポート。
07 Claude Code ステガノグラフィ FAQ
Q:Claude Code はスパイウェアですか?
A:従来型のスパイウェアではありませんが、逆解析報告によれば、システムプロンプト内に未開示・難読化されたフィンガープリントを隠し、プロキシ経由の中国関連ユーザーを分類していました。Anthropic は 2.1.197 で削除済みです。より正確には「未開示の隠れチャネル」です。
Q:Claude Code はタイムゾーンを検出しますか?
A:非公式 ANTHROPIC_BASE_URL 設定時のみ、Asia/Shanghai / Asia/Urumqi を確認し日付区切り文字を変更します。公式エンドポイントでは日付行に影響しません。
Q:Today's date アポストロフィ Unicode の原理は?
A:Today's 内のアポストロフィを U+0027、U+2019、U+02BC、U+02B9 の間で切り替え、エンドポイントが中国関連ドメイン、AI ラボキーワード、両方、またはいずれにも一致しないかをエンコードします。
Q:Anthropic がこれを追加した理由は?
A:コミュニティ主流解釈では、モデル蒸留と未許可 API 転売の検出が最も可能性が高い。正当な目標だが、実装は未開示かつ意図的に隠されていた。
Q:Claude Desktop「スパイウェア」事件と同じですか?
A:いいえ。2026年4月の Claude Desktop サイレント Native Messaging 書き込みは独立事件 A、2026年6月30日の Claude Code プロンプトステガノグラフィは事件 B です。
Q:通常の Claude Web 版ユーザーは影響を受けますか?
A:事件 B は Claude Code で非公式 Base URL 設定時のみ発動。通常の公式エンドポイントユーザーは影響しません。
Q:Claude Desktop 注入ブラウザファイルの削除方法は?
A:~/Library/Application Support/<ブラウザ>/NativeMessagingHosts/ で com.anthropic.claude_browser_extension.json を検索・削除。Claude Desktop 再起動で再作成される可能性あり。
Q:ANTHROPIC_BASE_URL フィンガープリントとは?
A:Base URL が非公式プロキシを指す場合、Claude Code はプロキシドメインとキーワードリストの一致結果に基づき、システムプロンプト日付行に異なる Unicode 文字を埋め込み、分類信号をサーバーへ返送します。
Q:今も心配すべきですか?
A:Claude Code 2.1.197 以上に更新し非公式プロキシを使わなければ事件 B は修正済み。事件 A の Native Messaging は後続版で承認スイッチ追加も根本未解消と報じられ、引き続き自己点検が必要です。
Q:Anthropic を信頼し続けるべきですか?
A:価値判断です。技術コミュニティの合意は、デフォルトで不信・証拠に基づく判断。再現可能・監査可能・オフにできるものだけが信頼に値し、ベンダーは隠すのではなく開示すべきです。
08 AI ベンダーの越境と私たちの対応:結語
今回の本当の警告は「1文字のアポストロフィ」ではなく、モデル能力が急加速する一方でセキュリティ境界、承認、監査が大幅に遅れているとき、ベンダーが「体験/乱用防止」を名目に、ユーザーと他ソフトウェアベンダー間の信頼境界を一方的に越えることです。PC、スマートフォン黎明期の歴史が、Desktop AI Agent 上でそのまま繰り返されています。
ユーザーと実務者としての対応:① デフォルトで不信、証拠に基づく判断。再現可能・監査可能・オフにできること。② 隠すのではなく開示を要求。反蒸留は堂々と行える。③ 最小権限 + 境界分離。④ 足で投票 + 制度的要因(GDPR/個人情報保護法)。技術に立場はなくても、企業には必要。能力が大きいほど自己規制が求められ、ユーザーがバイナリを逆解析して初めて知る秘密であるべきではない。
隔離環境で Claude Code、OpenClaw ゲートウェイ、自前 MCP Server を運用する本番チームにとって、純ローカル開発機には3つの現実的弱点があります:家庭用回線の不安定による SSH/API 長時間接続の切断、ノート PC 蓋閉じによる Agent タスクの中断、複数開発者共有環境での権限境界監査の困難。より安定し AI Agent 自動化に適した本番環境として、JEXCLOUD 多リージョンベアメタル Mac が最適解です。専有 Apple Silicon 算力、7×24 オンライン、月次弾性スケール、120 秒デリバリー。Claude Code をクラウド Mac で重いタスクを実行し、ローカルは対話のみ。独立ネットワークとタイムゾーン設定でコンプライアンス分離も可能。ノードと価格は JEXCLOUD 料金ページ をご覧ください。