ANTHROPIC_BASE_URL ≠ api.anthropic.com) строка Today's date is... системного промпта тихо переписывается. Переключая разделитель даты и подменяя апостроф на визуально идентичные, но разные символы Unicode, кодируется, находитесь ли вы в китайском часовом поясе и совпадает ли эндпоинт с китайскими доменами или ключевыми словами AI-лабораторий. Anthropic удалила код в версии 2.1.197. Статья строго разделяет инцидент A (тихая инъекция браузера Claude Desktop) и инцидент B (стеганография промпта Claude Code), охватывает таблицу Unicode, мотив анти-дистилляции, дебаты на HN, шесть шагов защиты и ответ на превышение полномочий AI-вендоров. См. также сравнение AI-ассистентов для кода и гайд по протоколу MCP.Что произошло со стеганографией 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-инструмента».
Смешение двух продуктов: инъекция браузера Claude Desktop и стеганография промпта Claude Code — совершенно разные механизмы с разными триггерами.
Ошибочно считать, что затронуты официальные эндпоинты: инцидент B срабатывает только когда ANTHROPIC_BASE_URL указывает не на api.anthropic.com.
Принимать намерение за доказанный факт: анти-дистилляция — консенсус сообщества, но Anthropic публично не подтвердила. Используйте «по сообщениям», «по данным реверс-инжиниринга».
Игнорировать устойчивость инцидента A: манифесты Native Messaging восстанавливаются после удаления при перезапуске Claude Desktop — нужен постоянный мониторинг.
Недооценивать привилегии desktop-агентов: по данным Anthropic: успех prompt-injection в Claude for Chrome — 23,6% (без смягчения) / 11,2% (со смягчением) — реальный риск в сочетании с каналом высоких привилегий.
Как работает отпечаток 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.
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 и согласуются с публичным обсуждением в сообществе.
Зачем Anthropic это сделала? Является ли Claude Code шпионским ПО?
Умеренный консенсус сообщества: это почти наверняка была анти-дистилляция и борьба с несанкционированной перепродажей. Anthropic, OpenAI и Google публично беспокоились о том, что конкуренты собирают вывод API для обучения меньших моделей. Китайские реселлеры, прокси и лаборатории — главные подозреваемые, отсюда классификатор.
Намерение защитимо; метод — нет. Превратить сигнал классификации в невидимую пунктуацию, обфусцировать в бинарнике и отправлять с каждым запросом — в инструменте разработчика, живущем на доверии — пересекает границу. На Hacker News тред раскололся:
| Лагерь | Позиция |
|---|---|
| Лагерь анти-дистилляции | «Разумная защита от дистилляции» — защита модели от сбора вывода конкурентами |
| Лагерь доверия разработчиков | «Близко к малвари для dev-инструмента» — нераскрытое, обфусцированное, спрятанное в пунктуации — неприемлемо |
«Шпионское ПО» — сильное слово. Точнее:
Инцидент A ближе к несанкционированному вмешательству в чужое ПО плюс спящая предразвёрнутая поверхность атаки — даже без эксплуатации предустанавливает канал высоких привилегий вне песочницы браузера.
Инцидент B ближе к нераскрытой телеметрии / скрытой классификации пользователей — не классическая ворующая данные малварь, но без информированного согласия.
Какой бы ярлык ни использовали, суть одна: нет информированного согласия, намеренно скрыто. Доминирующая интерпретация: Anthropic целилась в несанкционированную перепродажу и дистилляцию модели, а не в слежку за людьми; спор — о методе (скрытый, обфусцированный, нераскрытый), а не о цели.
Замечание по комплаенсу: везде используйте «по сообщениям», «по данным реверс-инжиниринга». Не представляйте намерение как доказанный факт. Оценивайте цель (анти-дистилляция) и метод (стеганография) раздельно.
Проверка и защита: шесть шагов для пользователей Claude Code
Маршрутизируете ли вы Claude Code через прокси или запускаете Claude Desktop на macOS — эти шаги воспроизводимы и поддаются аудиту:
Проверить ANTHROPIC_BASE_URL: выполнить echo $ANTHROPIC_BASE_URL. Пусто или указывает на api.anthropic.com — инцидент B не срабатывает. Сторонние шлюзы/реселлеры в зоне риска.
Обновить Claude Code: версия CLI ≥ 2.1.197 (1 июля 2026, стеганография удалена). claude --version для проверки.
Проверить часовой пояс: timedatectl или date +%Z. Системный пояс Asia/Shanghai или Asia/Urumqi плюс прокси — сигнал разделителя даты исторически накладывался.
Аудит манифестов Native Messaging (инцидент A): в ~/Library/Application Support/<браузер>/NativeMessagingHosts/ искать com.anthropic.claude_browser_extension.json. Удалить при необходимости — Claude Desktop может воссоздать при перезапуске.
Проверить переключатели авторизации Claude Desktop: в поздних версиях добавлен toggle, но по анализу security-сообщества базовая модель разрешений не снята полностью. Предприятиям стоит оценить продакшен-использование desktop-агентов.
Изоляция в корпоративных/чувствительных средах: каждый desktop AI-агент — программа с высокими привилегиями: минимальные права, явная авторизация, аудируемое поведение. Хостинг агентов: центр помощи.
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
Что это значит: превышение полномочий AI-вендоров и как реагировать
Настоящий урок не в «одном апострофе». Когда возможности моделей стремительно растут, а границы безопасности, согласие и аудируемость отстают, вендоры продолжают пересекать границу доверия с пользователями (и другими разработчиками ПО) под предлогом «UX» или «предотвращения злоупотреблений».
147 правил: списки доменов/ключевых слов обфусцированы через base64 + XOR(91); подтверждено в версиях 2.1.193–2.1.196 (thereallo.dev).
Охват на HN: тред за несколько часов на главной — 350+ баллов, 100+ комментариев, сообщество глубоко расколото (Hacker News, 30.06.2026).
Успешность инъекции 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 в изолированном аудируемом хосте. Технология может быть нейтральной; компания — нет. Чем мощнее модель, тем сильнее вендор должен ограничивать себя — и это не должно быть секретом, который вы узнаёте только реверсом бинарника.