В конце июня 2026 разработчик, занимавшийся реверс-инжинирингом Claude Code (не веб-приложения Claude), обнаружил: при маршрутизации через кастомный прокси (ANTHROPIC_BASE_URLapi.anthropic.com) строка Today's date is... системного промпта тихо переписывается. Переключая разделитель даты и подменяя апостроф на визуально идентичные, но разные символы Unicode, кодируется, находитесь ли вы в китайском часовом поясе и совпадает ли эндпоинт с китайскими доменами или ключевыми словами AI-лабораторий. Anthropic удалила код в версии 2.1.197. Статья строго разделяет инцидент A (тихая инъекция браузера Claude Desktop) и инцидент B (стеганография промпта Claude Code), охватывает таблицу Unicode, мотив анти-дистилляции, дебаты на HN, шесть шагов защиты и ответ на превышение полномочий AI-вендоров. См. также сравнение AI-ассистентов для кода и гайд по протоколу MCP.
01

Что произошло со стеганографией Claude Code? Два отдельных инцидента — не смешивать

Суть сразу: этот скандал — на самом деле две независимые истории, наложенные друг на друга. Смешение мгновенно вскроют англоязычные техчитатели на HN, Reddit и в security-сообществе — и это бьёт по E-E-A-T. Всегда держите их раздельно:

ИзмерениеИнцидент A: тихая инъекция браузераИнцидент B: стеганография системного промпта
ПродуктClaude Desktop (macOS-клиент)Claude Code (CLI-инструмент для кода)
РаскрывшийAlexander Hanff (консультант по privacy, автор The Register)Разработчик сделал реверс бинарника, опубликовал на thereallo.dev, усилено через Reddit → Hacker News
ХронологияАпрель 2026 (с ~18.04)30 июня 2026
Ключевое поведениеТихо пишет манифест Native Messaging com.anthropic.claude_browser_extension.json в Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium, предварительно авторизуя 3 ID расширений для вызова chrome-native-host вне песочницы; создаёт каталоги даже для неустановленных браузеров; файл восстанавливается после удаления при перезапускеПри ANTHROPIC_BASE_URL ≠ api.anthropic.com (прокси/шлюз) переписывает строку Today's date is... через стеганографию
Ярлыки«spyware» / «backdoor»«prompt steganography» / «covert channel»
ТриггерУстановка/запуск Claude DesktopТолько при неофициальном Base URL; не каждый разговор
Ответ AnthropicНет формального публичного ответа; в поздних версиях — переключатель авторизации, но базовая модель разрешений по анализу не снята полностьюПризнали наличие кода; удаление в 2.1.197 01.07, в changelog не упомянуто

Инцидент A (по раскрытию Hanff и независимому воспроизведению): после установки Claude Desktop тихо пишет конфиг Native Messaging в каталоги нескольких браузеров, предварительно разрешая расширениям вызывать локальный бинарник вне песочницы браузера с полными правами пользователя. Создаёт каталоги даже для неустановленных браузеров. Ручное удаление — перезапуск Claude Desktop воссоздаёт файл. Независимый консультант Noah Kenney (Digital 520) подтвердил воспроизводимость; Antiy Labs опубликовала отдельный анализ рисков.

Инцидент B (по реверс-инжинирингу thereallo.dev): разработчик нашёл стеганографию промпта в Claude Code — фокус этой статьи. Тред на HN за несколько часов вышел на главную: 350+ баллов, 100+ комментариев, сообщество раскололось между «разумной анти-дистилляцией» и «поведением, близким к малвари для dev-инструмента».

01

Смешение двух продуктов: инъекция браузера Claude Desktop и стеганография промпта Claude Code — совершенно разные механизмы с разными триггерами.

02

Ошибочно считать, что затронуты официальные эндпоинты: инцидент B срабатывает только когда ANTHROPIC_BASE_URL указывает не на api.anthropic.com.

03

Принимать намерение за доказанный факт: анти-дистилляция — консенсус сообщества, но Anthropic публично не подтвердила. Используйте «по сообщениям», «по данным реверс-инжиниринга».

04

Игнорировать устойчивость инцидента A: манифесты Native Messaging восстанавливаются после удаления при перезапуске Claude Desktop — нужен постоянный мониторинг.

05

Недооценивать привилегии desktop-агентов: по данным Anthropic: успех prompt-injection в Claude for Chrome — 23,6% (без смягчения) / 11,2% (со смягчением) — реальный риск в сочетании с каналом высоких привилегий.

02

Как работает отпечаток Claude Code? Таблица Unicode-апострофов

Предусловие: срабатывает только когда ANTHROPIC_BASE_URL указывает не на официальный эндпоинт (прокси, шлюз, реселлер, OpenAI-совместимый слой). При api.anthropic.com ничего не меняется.

При срабатывании два сигнала прячутся в безобидной строке Today's date is ...:

УсловиеФормат датыАпострофUnicode
По умолчанию (нет совпадения)2026-06-30' ASCII-апострофU+0027
Домен орг/реселлера, связанный с Китаем2026-06-30' правая одинарная кавычкаU+2019
Ключевое слово AI-лаба (deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai…)2026-06-30ʼ модификатор-буква апострофU+02BC
Совпали и домен, и лаб2026-06-30ʹ модификатор-буква праймU+02B9
+ китайский часовой пояс (Asia/Shanghai / Asia/Urumqi)2026/06/30(те же правила выше)

Списки доменов и ключевых слов слегка обфусцированы через base64 + XOR (ключ 91) — примерно 147 доменных паттернов. Ключевые слова включают deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai и другие. Реверс-инженер подтвердил логику в версиях 2.1.193 / 2.1.195 / 2.1.196.

bash
echo $ANTHROPIC_BASE_URL
timedatectl | grep "Time zone"
find ~/Library/Application\ Support -name "com.anthropic.claude_browser_extension.json" 2>/dev/null

Для человека промпт выглядит совершенно обычным. Бэкенд Anthropic по одному Unicode-кодпоинту апострофа читает: «Пользователь за VPN, но фактически в китайском часовом поясе — возможно, китайская AI-лаборатория.» Классический скрытый канал.

Детали часового пояса и Unicode-апострофа полностью верифицированы по отчёту thereallo.dev и согласуются с публичным обсуждением в сообществе.

03

Зачем Anthropic это сделала? Является ли Claude Code шпионским ПО?

Умеренный консенсус сообщества: это почти наверняка была анти-дистилляция и борьба с несанкционированной перепродажей. Anthropic, OpenAI и Google публично беспокоились о том, что конкуренты собирают вывод API для обучения меньших моделей. Китайские реселлеры, прокси и лаборатории — главные подозреваемые, отсюда классификатор.

Намерение защитимо; метод — нет. Превратить сигнал классификации в невидимую пунктуацию, обфусцировать в бинарнике и отправлять с каждым запросом — в инструменте разработчика, живущем на доверии — пересекает границу. На Hacker News тред раскололся:

ЛагерьПозиция
Лагерь анти-дистилляции«Разумная защита от дистилляции» — защита модели от сбора вывода конкурентами
Лагерь доверия разработчиков«Близко к малвари для dev-инструмента» — нераскрытое, обфусцированное, спрятанное в пунктуации — неприемлемо

«Шпионское ПО» — сильное слово. Точнее:

A

Инцидент A ближе к несанкционированному вмешательству в чужое ПО плюс спящая предразвёрнутая поверхность атаки — даже без эксплуатации предустанавливает канал высоких привилегий вне песочницы браузера.

B

Инцидент B ближе к нераскрытой телеметрии / скрытой классификации пользователей — не классическая ворующая данные малварь, но без информированного согласия.

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

Замечание по комплаенсу: везде используйте «по сообщениям», «по данным реверс-инжиниринга». Не представляйте намерение как доказанный факт. Оценивайте цель (анти-дистилляция) и метод (стеганография) раздельно.

04

Проверка и защита: шесть шагов для пользователей Claude Code

Маршрутизируете ли вы Claude Code через прокси или запускаете Claude Desktop на macOS — эти шаги воспроизводимы и поддаются аудиту:

01

Проверить ANTHROPIC_BASE_URL: выполнить echo $ANTHROPIC_BASE_URL. Пусто или указывает на api.anthropic.com — инцидент B не срабатывает. Сторонние шлюзы/реселлеры в зоне риска.

02

Обновить Claude Code: версия CLI ≥ 2.1.197 (1 июля 2026, стеганография удалена). claude --version для проверки.

03

Проверить часовой пояс: timedatectl или date +%Z. Системный пояс Asia/Shanghai или Asia/Urumqi плюс прокси — сигнал разделителя даты исторически накладывался.

04

Аудит манифестов Native Messaging (инцидент A): в ~/Library/Application Support/<браузер>/NativeMessagingHosts/ искать com.anthropic.claude_browser_extension.json. Удалить при необходимости — Claude Desktop может воссоздать при перезапуске.

05

Проверить переключатели авторизации Claude Desktop: в поздних версиях добавлен toggle, но по анализу security-сообщества базовая модель разрешений не снята полностью. Предприятиям стоит оценить продакшен-использование desktop-агентов.

06

Изоляция в корпоративных/чувствительных средах: каждый desktop AI-агент — программа с высокими привилегиями: минимальные права, явная авторизация, аудируемое поведение. Хостинг агентов: центр помощи.

bash
claude --version
find ~/Library/Application\ Support -path "*/NativeMessagingHosts/com.anthropic.claude_browser_extension.json"
grep -r "ANTHROPIC_BASE_URL" ~/.zshrc ~/.bashrc ~/.zprofile 2>/dev/null
05

Что это значит: превышение полномочий AI-вендоров и как реагировать

Настоящий урок не в «одном апострофе». Когда возможности моделей стремительно растут, а границы безопасности, согласие и аудируемость отстают, вендоры продолжают пересекать границу доверия с пользователями (и другими разработчиками ПО) под предлогом «UX» или «предотвращения злоупотреблений».

A

147 правил: списки доменов/ключевых слов обфусцированы через base64 + XOR(91); подтверждено в версиях 2.1.193–2.1.196 (thereallo.dev).

B

Охват на HN: тред за несколько часов на главной — 350+ баллов, 100+ комментариев, сообщество глубоко расколото (Hacker News, 30.06.2026).

C

Успешность инъекции Claude for Chrome: по данным Anthropic — 23,6% без смягчения, 11,2% со смягчением — реальный риск в сочетании с каналом высоких привилегий инцидента A.

ПринципДействие
По умолчанию не доверять; требовать доказательствВоспроизводимо, аудируемо и отключаемо — планка доверия
Раскрытие вместо сокрытияБороться с дистилляцией открыто — документировать, давать переключатель, не прятать в пунктуацию
Минимальные привилегии + изоляцияКаждый desktop-агент — программа с высокими привилегиями
Голосовать ногами + регулированиеЗаконы типа GDPR и выбор рынка — окончательная проверка «технологии без границ»

Источники: The Register (изменения разрешений Claude Desktop, 04.2026); Malwarebytes / gHacks / YOOTA (освещение Native Messaging); thereallo.dev (оригинальный реверс Claude Code); Tech Startups / TMC Insight / Developers Digest / TechTimes (исправление 2.1.197); анализ рисков Antiy Labs.

Рассмотрим альтернативы: запуск Claude Desktop «голым» на личном Mac с Native Messaging в нескольких браузерах оставляет каналы высоких привилегий и поверхности инъекции трудными для аудита; полная зависимость от сторонних реселлеров Claude долго держит вас под нераскрытой логикой отпечатков; виртуализированный macOS для агентов нарушает EULA Apple и ломает подпись Xcode. Для продакшен-сред AI-агентов с iOS CI/CD, полным root и стабильностью 7×24 аренда выделенного Mac Mini M4 в облаке KVMNODE — обычно лучший путь: 100% физическое железо, открытый sudo, гибкие дневные/недельные/месячные условия, Claude Code в изолированном аудируемом хосте. Технология может быть нейтральной; компания — нет. Чем мощнее модель, тем сильнее вендор должен ограничивать себя — и это не должно быть секретом, который вы узнаёте только реверсом бинарника.