Claude Code прячет в своём JavaScript проверку на слово «deepseek»
Реверс-инженер разобрал бандл Claude Code и нашёл клиентскую логику, которая сканирует адрес API, к которому обращается инструмент. Если в имени хоста есть название конкурента, запрос тихо помечается.
Кто-то декомпилировал Claude Code и обнаружил обфусцированный клиентский код: он снимает отпечаток API-шлюза, к которому подключается, и высматривает строки вроде «deepseek». Совпало имя конкурента — и ваш промпт незаметно помечается ещё до того, как покинет вашу машину.
Тред раскололся надвое. Одни назвали это неуклюжей растяжкой против дистилляции, которую любой реселлер обходит переименованием домена. Другие задали вопрос пострашнее: что сервер делает с помеченным промптом — банит, душит скоростью или тихо подсовывает модель поглупее?
Инструмент для разработчика, который тихо изучает, с кем он говорит
Независимый реверс-инженер разобрал поставляемый JavaScript-бандл Claude Code и опубликовал находку: в клиенте есть обфусцированная логика, которая изучает настроенный API-адрес и реагирует на конкретные подстроки, включая названия конкурирующих AI-лабораторий вроде DeepSeek. Заметив такую строку, код помечает исходящий запрос. Автор называет приём стеганографией: пометка спрятана внутри вполне обычного на вид трафика, а сам список триггерных строк слегка обфусцирован в бандле, чтобы не читаться как явный чёрный список.

Беспокоит не то, что пометка вредоносна. Проблема в доверии: кодовый агент, который читает ваш репозиторий и выполняет команды, должен быть скучным и предсказуемым, а здесь ни того, ни другого. Самая острая мысль автора — про то, кого на самом деле ловят: механизм «в основном наказывает ровно тех, кого проще всего отпечатать: обычных разработчиков, которые делают странные, но законные вещи», тогда как настоящий противник просто переименует свой прокси. Вывод: «Это не вредоносная функция, но странный выбор для инструмента разработчика, который просит доверия».
Тред читает это как растяжку против дистилляции, а не как скандал
Самая заплюсованная поправка ударила прямо в заголовок. Пользователь HN с прокачанной до предела кармой переформулировал всю историю:
«Это не ИИ втихаря что-то делает и прячет. Это вполне живые инженеры Anthropic пытаются выявить китайский скрапинг через, честно говоря, топорный и лишённый воображения трюк с URL». — ajross, 34k кармы
Цель, доказывали несколько человек, это дистилляция моделей: конкуренты гонят трафик через прокси, чтобы собрать выводы Claude и обучиться на них. Читатель, который расписал этот замысел, счёл тревогу раздутой:
«Смысл этой стеганографии мучительно ясен (выявить использование китайскими фирмами, которые могут заниматься дистилляцией модели). Совершенно непонятно, как это хоть в каком-то виде „наказывает обычных разработчиков“». — инженер, который прочёл это как борьбу с дистилляцией, а не как слежку
Но громче всего звучало техническое возражение: это попросту не работает. Если всё ваше обнаружение сводится к проверке, есть ли в имени хоста прокси бренд конкурента, то контрмера — новый домен:
«Реселлерам достаточно найти новое доменное имя, в котором (сверяюсь с записями) нет слова DEEPSEEK… Ваша цель была вычислять реселлеров по тому, есть ли в прокси корпоративное имя одного из ваших конкурентов? Это что, детский сад?» — инженер, который сравнил это с прежним инцидентом с runtime-сигнатурой в Zig
Специалист по «underhanded code» (намеренно обманчивому, но правдоподобному исходнику, по мотивам конкурса Underhanded C) удивился неряшливости, отметив, что Anthropic могла бы вынести логику на сервер или написать клиентскую часть гораздо тоньше.
«Меня немного удивляет, как неряшливо они это сделали. Думаю, они могли добиться того же эффекта, снизив шансы обнаружения через реверс-инжиниринг». — meowface, 11k кармы
Один голос оспорил саму посылку, что лекарством была бы прозрачность. Задокументированное телеметрическое поле, доказывал он, — это поле, которое вредоносный шлюз тривиально вырежет, поэтому вся суть как раз в игре в кошки-мышки со скрытым отпечатком:
«Если клиенты шлют шлюзу явные телеметрические поля, вредоносный шлюз тривиально вырежет или изменит поле… Игра в кошки-мышки со стеганографией ценна тем, что шлюзу гораздо труднее непрерывно реверсить все механизмы отпечатка». — инженер, который занимается OAuth в Stytch
Вопрос, на который тред не смог ответить, и есть единственный по-настоящему важный для пользователей. Пометить промпт — действие безобидное; а вот что сервер делает, увидев пометку, уже нет.
«Вопрос в том, что они делают, увидев помеченный промпт. Флагают или банят аккаунт, или отдают ухудшенный ответ?» — tgsovlerkhgsel, 16k кармы
Пока кто-нибудь не воспроизведёт поведение сервера (троттлинг, переброс на модель послабее или бан), спор остаётся там, где его оставил тред: тривиально обходимая растяжка обходится Anthropic дороже в доверии разработчиков, чем отнимает у любого конкурента, ради поимки которого её и сделали.
Получайте такие разборы каждый день
Главные истории Hacker News — на email, в Telegram или RSS.
Anthropic выпустила Sonnet 5 и хвалится, что та специально хуже взламывает
На странице запуска Claude Sonnet 5 указана способность, которую модель растеряла: в тестах на разработку эксплойтов она набирает 0,0% — далеко позади Opus 4.8. Anthropic подаёт эту деградацию как фичу.