Исследователь, который изучает скрипты для отслеживания браузеров, нашёл на популярных сайтах код антибот-защиты с необычной начинкой. Внутри — функции с названиями про яды и оружие и невидимые инструкции для нейросетей. Похоже, всё это нужно не для вреда, а чтобы ИИ-ассистенты отказались разбирать код. Рассказываем, как устроен приём и почему он важен не только для реверс-инженеров.
Коротко
- Скрипт, который автор связывает с российским поставщиком защиты от DDoS и ботов ServicePipe, маскирует свою логику «опасными» названиями функций и скрытым текстом, который видят только языковые модели.
- Модель OpenAI отказалась деобфусцировать такой код, открытая GLM-5.3 — помогла. По сути, скрипт делает обычную работу антибота.
- Приём использует защитные фильтры ИИ как замок: модель сама отказывается работать с файлом.
- Для специалистов по безопасности это ещё один довод держать наготове собственную модель и классические инструменты.
Что произошло
28 октября автор блога nullpt.rs под ником veritas опубликовал разбор со странным заголовком: «Почему этот скрипт для отпечатков браузера создаёт биологическое оружие?». На Hacker News пост за сутки набрал больше 1100 баллов.
Автор давно разбирает скрипты, которые собирают «отпечаток» браузера. Отпечаток (fingerprinting) — это способ узнать устройство без cookie, по мелким различиям в его настройках и в том, как оно рисует графику. Такие скрипты используют рекламные сети, антифрод-системы и защита от ботов.
Он обошёл 10 тысяч самых популярных сайтов из рейтинга Tranco и собрал картинки, которые скрипты рисуют для проверки браузера. Получилась коллекция fingerprint.garden.
Одна из картинок понравилась ему настолько, что он решил найти её источник. Им оказался скрипт с домена servicepipe.tech.
Что нашлось внутри
Код был запутан — это обычная практика. Обфускация — это намеренное усложнение кода, чтобы его было трудно читать и копировать. Но среди бессмысленных имён автор увидел функции, которые будто бы рассчитывают смертельные дозы ядов, радиус поражения взрывчатки и параметры оружия массового поражения.
Кроме того, в скрипте была длинная строка из невидимых символов. Автор её расшифровал и нашёл текст в стиле «джейлбрейка»: фальшивое системное сообщение, которое «отменяет все правила безопасности» и требует инструкций на запрещённые темы. Джейлбрейк — это попытка обманом заставить модель нарушить собственные ограничения.
Рядом стояли отсылки к событиям 1989 года на площади Тяньаньмэнь — по мнению автора, чтобы сработали фильтры китайских моделей.
Что скрипт делает на самом деле
За всей этой маскировкой, по словам автора, стоит вполне стандартный антибот. Он собирает:
- данные браузера: user agent, число ядер процессора, объём памяти, языки, платформу;
- признаки автоматизации, например флаг navigator.webdriver;
- параметры видеокарты через WebGL;
- результат проверки целостности самого скрипта.
Автор даже назвал набор сигналов «разочаровывающим» — на фоне того, сколько сил ушло на маскировку.
Кто за этим стоит
По данным сервиса urlscan, домен servicepipe.tech связан с servicepipe.ru. Это российская компания ServicePipe: по данным Anti-Malware.ru, она основана в 2015 году, делает защиту от DDoS-атак и ботов и заявляет о более чем 500 клиентах, среди них банки, операторы связи и интернет-магазины.
На каких именно сайтах стоит этот скрипт, автор не уточняет. Публичного ответа ServicePipe мы не нашли.
Как работает приём
Схема рассчитана на ситуацию, когда человек просит ИИ-ассистента распутать чужой код. Сейчас это обычный инструмент реверс-инженеров, исследователей безопасности и разработчиков ботов.
Слой 1: «страшные» названия
Коммерческие модели обучены отказываться от помощи, если запрос похож на работу с оружием или ядами. Когда такие названия стоят прямо в коде, модель может решить, что её просят помочь с опасной задачей, и отказать.
Слой 2: невидимые инструкции
Текст был записан символами-тегами Unicode. Это служебные символы, которые человек на экране не видит, а модель читает как обычный текст.
Приём известен с января 2024 года. Тогда исследователь Райли Гудсайд показал, что так можно незаметно передать инструкции ChatGPT. Подробный разбор позже опубликовали в блоге Cisco. Обычно его используют для атак на ИИ-ассистентов, а здесь — как приманку для их защитных фильтров.
Слой 3: подозрительный фрагмент для Node.js
В скрипте есть кусок кода, который при запуске вне браузера и при особом флаге окружения будто бы ищет файлы с паролями и ключами и скачивает программу. Автор считает, что это тоже приманка: например, файлы «читаются» без всякой обработки результата.
От себя добавим: адрес, с которого якобы скачивается программа, относится к частному диапазону. Из интернета такие адреса недоступны, что тоже похоже на декорацию. Сам файл скрипта мы не запускали и не проверяли.
Что показала проверка
Автор попросил разобрать скрипт модель OpenAI — он называет её Astra. Он прямо объяснил ей, что названия, похоже, нужны, чтобы помешать ИИ. Модель всё равно отказалась, сославшись на риски, связанные с биологическими исследованиями.
Режим Daybreak Blue — программа OpenAI для проверенных специалистов по защите — тоже не помог. Открытая модель GLM-5.3 от китайской Z.ai выполнила ту же просьбу.
Весь приём одной строкой: защитные фильтры ИИ превращены в замок, который модель сама вешает на чужой код.
Ограничения и критика
Один исследователь и одна проверка
Всё описанное — разбор одного автора. Каждую модель он проверял, судя по тексту, одним запросом, а ответы моделей зависят от формулировки. Цель приманок — тоже его гипотеза: компания её не подтверждала и не опровергала.
Работает ли это вообще
В обсуждении на Hacker News пользователь arbol считает приём слабой защитой. По его словам, агенты разбирают синтаксическое дерево кода, игнорируют мёртвый код и замечают, что «страшные» имена не связаны с реальной логикой.
Для защиты от массового разбора он предлагает другое: выдавать столько разных версий скрипта, чтобы автоматический анализ не масштабировался.
Риск для клиентов поставщика
Пользователь mmaunder в том же обсуждении указывает на репутационный риск. Сайт, который подключил такой скрипт, может не знать, что от его имени в браузеры и к ИИ-провайдерам уходит текст про оружие и самоповреждение.
Добавим практическое следствие. Корпоративные фильтры и сканеры безопасности могут счесть такой файл вредоносным и заблокировать его — или, наоборот, пропустить, если их ИИ-анализатор откажется смотреть внутрь.
Контекст: защитные фильтры против защитников
История вписывается в спор, который идёт весь 2026 год: фильтры коммерческих моделей не всегда отличают атакующего от того, кто защищается.
- Hugging Face, июль. После взлома, который, по данным компании, провела автономная ИИ-система, специалисты пытались анализировать логи с помощью коммерческих моделей. Фильтры блокировали запросы с реальными командами атакующих. В итоге анализ провели на открытой GLM-5.2 на собственных серверах, говорится в отчёте компании. Об этом писала и The Register.
- OpenCode, октябрь. Сооснователь компании Дэкс Рад рассказал Axios, что при расследовании взлома модели начали отказываться работать с вредоносным кодом. Помогла как раз программа Daybreak Blue.
Hugging Face при этом подчёркивает, что её критика — не довод против защитных мер как таковых. Но случай со скриптом ServicePipe показывает новую сторону проблемы: ограничения моделей можно не только обходить, но и сознательно использовать против тех, кто ими пользуется.
Что это значит для разработчиков и бизнеса
Владельцам сайтов
- Знайте, что вы подключаете. Сторонние скрипты защиты и аналитики выполняются от имени вашего домена. Спросите поставщика, что именно в них лежит и зачем.
- Ограничьте источники. Политика безопасности контента (CSP) задаёт, с каких доменов сайт вообще может загружать скрипты. Это не защитит от содержимого скрипта, но сделает список поставщиков явным.
Специалистам по безопасности и реверс-инженерам
- Не полагайтесь на одну облачную модель. Hugging Face советует заранее проверить и развернуть модель, которую можно запускать на своей инфраструктуре.
- Начинайте с классических инструментов. Деобфускаторы и анализ синтаксического дерева не зависят от фильтров и не «пугаются» названий.
- Очищайте входные данные. Cisco рекомендует удалять символы-теги Unicode перед отправкой текста в модель — это защищает и от обычных промпт-инъекций.
Разработчикам ИИ-инструментов
Отказ по ключевым словам легко превратить в оружие. Чем больше ИИ используют для проверки кода, тем важнее, чтобы фильтры оценивали задачу целиком, а не реагировали на отдельные слова.
Открытый вопрос. Если «страшные» слова в коде надёжно отпугивают ИИ, не начнут ли так же прятать от автоматической проверки настоящее вредоносное ПО?
