Если вы крутите Claude Code или Claude Desktop, разобраться нужно сразу в двух вещах: стeganография промпта (июнь 2026) и тихая инъекция в браузер (апрель) — это разные инциденты. Первый подменяет Unicode-апострофы в строке Today's date при прокси; второй пре-записывает манифесты Native Messaging на macOS. По RE-отчётам Anthropic вырезал код в 2.1.197; цель — anti-distillation, метод — скрытый и необъявленный. Ниже — матрица A/B, таблица Unicode, HN-дебаты, чеклист из 6 шагов и FAQ. Тарифы нод — на странице цен.
[ SECTION_01 ] // TL;DR Что такое steganография Claude Code? Ответ за 30 секунд
Суть: 30 июня 2026, по thereallo.dev RE, Claude Code (CLI, не веб) переписывал строку Today's date is... в system prompt, когда ANTHROPIC_BASE_URL указывал не на api.anthropic.com. Меняя разделитель даты (- vs /) и подставляя визуально идентичные Unicode-апострофы (U+0027 / U+2019 / U+02BC / U+02B9), клиент кодировал China-TZ и совпадения с China-доменами или AI-lab keywords в каждый запрос. Классический covert channel. Anthropic выпустил 2.1.197 1 июля без упоминания в changelog.
- Две истории путают: Desktop browser injection (Hanff, апрель) и Code prompt steganography (RE, июнь) — разные продукты, триггеры, механика; смешивание бьёт по E-E-A-T.
- Не все затронуты: инцидент B только при неофициальном Base URL; официальный endpoint — без изменений.
- Цель vs метод: консенсус — anti-distillation/reselling; цель понятна, сокрытие — нет.
- HN раскол: front page за часы, 350+ points — «разумная anti-distillation» vs «malware-adjacent для dev-tool».
- Тон: «по отчётам», «RE нашёл» — намерения вендора не как доказанный факт.
[ SECTION_02 ] // TIMELINE Claude Desktop injection vs Claude Code steganography: полное сравнение
| Измерение | Инцидент A: silent browser injection | Инцидент B: prompt steganography |
|---|---|---|
| Продукт | Claude Desktop (macOS client) | Claude Code (CLI coding tool) |
| Источник | Alexander Hanff (privacy consultant, The Register) | Developer RE на thereallo.dev, Reddit → HN |
| Дата | Апрель 2026 (~18 апр. onward) | 30 июня 2026 |
| Поведение | Тихо пишет com.anthropic.claude_browser_extension.json в Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium; 3 extension ID для sandbox-external chrome-native-host; создаёт dirs без браузера; файл регенерируется после удаления |
При ANTHROPIC_BASE_URL ≠ api.anthropic.com переписывает Today's date is... через steganography |
| Метки | spyware / backdoor | prompt steganography / covert channel |
| Триггер | Install/start Claude Desktop | Только неофициальный Base URL; не каждый разговор |
| Ответ Anthropic | Без формального ответа; позже consent toggle; permission model не снят полностью | Признали код; удалили в 2.1.197 (1 июл.); changelog молчит |
По инциденту A Noah Kenney (Digital 520) подтвердил воспроизводимость Hanff; Antiy Labs опубликовали risk analysis. По B — RE подтвердил логику в 2.1.193 / 2.1.195 / 2.1.196.
[ SECTION_03 ] // TECH Как работает Unicode-отпечаток Claude Code?
Предусловие: ANTHROPIC_BASE_URL указывает не на api.anthropic.com (proxy, gateway, reseller, OpenAI-compatible layer). Официальный endpoint — без модификаций.
При срабатывании два сигнала прячутся в безобидной строке Today's date is ...:
- Разделитель даты: при TZ
Asia/ShanghaiилиAsia/Urumqi2026-06-30→2026/06/30. - Swap апострофа: апостроф в
Today'sстановится Unicode look-alike, кодирующим match.
| Условие | Формат даты | Апостроф | Unicode |
|---|---|---|---|
| Default (no match) | 2026-06-30 |
' ASCII apostrophe |
U+0027 |
| China-linked org/reseller domain | 2026-06-30 |
' right single quote |
U+2019 |
| AI-lab keyword (deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai…) | 2026-06-30 |
ʼ modifier letter apostrophe |
U+02BC |
| Domain и lab | 2026-06-30 |
ʹ modifier letter prime |
U+02B9 |
| + China timezone | 2026/06/30 |
(правила апострофа как выше) | — |
По RE: domain/keyword lists — base64 + XOR (key 91), ~147 domain patterns. Человеку prompt выглядит обычным; backend Anthropic по code point одного апострофа видит: VPN, China TZ, возможно Chinese AI lab.
echo "$ANTHROPIC_BASE_URL"
claude --version
[ SECTION_04 ] // WHY Зачем Anthropic это сделал? Anti-distillation vs trust line
Консенсус: почти наверняка anti-distillation и anti-unauthorized-reselling. Anthropic, OpenAI, Google публично беспокоятся, что конкуренты собирают API outputs для smaller models. China-linked resellers, proxies, labs — prime suspects.
Intent может быть defensible; method — нет. Превращать классификацию в невидимую пунктуацию, обфусцировать в binary и шипить в каждом запросе dev-tool на trust — это over the line.
На HN thread split: «reasonable anti-distillation defense» vs «malware-adjacent behavior for a dev tool.» Mainstream read: цель — unauthorized reselling + distillation, не personal surveillance; спор — о means (covert, obfuscated, undisclosed).
[ SECTION_05 ] // SPYWARE Claude Code — реально spyware? Более точная метка
«Spyware» — loaded word. Точнее:
- Инцидент A ближе к unauthorized tampering with third-party software + dormant pre-positioned attack surface. Даже unexploited — pre-install high-privilege channel вне browser sandbox; Anthropic numbers для Claude for Chrome prompt-injection: 23.6% (unmitigated) / 11.2% (mitigated).
- Инцидент B ближе к undisclosed telemetry / covert user classification — не classic exfiltration malware, но undisclosed covert channel.
Какой бы label ни выбрали, core issue один: no informed consent, deliberately hidden.
[ SECTION_06 ] // PROTECT Проверка и защита: playbook из шести шагов
- Check Base URL:
echo $ANTHROPIC_BASE_URL; non-official proxies могли триггерить B; production —api.anthropic.comили audited enterprise gateways. - Upgrade Claude Code: version ≥ 2.1.197 (1 июля 2026 — public reports: steganography removed).
- Scan Native Messaging manifests (A): macOS
~/Library/Application Support/<browser>/NativeMessagingHosts/com.anthropic.claude_browser_extension.jsonacross Chrome, Edge, Brave, Arc, Vivaldi, Opera. - Delete и watch regeneration: remove JSON, restart Claude Desktop, log recreate — evidence permission model fix.
- Audit timezone + proxy combo: VPN + China TZ (
Asia/Shanghai/Asia/Urumqi) на old Claude Code + non-official Base URL = full fingerprint vector. - Enterprise / sensitive envs: desktop agents как high-privilege software — least privilege, explicit authorization, auditable behavior; host на isolated 24/7 servers, не personal laptops.
[ SECTION_07 ] // TRUST AI vendor overreach: как отвечать?
Урок не в «апострофе». Когда model capability обгоняет security boundaries, consent, auditability, vendors пересекают trust boundary под «UX» или «abuse prevention». Ранние ошибки PC/smartphone security replay на desktop AI agents.
Cite-ready technical facts (июнь–июль 2026, public reports + RE):
- Rule set size: base64 + XOR(91) obfuscation, ~147 domain/keyword patterns.
- Affected versions: Claude Code 2.1.193 / 2.1.195 / 2.1.196 contained logic; 2.1.197 removed.
- HN traction: front page в hours, 350+ points, 100+ comments.
- Claude for Chrome injection success (Anthropic disclosed): 23.6% unmitigated, 11.2% mitigated.
Что реально делать:
- Default to distrust; demand evidence. Reproducible, auditable, switchable-off — bar.
- Disclosure over concealment. Fight distillation in the open — document, ship toggle — not bury in punctuation.
- Least privilege + isolation для каждого desktop agent.
- Vote with feet, back with regulation. GDPR-style law и market choice — ultimate check.
Technology может быть neutral; company — нет. Чем capable модель, тем сильнее vendor должен constrain itself — и это не secret, который находишь только reverse-engineering binary.
[ SECTION_08 ] // FAQ FAQ steganography Claude Code и источники
Q: Claude Code — spyware?
Не classic sense, но RE нашёл undisclosed obfuscated fingerprint; Anthropic removed в 2.1.197. Best label: undisclosed covert channel.
Q: Claude Code track timezone?
Per RE checked Asia/Shanghai / Asia/Urumqi only с non-default ANTHROPIC_BASE_URL; official endpoint users untouched.
Q: Apostrophe / Unicode trick?
Apostrophe в «Today's» switched among U+0027, U+2019, U+02BC, U+02B9 для China domain hits, AI-lab keywords, both, neither.
Q: Why Anthropic add this?
Most likely anti-distillation и unauthorized reselling — legitimate goal, illegitimate implementation и disclosure.
Q: Same as Claude Desktop spyware?
No — April Desktop Native Messaging is A; June Code steganography is B.
Q: Web Claude users affected?
B only Claude Code с non-official ANTHROPIC_BASE_URL.
Q: Remove Claude Desktop browser injection?
Delete com.anthropic.claude_browser_extension.json under ~/Library/Application Support/<browser>/NativeMessagingHosts/; Claude Desktop may recreate.
Q: Why keep A and B separate?
Conflating produces factual errors HN/Reddit/security readers spot instantly — hurts E-E-A-T и SEO credibility.
Primary references — re-check links после upstream updates:
thereallo.dev: Claude Code prompt steganography (original RE report)
The Register: Claude Desktop changes software permissions without consent (Apr 2026)
Hacker News: Claude Code steganography discussion
Long Claude Code sessions, MCP toolchains, multi-model routing на sleeping laptop — interrupted jobs, OAuth expiry, Native Messaging regeneration eat audit work. Local-only checks help, но lack predictable 24/7 host; moving agents to isolated cloud Macs needs stable Apple Silicon и SSH.
Нужны 24/7 agent hosting, stable SSH, predictable Apple Silicon capacity — перенос Claude Code scheduled jobs, MCP configs, multi-vendor fallbacks на dedicated bare-metal servers beats firefighting на unreliable laptop: NOVAKVM — multi-region Mac Mini M4 / M4 Pro, flexible terms, fixed bandwidth, default SSH — ideal для iOS CI/CD и AI agent automation на одной машине. См. страницу цен, оформление заказа, центр помощи.