Slopsquatting, Phantom Domains и HalluSquatting: единая ИИ-атака и методы защиты

Исследователи ActiveState выяснили, что slopsquatting, phantom squatting и HalluSquatting — это один и тот же паттерн атаки на ИИ-агентов, которые доверяют галлюцинированным именам пакетов, репозиториев и доменов. Рассказываем, как работает этот вектор и как защитить конвейер разработки.

Slopsquatting, Phantom Domains и HalluSquatting: единая ИИ-атака и методы защиты

Slopsquatting, phantom squatting и HalluSquatting — три названия, которые звучат как разные угрозы, но на самом деле описывают один и тот же механизм атаки. Все они эксплуатируют так называемый паттерн позднего связывания, при котором ИИ-ассистенты для программирования доверяют галлюцинированным именам пакетов, репозиториев или доменов, открывая путь для внедрения вредоносного кода. Компания ActiveState, специализирующаяся на управлении зависимостями, опубликовала анализ этой проблемы и предложила конкретные меры защиты.

Суть атаки проста: разработчик просит ИИ-агента, например GitHub Copilot или Cursor, добавить в проект библиотеку для решения задачи. Модель, не найдя точного соответствия в своих данных, генерирует правдоподобное, но несуществующее имя пакета. Если такое имя уже зарегистрировано злоумышленником в репозитории пакетов (например, PyPI или npm), то при установке в проект попадёт вредоносный код. Аналогично работает с доменами: ИИ может порекомендовать несуществующий URL, который атакующий заранее зарегистрировал.

Паттерн позднего связывания: почему ИИ-агенты уязвимы

Ключевая особенность этих атак — так называемое позднее связывание. Обычные инструменты разработки проверяют существование пакета или домена в момент обращения. ИИ-агент, напротив, генерирует имя на основе вероятностных закономерностей из обучающих данных, не выполняя проверку в реальном времени. Это создаёт окно возможностей для злоумышленников: они могут заранее регистрировать «фантомные» имена, которые ИИ, скорее всего, предложит.

ActiveState называет этот паттерн единым для всех трёх вариантов атаки. Slopsquatting — это регистрация пакетов с именами, которые ИИ генерирует «на глаз», часто с опечатками или слегка изменёнными вариантами популярных библиотек. Phantom squatting — создание полностью вымышленных имён, которые не существуют в реальности, но выглядят логично для модели. HalluSquatting — более общий термин, охватывающий и пакеты, и домены, и репозитории, где ИИ «галлюцинирует» несуществующие сущности.

Как это работает на практике

Представьте, что разработчик просит Copilot добавить в проект библиотеку для работы с JSON Web Tokens. Модель может предложить пакет pyjwt-helper, который не существует в PyPI. Злоумышленник, предвидя такой запрос, заранее регистрирует пакет с этим именем и размещает в нём вредоносный код, который выполняется при установке. Разработчик, доверяя ИИ, устанавливает пакет без проверки, и код попадает в конвейер.

Аналогичная схема работает с доменами: ИИ-агент может порекомендовать URL для API или документации, который ведёт на фишинговый сайт. В случае с репозиториями — модель может указать на GitHub-репозиторий, который на самом деле является клоном с вредоносным кодом.

Предыстория и контекст: рост ИИ-агентов в разработке

Проблема стала особенно актуальной в последние годы, когда ИИ-ассистенты массово вошли в повседневную практику разработчиков. По данным GitHub, Copilot используют более 20 миллионов разработчиков, а аналогичные инструменты от Google, Amazon и OpenAI набирают популярность. Чем больше кода генерируется автоматически, тем больше поверхность атаки для злоумышленников.

Ранее исследователи уже предупреждали о рисках «галлюцинаций» ИИ в контексте безопасности, но именно ActiveState впервые систематизировала эти угрозы как единый паттерн. В своём отчёте они подчёркивают, что атаки нацелены не на саму модель, а на доверие разработчика к её выводам.

Чем это отличается от классического typosquatting?

Классический typosquatting — это регистрация доменов или пакетов с опечатками популярных имён, например gogle.com вместо google.com. Он не связан с ИИ и существует десятилетиями. Slopsquatting и его разновидности — это эволюция той же идеи, но с использованием ИИ-агентов как «инструмента» для распространения вредоносных имён. Разница в том, что злоумышленник не полагается на случайную опечатку, а предсказывает, какое имя сгенерирует модель.

Технические детали: как защититься от атак на основе галлюцинаций

ActiveState предлагает два основных метода защиты: предварительная проверка и управляемое управление зависимостями. Предварительная проверка (pre-fetch verification) подразумевает, что все имена пакетов, репозиториев и доменов, предлагаемые ИИ, должны проверяться на существование и легитимность до того, как они будут использованы. Это можно реализовать через специальные плагины или скрипты, которые автоматически запрашивают реестры пакетов и DNS-серверы.

Управляемое управление зависимостями (governed dependency management) — это более комплексный подход, который включает использование централизованных реестров, политик безопасности и автоматического сканирования на уязвимости. Например, можно настроить CI/CD-конвейер так, чтобы он блокировал установку пакетов, не прошедших проверку, или использовать инструменты вроде Snyk и Dependabot для мониторинга зависимостей.

ActiveState также рекомендует обучать разработчиков не доверять слепо ИИ-агентам и всегда проверять предлагаемые имена. В их отчёте приведён пример, как простая проверка в реестре PyPI могла бы предотвратить установку вредоносного пакета.

Кого затронет и как

В первую очередь под угрозой разработчики, использующие ИИ-ассистентов в повседневной работе. Это касается как индивидуальных программистов, так и крупных компаний, которые внедрили Copilot или аналогичные инструменты в свои процессы. Для бизнеса риски особенно высоки: вредоносный код может попасть в производственные системы, привести к утечке данных или компрометации инфраструктуры.

Для российских разработчиков ситуация усугубляется тем, что многие популярные ИИ-инструменты недоступны или ограничены, что может подтолкнуть к использованию менее проверенных аналогов. Однако базовые принципы защиты остаются теми же: проверка источников, контроль зависимостей и обучение команды.

Что будет дальше

Ожидается, что количество таких атак будет расти по мере распространения ИИ-агентов. ActiveState прогнозирует, что злоумышленники будут автоматизировать процесс регистрации «фантомных» имён, используя сами ИИ-модели для генерации наиболее вероятных вариантов. В ответ на это инструменты разработки уже начинают внедрять встроенные проверки: например, GitHub Copilot теперь предупреждает о подозрительных пакетах, а некоторые реестры вводят обязательную верификацию.

В долгосрочной перспективе возможно появление стандартов безопасности для ИИ-агентов, аналогичных тем, что существуют для веб-приложений. Но пока ответственность лежит на разработчиках и компаниях, которые должны внедрять защитные меры самостоятельно.

Итог

Slopsquatting, phantom squatting и HalluSquatting — это не разные угрозы, а одно и то же явление: эксплуатация доверия к ИИ-агентам. Понимание этого паттерна — первый шаг к защите. Используйте предварительную проверку, управляемые зависимости и обучайте команду — и вы сможете значительно снизить риск попадания вредоносного кода в ваш конвейер. Следите за обновлениями инструментов разработки: встроенные механизмы защиты становятся всё более совершенными, но ваша бдительность остаётся ключевым фактором.