Claude Code стеганография: скрытый Unicode-отпечаток Anthropic (2026)

В конце июня 2026 reverse engineering Claude Code (не веб-приложения) выявил: при прокси (ANTHROPIC_BASE_URLapi.anthropic.com) строка Today's date is... в системном промпте переписывалась текстовой стеганографией — разделитель даты и Unicode-апостроф кодируют китайский часовой пояс и совпадения прокси. Anthropic удалил код в 2.1.197. Статья разделяет событие A (Native Messaging Desktop) и B, даёт таблицу Unicode, объясняет base64+XOR(91), дебаты HN и runbook из 5 шагов.

Абстрактное изображение кода и шифрования — символ скрытых Unicode-отпечатков в Claude Code

Содержание

I. Боли: три риска доверия для разработчиков

  1. Два события смешаны: медиа путают Claude Desktop (апрель, Native Messaging) и Claude Code (июнь, стеганография промпта) — это бьёт по E-E-A-T и ведёт к неверным мерам защиты.
  2. Невидимая классификация: согласно отчёту о reverse engineering U+2019/U+02BC/U+02B9 в Today's кодируют китайские домены, ключевые слова AI-лабораторий и часовой пояс Asia/Shanghai — без согласия и раскрытия.
  3. Слепота в production: кто настраивает ANTHROPIC_BASE_URL на OpenRouter, SiliconFlow или внутренние gateway, запускает событие B; облачный API на Linux VPS без аудита создаёт compliance-риски.

II. Событие A vs B — два отдельных инцидента

ИзмерениеСобытие A: Native MessagingСобытие B: стеганография промпта
ПродуктClaude Desktop (macOS)Claude Code (CLI)
ИсточникAlexander Hanff (*The Register*, апрель 2026)Reverse на thereallo.dev (30 июня 2026)
ПоведениеТихо пишет com.anthropic.claude_browser_extension.json в Chrome/Edge/Brave/Arc/Vivaldi/Opera — 3 ID расширений вызывают chrome-native-host вне sandbox; файл возвращается после удаленияПри прокси: стеганография в Today's date is...
ТриггерУстановка/запуск Claude DesktopТолько если ANTHROPIC_BASE_URL ≠ api.anthropic.com
МеткаSpyware / backdoor (по обвинениям)Prompt steganography / covert channel
AnthropicНет формального ответа; позже добавлен переключатель авторизацииКод признан, удалён в 2.1.197, changelog молчит

Согласно отчётам независимый консультант Noah Kenney (Digital 520) подтвердил технические утверждения Hanff по событию A. Antiy Labs опубликовала анализ рисков браузерного канала.

III. Как работает стеганография

Условие: согласно reverse engineering событие B срабатывает только если ANTHROPIC_BASE_URL указывает на прокси, gateway или OpenAI-совместимый слой — не на api.anthropic.com.

Два изменения в безобидной строке даты:

  1. Разделитель даты: при часовом поясе Asia/Shanghai или Asia/Urumqi 2026-06-30 становится 2026/06/30.
  2. Замена апострофа: символ в Today's заменяется визуально идентичными Unicode-вариантами.

Списки доменов и ключевых слов обфусцированы через base64 + XOR(91) — около 147 правил доменов, ключевые слова: deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.

# Пример: проверка триггера прокси echo $ANTHROPIC_BASE_URL # Стеганография активна только при ≠ api.anthropic.com # Часовой пояс (влияет на разделитель /) timedatectl | grep "Time zone" # Linux systemsetup -gettimezone # macOS

IV. Таблица Unicode-mapping

Обнаруженное условиеФормат датыАпострофUnicode
По умолчанию (нет совпадений)2026-06-30' ASCIIU+0027
Домен org/реселлера, связанный с Китаем2026-06-30' right single quoteU+2019
Ключевое слово AI-лаборатории2026-06-30ʼ modifier letter apostropheU+02BC
Домен + лаборатория одновременно2026-06-30ʹ modifier letter primeU+02B9
+ китайский часовой пояс2026/06/30(как выше)

Простыми словами: промпт выглядит нормально — backend читает из апострофа и разделителя, сидит ли пользователь за VPN, но в китайском часовом поясе и вероятно привязан к AI-лаборатории. Классический covert channel.

V. Мотив: anti-distillation — цель vs метод

Консенсус сообщества (осторожно сформулирован): цель — anti-distillation и обнаружение несанкционированной перепродажи. Anthropic, OpenAI и Google неоднократно предупреждали о distillation; прокси и лаборатории, связанные с Китаем, — приоритетные подозреваемые.

На Hacker News тред достиг согласно отчётам 350+ points и 100+ комментариев, разделившись между «разумной anti-distillation defense» и «поведением близким к malware для dev-tool».

Согласно отчётам Anthropic признал код и удалил его 1 июля 2026 в версии 2.1.197 — без упоминания в changelog.

VI. Дебаты о spyware — более точная формулировка

Ключевая проблема в обоих случаях: нет информированного согласия, намеренно скрыто.

VII. Жёсткие факты (цитируемые)

  1. Обфускация: списки доменов base64 + XOR-ключ 91, около 147 правил.
  2. Версии: код проверен в 2.1.193 / 2.1.195 / 2.1.196; удалён в 2.1.197.
  3. HN: 350+ points, 100+ комментариев; Reddit → HN как усилитель.
  4. Часовые пояса: Asia/Shanghai, Asia/Urumqi → разделитель /.

VIII. Runbook из 5 шагов: проверка и защита

  1. Проверить ANTHROPIC_BASE_URL: только пользователи прокси запускают событие B. Использовать официальный endpoint или явно документировать.
  2. Claude Code ≥ 2.1.197: принудительное обновление; проверять версию в CLI, не только changelog.
  3. Инспектировать системный промпт: апостроф в Today's на U+0027/U+2019/U+02BC/U+02B9 (Unicode-inspector или hex).
  4. Событие A — Native Messaging: искать com.anthropic.claude_browser_extension.json в ~/Library/Application Support/<браузер>/NativeMessagingHosts/; Claude Desktop может пересоздать.
  5. Enterprise: desktop-агенты как программы с высокими привилегиями — least privilege, явная авторизация, аудируемые логи на выделенных хостах.
# Шаг 3: codepoint апострофа в log промпта python3 -c "s=open('prompt.log').read(); i=s.find('Today'); print([hex(ord(c)) for c in s[i:i+8]])" # Шаг 4: манифест Native Messaging (macOS) find ~/Library/Application\ Support -name 'com.anthropic.claude_browser_extension.json' 2>/dev/null

IX. Что это значит для доверия к AI-вендорам

Урок не в «одном апострофе», а в том, что когда возможности моделей опережают границы безопасности и аудита, вендоры пересекают границы доверия во имя UX или борьбы с злоупотреблениями. Облачный API на generic Linux VPS даёт колебания цен, незаметные манипуляции промптом и отсутствие изоляции Apple toolchain. Self-hosted gateway на GPU VPS добавляет отладку CUDA и недокументированное поведение вендора.

Для аудируемого production Claude Code / Agent с Xcode, Cursor и launchd 7×24 выделенный Mac cloud VPSMAC M4 часто стабильнее: нативный macOS stack, изолированные API keys, JSONL-логи — чтобы proxy routing и аудит промптов оставались воспроизводимыми, а не исчезали в невидимых Unicode-битах.

X. FAQ

Является ли Claude Code шпионским ПО?

Не в классическом смысле, но согласно reverse engineering содержал нераскрытый отпечаток — удалён в 2.1.197. Точнее: covert channel, не trojan для кражи данных.

Отслеживает ли Claude Code мой часовой пояс?

Согласно отчёту только при proxy base URL; проверяет Asia/Shanghai и Asia/Urumqi для разделителя даты.

Что за трюк с апострофом?

U+0027, U+2019, U+02BC, U+02B9 кодируют совпадения domain/lab — см. таблицу выше.

Зачем Anthropic это сделал?

Вероятно anti-distillation и anti-reselling — легитимная цель, нелегитимно скрытая реализация.

Это та же история про spyware Claude Desktop?

Нет — событие A (апрель, Hanff) vs событие B (июнь, thereallo.dev).

Какие версии были затронуты?

2.1.193–2.1.196 согласно reverse engineering; fix в 2.1.197 без записи в changelog.

XI. Источники