2026 CLAUDE
CODE_
СКРЫТЫЙ_
UNICODE.

Системный промпт Claude Code с U+2019 apostrophe fingerprint

TL;DR: В конце июня 2026 разработчик при reverse-engineering Claude Code (не web-приложения Claude) обнаружил: при маршрутизации через custom proxy (ANTHROPIC_BASE_URLapi.anthropic.com) клиент тихо переписывает строку Today's date is... в system prompt. Меняя date separator и подменяя apostrophe на визуально идентичные, но разные Unicode code points, бинарь кодирует China timezone и match endpoint'а на China-linked domains или AI-lab keywords. Anthropic вырезал код в 2.1.197. Вероятная цель — anti-distillation; проблема в методе: невидимо, обфусцировано, не раскрыто. В этом разборе — два инцидента, Unicode mapping table, HN-деbate, 5-step checklist, FAQ. Для macOS-разработчиков: это dev-tool с filesystem + shell access на bare-metal Apple Silicon — изоляция через remote Mac node с Metal-native toolchain снижает blast radius.

1. Два инцидента — не смешивать

История взорвалась как два связанных, но разных инцидента. Смешаете — получите downvote на HN и потеряете E-E-A-T. Разделяйте до публикации:

ИзмерениеИнцидент A: тихая browser-инъекцияИнцидент B: steganography system prompt
ПродуктClaude Desktop (macOS client)Claude Code (CLI coding tool)
DiscloserAlexander Hanff (privacy consultant, The Register)Reverse-engineering бинаря, опубликовано на thereallo.dev, Reddit → HN
TimelineАпрель 2026 (~18.04+)30 июня 2026
ПоведениеТихо пишет com.anthropic.claude_browser_extension.json в Chrome/Edge/Brave/Arc и др.; pre-authorize 3 extension IDs для chrome-native-host вне browser sandbox; создаёт dirs даже для неустановленных браузеров; регенерирует после удаленияПри неофициальном ANTHROPIC_BASE_URL переписывает Today's date is... через steganography
Метки«spyware» / «backdoor»«prompt steganography» / «covert channel»
TriggerInstall/start Claude DesktopТолько при non-official Base URL; не каждый request
Ответ AnthropicБез формального public response; позже consent toggleКод подтверждён; удалён в 2.1.197 01.07, changelog молчит

Независимый консультант Noah Kenney (Digital 520) подтвердил воспроизводимость claims Hanff. Antiy Labs опубликовали dedicated risk analysis high-privilege browser channel Claude Desktop. HN-thread по инциденту B вышел на front page за часы — 350+ points, 100+ comments — split между «reasonable anti-distillation defense» и «malware-adjacent behavior для dev tool».

2. Timeline: что произошло

ДатаСобытиеVersion / Source
2026-04-18+Hanff раскрывает silent Native Messaging injection Claude DesktopThe Register, Malwarebytes, gHacks
2026-06-30Reverse-engineering Claude Code, найдена prompt steganographythereallo.dev → Reddit → HN
2026-06-30Верифицировано в 2.1.193 / 2.1.195 / 2.1.196thereallo.dev
2026-07-01Anthropic шипит 2.1.197 с удалением кодаTechTimes, Developers Digest (changelog без упоминания)

3. Механика fingerprint: Unicode mapping table

Precondition: trigger только когда ANTHROPIC_BASE_URLapi.anthropic.com (proxy, gateway, reseller, OpenAI-compatible layer). Official endpoint = zero mutation.

При trigger два signal'а прячутся в innocuous строке Today's date is ...:

  1. Date separator: при timezone Asia/Shanghai или Asia/Urumqi2026-06-302026/06/30.
  2. Apostrophe swap: apostrophe в Today's заменяется look-alike Unicode variant, кодирующим match result.
Detected conditionDateApostropheUnicode
Default (no match)2026-06-30' ASCII apostropheU+0027
China-linked org/reseller domain2026-06-30' right single quoteU+2019
AI-lab keyword (deepseek, moonshot, zhipu…)2026-06-30ʼ modifier letter apostropheU+02BC
Both domain and lab2026-06-30ʹ modifier letter primeU+02B9
+ China timezone2026/06/30(as above)

Domain/keyword lists обфусцированы base64 + XOR (key 91) — ~147 domain patterns. Human eye видит обычный prompt. Backend Anthropic по одному code point apostrophe декодирует: «User за VPN, но timezone China — возможно Chinese AI lab.» Overhead на клиенте минимален — string rewrite до HTTP payload, throughput API не затронут; но каждый request несёт covert classification bit в system prompt.

# Self-check: ANTHROPIC_BASE_URL и timezone (proxy users, pre-2.1.197) echo "ANTHROPIC_BASE_URL=${ANTHROPIC_BASE_URL:-api.anthropic.com (default)}" echo "TZ=${TZ:-system default}" # Upgrade Claude Code 2.1.197+ — steganography removed # macOS: strings/claude-code | grep -i base64 # не замена полноценному RE

4. Зачем Anthropic это сделал: intent vs. method

Community consensus измеренный: почти наверняка anti-distillation + anti-unauthorized-reselling. Anthropic, OpenAI, Google публично беспокоятся о competitors, harvesting API outputs для training smaller models. China-linked resellers, proxies, labs — prime suspects.

Intent defensible; method — нет. Classification signal в invisible punctuation, obfuscation в binary, ship на каждый request — внутри dev tool, живущего на trust — это red line. HN split hard:

  • Defense camp: «Reasonable anti-distillation — менее invasive, чем logging вашего кода.»
  • Opposition camp: «Malware-adjacent для tool с filesystem + shell access и undisclosed telemetry.»

Используйте «alleged» / «по reverse-engineering report». Разделяйте goal (anti-distillation) и means (steganography).

5. Это реально spyware?

«Spyware» — loaded term. Точнее:

  • Инцидент A ближе к unauthorized tampering third-party software + dormant pre-positioned attack surface. Цифры Anthropic: Claude for Chrome prompt-injection success 23,6% (unmitigated) / 11,2% (mitigated).
  • Инцидент B ближе к undisclosed telemetry / covert user classification.

Core issue один: no informed consent, deliberately hidden. Legitimate LiteLLM gateways и corporate proxies триггерят инцидент B — classifier не отличит shady reseller от internal dev tool по hostname alone.

6. Five-step checklist: проверка и защита

  1. Check ANTHROPIC_BASE_URL: unset или official endpoint → инцидент B не trigger. LiteLLM/OpenRouter/corporate gateways классифицировались (pre-2.1.197).
  2. Upgrade Claude Code 2.1.197+: steganography removed, changelog omits — ведите upgrade records.
  3. macOS: inspect Native Messaging manifests at ~/Library/Application Support/<browser>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json. Delete; Claude Desktop may recreate.
  4. Check timezone: Asia/Shanghai / Asia/Urumqi adds date-separator signal (incident B + proxy only).
  5. Enterprise/sensitive: desktop agents = high-privilege programs — least privilege, explicit auth, auditable behavior. На Apple Silicon Mac изолируйте Claude Code в dedicated remote node: Metal/Xcode toolchain остаётся на Mac, ваш laptop — thin client через SSH tunnel.

7. Deep dive: desktop AI agents повторяют ошибки PC/smartphone security

Урок не в «apostrophe». Когда model capability обгоняет security boundaries, consent, auditability, vendors пересекают trust boundary под видом «UX» или «abuse prevention».

Мы это видели — preinstalled PC bloatware, early smartphone permission abuse — и это replay на desktop AI agents. Claude Desktop pre-positioning Native Messaging + Claude Code steganographic fingerprints: high-privilege local programs + undisclosed classification signals as defaults, не opt-ins.

Что делать на практике:

  • Default distrust; demand evidence. Reproducible, auditable, switchable-off — bar for trust.
  • Disclosure over concealment. Fight distillation openly — document, ship toggle — не buried in punctuation.
  • Least privilege + isolation. Remote Mac node с snapshot rollback: Claude Code 24/7 на dedicated M-series hardware, unified memory для local inference workloads если нужно, без covert channels на вашем daily driver.
  • Vote with feet + regulation. GDPR-style law и market choice — ultimate check.

Technology neutral; company — нет. Чем capable модель, тем сильнее vendor must constrain itself — и это не secret, который находишь только reverse-engineering binary.

8. FAQ

Q: Claude Code — spyware?
A: Не классический, но undisclosed obfuscated fingerprint в system prompts. Removed в 2.1.197. Точнее — undisclosed covert channel.

Q: Claude Code track timezone?
A: Check Asia/Shanghai / Asia/Urumqi — только с non-default ANTHROPIC_BASE_URL. Official endpoint users unaffected.

Q: Unicode/apostrophe trick?
A: Apostrophe в «Today's» swapped U+0027, U+2019, U+02BC, U+02B9 — domain match, AI-lab keyword, both, neither.

Q: Зачем Anthropic добавил?
A: Most likely anti-distillation + unauthorized reselling detection — legitimate goal, illegitimate implementation.

Q: То же, что Claude Desktop spyware?
A: Нет. Incident A (апрель): Desktop silent Native Messaging manifests. Incident B (30.06): Code prompt steganography — different products.

Q: Regular Claude web users affected?
A: Incident B только Claude Code через custom proxy. Official endpoint unaffected.

Q: Как удалить Claude Desktop browser injection?
A: Delete com.anthropic.claude_browser_extension.json under NativeMessagingHosts. Restart may recreate.

Q: ANTHROPIC_BASE_URL fingerprinting?
A: Hostname ≠ api.anthropic.com → ~147 obfuscated domain rules + AI-lab keywords, result encoded в date line system prompt.

9. Sources

  • The Register: Claude Desktop changes software permissions without consent (April 2026)
  • Malwarebytes / gHacks / YOOTA: Claude Desktop native messaging coverage
  • thereallo.dev: Claude Code prompt steganography (original reverse engineering)
  • Tech Startups / TMC Insight / Developers Digest / TechTimes: Incident B coverage и fix 2.1.197
  • Antiy Labs: Claude Desktop high-privilege browser channel risk analysis

10. Closing: high-privilege AI agents deserve isolated Mac nodes

Инциденты Claude Code и Claude Desktop показывают: desktop AI agents уже high-privilege programs — filesystem, shell, out-of-sandbox browser channels exposed при bare-metal run на laptop. Windows/Linux cloud VMs могут call Claude APIs, но проигрывают в terminal toolchain integration, Xcode/Cursor synergy, Native Messaging audit trails vs Apple Silicon Macs с Metal-accelerated dev stack. Если нужен isolated Claude Code runtime со snapshot rollback и least-privilege auditing, смотрите MACGPU remote Mac node: Claude Code / OpenClaw на dedicated rental Mac, tunnel с laptop через SSH — превращает «secret apostrophe» в manageable architecture decision, не passive vendor overreach.