ANTHROPIC_BASE_URL ≠ api.anthropic.com) CLI тихо переписывает строку Today's date is... в system prompt. Swap визуально идентичных Unicode apostrophe и date separator кодирует China timezone + domain/lab match — textbook covert channel. Anthropic выпилил код в 2.1.197. Разбор для dev и compliance: ① инцидент A (Desktop browser injection) vs B (Code steganography); ② полная Unicode mapping table; ③ anti-distillation motive и HN flame war; ④ protection runbook на 6 шагов; ⑤ hard data и stance по AI vendor trust boundaries.
Что случилось? Два отдельных Claude-инцидента
TL;DR: хайп сложился из двух независимых story. Инцидент A (апрель 2026): Claude Desktop silently пишет browser Native Messaging manifests. Инцидент B (30 июня 2026): Claude Code прячет Unicode fingerprints в system prompts. B триггерится только при non-official Base URL — не на каждом request.
Инцидент A (апрель 2026, Alexander Hanff disclosure): Install Claude Desktop на macOS allegedly пишет com.anthropic.claude_browser_extension.json в Chrome, Edge, Brave, Arc, Vivaldi, Opera — pre-auth 3 extension ID вызывают chrome-native-host вне browser sandbox. Directories создаются даже без установленного browser; delete откатывается на restart. Noah Kenney (Digital 520) подтвердил claims Hanff; Antiy Labs выпустили risk analysis. Anthropic formally не ответил; позже добавили auth toggle, permission model остался.
Инцидент B (30 июня 2026, thereallo.dev RE): При ANTHROPIC_BASE_URL ≠ api.anthropic.com строка Today's date is... rewrite через date separator + Unicode apostrophe swap. Versions 2.1.193, 2.1.195, 2.1.196 — logic на месте по RE. HN thread: front page за часы — 350+ points, 100+ comments.
Fix timeline: Anthropic acknowledged code. Release 2.1.197 1 июля 2026 — removed. Changelog — radio silence.
Labels: A — «spyware» / «backdoor»; B — «prompt steganography» / «covert channel».
Compliance wording: «alleged», «per reverse engineering report», «disclosed by» everywhere. Intent (anti-distillation) ≠ method (steganography).
| Dimension | Инцидент A: silent browser injection | Инцидент B: system prompt steganography |
|---|---|---|
| Product | Claude Desktop (macOS client) | Claude Code (CLI coding tool) |
| Source | Alexander Hanff (The Register) | thereallo.dev → Reddit → HN |
| Date | Апрель 2026 (~4/18) | 30 июня 2026 |
| Trigger | Install/start Claude Desktop | Только non-official ANTHROPIC_BASE_URL |
| Core behavior | Native Messaging manifest; pre-auth extensions → sandbox-external host | Rewrite Today's date Unicode + date format |
Как Claude Code детектит China proxy? Unicode fingerprint table
Precondition: trigger только если ANTHROPIC_BASE_URL ≠ api.anthropic.com (proxy, gateway, reseller, OpenAI-compatible layer). Official endpoint untouched. Classification signals hide в innocent Today's date is ....
| Detected condition | Date format | Apostrophe in Today's | Unicode |
|---|---|---|---|
| Default (no match) | 2026-06-30 | ' ASCII apostrophe | U+0027 |
| China-linked domain/reseller | 2026-06-30 | ' right single quote | U+2019 |
| AI-lab keyword match | 2026-06-30 | ʼ modifier letter apostrophe | U+02BC |
| Both domain + lab | 2026-06-30 | ʹ modifier letter prime | U+02B9 |
| + China timezone | 2026/06/30 (/ separator) | (same rules) | — |
China timezones: Asia/Shanghai или Asia/Urumqi. Domain/keyword lists — base64 + XOR (key 91) obfuscation, ~147 domain patterns: deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai. Human видит обычный prompt; backend Anthropic по одному code point apostrophe: VPN user, China TZ, maybe Chinese AI lab. Textbook covert channel.
echo $ANTHROPIC_BASE_URL python3 -c "s=\"Today's\"; print([hex(ord(c)) for c in s if c in \"''ʼʹ\"])" grep -r "com.anthropic.claude_browser_extension" ~/Library/Application\ Support/*/NativeMessagingHosts/ 2>/dev/null
Tip: U+0027 и U+2019 выглядят одинаково в большинстве terminals. Hex dump или Python ord() — единственный надёжный способ.
Зачем Anthropic это сделал? Claude Code — spyware?
Community consensus (сдержанный): почти наверняка anti-distillation + anti-unauthorized reselling. Anthropic, OpenAI, Google публично парятся про competitors, harvesting API output для smaller models. China resellers, proxies, labs — prime suspects. Intent defensible; method — нет. Invisible punctuation, obfuscated binary, shipped on every request — в dev tool на trust — это over the line.
На HN thread split: «reasonable anti-distillation defense» vs «malware-adjacent behavior for a dev tool».
«Spyware» — loaded term. Точнее: инцидент A — unauthorized tampering + dormant pre-positioned attack surface вне browser sandbox. Anthropic numbers: Claude for Chrome prompt-injection 23.6% unmitigated / 11.2% mitigated. Инцидент B — undisclosed telemetry / covert user classification. Label не важен: no informed consent, deliberately hidden.
Как остановить Claude Desktop native messaging? Runbook 6 шагов
Check Base URL: echo $ANTHROPIC_BASE_URL. Empty или official api.anthropic.com — инцидент B не trigger. Proxy/gateway users — в target set.
Upgrade Claude Code: version ≥ 2.1.197 (1 июля 2026, steganography removed). claude --version.
Unicode self-check: Inspect каждый char в Today's из captured system prompts. U+0027 — ok; U+2019/U+02BC/U+02B9 — flagged.
Audit Native Messaging (A): macOS: ~/Library/Application Support/<browser>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json. Delete; Claude Desktop recreate on restart.
Timezone audit: System TZ check. Non-official Base URL + Asia/Shanghai или Asia/Urumqi → date separator - → /.
Enterprise hardening: Evaluate desktop Agent в prod. Least privilege, explicit auth, auditable behavior. Isolate Claude Desktop от browser Native Messaging в sensitive env.
Hard data: параметры Claude Code fingerprint incident
Domain rule count: ~147 patterns, base64 + XOR(91) obfuscated; keywords: deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.
Affected versions: 2.1.193 / 2.1.195 / 2.1.196 confirmed; removed in 2.1.197 (2026-07-01).
HN community heat: Front page за hours — 350+ points, 100+ comments. Claude for Chrome prompt-injection: 23.6% unmitigated / 11.2% mitigated (Anthropic-disclosed, контекст инцидента A).
Note: Урок не про «apostrophe». Когда model capability race ahead, а security boundaries и auditability lag — vendors cross trust lines под видом UX или abuse prevention. Default: distrust; demand disclosure; enforce least privilege.
Teams на Claude Code для iOS CI/CD и AI Agent automation на local Macs — permission sprawl + covert telemetry risk; shared VM isolation слабее dedicated bare metal. Для stable, auditable, 24/7 Apple Silicon prod — MESHLAUNCH Mac Mini cloud rental обычно better choice: dedicated M4/M4 Pro, daily/weekly/monthly billing, physical isolation от Claude Desktop high-privilege local channels.
Sources: The Register (Claude Desktop permissions, 2026-04); Malwarebytes / gHacks / YOOTA; thereallo.dev (original RE); Tech Startups / TMC Insight / Developers Digest / TechTimes (2.1.197 fix); Antiy Labs risk analysis.
Не в классическом смысле, но per RE report — undisclosed obfuscated fingerprint для маркировки China-proxy юзеров. Removed в 2.1.197. Точнее: undisclosed covert channel.
Проверял Asia/Shanghai и Asia/Urumqi только с non-default ANTHROPIC_BASE_URL. Official endpoint users — unaffected.
Apostrophe в Today's swap между U+0027, U+2019, U+02BC, U+02B9 — encode domain, lab keywords, both или neither. Mapping table выше.
Нет. Апрель 2026 Claude Desktop Native Messaging — инцидент A. 30 июня Claude Code prompt steganography — инцидент B, другой product и trigger.
Скорее всего anti-distillation + unauthorized reselling detection. Controversy — hidden obfuscated method. Isolated deploy options на странице цен.
Инцидент B только в Claude Code с non-official ANTHROPIC_BASE_URL. Standard web users на official endpoint — ok.
Delete com.anthropic.claude_browser_extension.json в ~/Library/Application Support/<browser>/NativeMessagingHosts/. Claude Desktop may recreate. Смотри центр помощи.
Anthropic acknowledged и removed в 2.1.197 1 июля 2026. Changelog молчал. Upgrade immediately, verify version.