Claude Code встраивает скрытые маркеры в системный промпт

Claude Code встраивает скрытые маркеры в системный промпт

Разработчик проанализировал бинарный файл Claude Code и обнаружил функцию стеганографического кодирования данных в системном промпте. Когда переменная окружения ANTHROPIC_BASE_URL указывает на нестандартный API-адрес или временная зона системы совпадает с китайскими (Asia/Shanghai, Asia/Urumqi), Claude Code незаметно изменяет два символа в строке с текущей датой:

  1. Апостроф в слове «Today's» меняется на другой символ
  2. Разделитель даты меняется с дефиса на слеш (YYYY-MM-DD → YYYY/MM/DD)

Домены и ключевые слова для определения прокси и reseller-сервисов хранятся в бинарнике в зашифрованном виде (base64 + XOR с ключом 91). Расшифрованный список включает китайские корпоративные домены, доменов AI-компаний и множество прокси-сервисов. Маркеры встраиваются в системный контекст, отправляемый модели, где их предположительно парсит бэкенд Anthropic.

Автор предполагает, что это нужно Anthropic для обнаружения несанкционированных шлюзов, перепродавцов Claude Code и попыток дистилляции модели. Однако критикует реализацию: вместо прямого телеметрического поля или прозрачной документации используется скрытое кодирование в невидимых символах системного промпта. Это подрывает доверие к заявлениям о приватности инструмента, особенно учитывая его широкие привилегии (доступ к файловой системе, shell, git).

Для пользователей с официальным API Anthropic или стандартной конфигурацией этот механизм не срабатывает. Основной эффект, профилирование разработчиков, легально использующих кастомные API-адреса (внутренние шлюзы, локальные прокси, исследовательские сетапы).

Ключевые факты

  • Claude Code изменяет дату в системном промпте на основе ANTHROPIC_BASE_URL и временной зоны, используя стеганографию (невидимые символы)
  • Список доменов и ключевых слов для определения прокси/reseller-сервисов зашифрован в бинарнике (base64 + XOR) и расшифровывается во время выполнения
  • Маркеры встраиваются в системный контекст, отправляемый модели, для телеметрии на стороне Anthropic
  • Mechanизм нацелен на обнаружение несанкционированных API-шлюзов и попыток дистилляции модели, но реализация скрытая, а не явная
  • Критика: скрытое кодирование подрывает доверие к заявлениям о приватности инструмента, который имеет широкие привилегии доступа

Почему это важно

Claude Code, инструмент с высокими привилегиями (доступ к FS, shell, git, браузеру). Такие инструменты требуют особого доверия. Обнаружение скрытого механизма кодирования в системном промпте показывает, что Anthropic отслеживает, используется ли Claude Code через нестандартные каналы (прокси, reseller-сервисы, research-сетапы). Это касается не только безопасности моделей, но и прозрачности работы инструмента разработчика.

Кому это важно

Разработчикам, использующим Claude Code через кастомные API-адреса (корпоративные шлюзы, локальные прокси, модель-роутеры, исследовательские установки). Компаниям и исследователям, маршрутизирующим запросы через собственную инфраструктуру. Специалистам по безопасности и приватности, которые анализируют бинарные клиенты инструментов.

Как это применить

Если используете Claude Code через кастомный ANTHROPIC_BASE_URL, учитывайте, что это действие может быть обнаружено и классифицировано на серверной части Anthropic. Если критична анонимность, в коде можно обойти эту проверку (изменить имя хоста, часовой пояс, пропатчить бинарник или обёрнуть процесс), но это не рекомендуется для легитимного использования. Для явной защиты приватности документируйте своё использование кастомных шлюзов в соглашениях с Anthropic.

Можно ли доверять

Механизм сам по себе не содержит вредоноса, это просто телеметрия для определения класса API-адреса (официальный эндпоинт или прокси). Однако выбор скрывать это в невидимых символах системного промпта, а не отправлять явное поле, вызывает вопросы к прозрачности. Для пользователей с официальным API эндпоинтом и стандартной конфигурацией функция не срабатывает. Проблема в том, что скрытая реализация делает любые заявления о приватности менее убедительными.

Риски и подводные камни

Риск репутационный, скрытое кодирование уменьшает доверие пользователей к инструменту. Механически обойти это несложно (изменить hostname, часовой пояс, пропатчить бинарник), поэтому как технический контроль это слабо, основной эффект на «нормальных разработчиков с нестандартными сетапами». Кроме того, каждое обновление Claude Code может менять списки доменов и алгоритмы, требуя переанализа. Для организаций с собственными API-шлюзами рекомендуется явное согласие с Anthropic на такую конфигурацию.