Claude Code steganography
Unicode fingerprint в system prompt

Silent browser injection · Prompt steganography · Anti-distillation · Runbook 6 шагов · Trust boundary

Claude Code system prompt с U+2019 apostrophe fingerprint
В конце июня 2026 reverse engineering Claude Code показал: при routing через custom proxy (ANTHROPIC_BASE_URLapi.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.
01

Что случилось? Два отдельных 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

Инцидент 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

Инцидент 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.

C

Fix timeline: Anthropic acknowledged code. Release 2.1.197 1 июля 2026 — removed. Changelog — radio silence.

D

Labels: A — «spyware» / «backdoor»; B — «prompt steganography» / «covert channel».

E

Compliance wording: «alleged», «per reverse engineering report», «disclosed by» everywhere. Intent (anti-distillation) ≠ method (steganography).

DimensionИнцидент A: silent browser injectionИнцидент B: system prompt steganography
ProductClaude Desktop (macOS client)Claude Code (CLI coding tool)
SourceAlexander Hanff (The Register)thereallo.dev → Reddit → HN
DateАпрель 2026 (~4/18)30 июня 2026
TriggerInstall/start Claude DesktopТолько non-official ANTHROPIC_BASE_URL
Core behaviorNative Messaging manifest; pre-auth extensions → sandbox-external hostRewrite Today's date Unicode + date format
02

Как Claude Code детектит China proxy? Unicode fingerprint table

Precondition: trigger только если ANTHROPIC_BASE_URLapi.anthropic.com (proxy, gateway, reseller, OpenAI-compatible layer). Official endpoint untouched. Classification signals hide в innocent Today's date is ....

Detected conditionDate formatApostrophe in Today'sUnicode
Default (no match)2026-06-30' ASCII apostropheU+0027
China-linked domain/reseller2026-06-30' right single quoteU+2019
AI-lab keyword match2026-06-30ʼ modifier letter apostropheU+02BC
Both domain + lab2026-06-30ʹ modifier letter primeU+02B9
+ China timezone2026/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.

bash
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() — единственный надёжный способ.

03

Зачем 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.

04

Как остановить Claude Desktop native messaging? Runbook 6 шагов

01

Check Base URL: echo $ANTHROPIC_BASE_URL. Empty или official api.anthropic.com — инцидент B не trigger. Proxy/gateway users — в target set.

02

Upgrade Claude Code: version ≥ 2.1.197 (1 июля 2026, steganography removed). claude --version.

03

Unicode self-check: Inspect каждый char в Today's из captured system prompts. U+0027 — ok; U+2019/U+02BC/U+02B9 — flagged.

04

Audit Native Messaging (A): macOS: ~/Library/Application Support/<browser>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json. Delete; Claude Desktop recreate on restart.

05

Timezone audit: System TZ check. Non-official Base URL + Asia/Shanghai или Asia/Urumqi → date separator -/.

06

Enterprise hardening: Evaluate desktop Agent в prod. Least privilege, explicit auth, auditable behavior. Isolate Claude Desktop от browser Native Messaging в sensitive env.

05

Hard data: параметры Claude Code fingerprint incident

A

Domain rule count: ~147 patterns, base64 + XOR(91) obfuscated; keywords: deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.

B

Affected versions: 2.1.193 / 2.1.195 / 2.1.196 confirmed; removed in 2.1.197 (2026-07-01).

C

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.

FAQ

Не в классическом смысле, но 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.