Представьте: вы общаетесь с AI-ассистентом, просите написать код на Python, а он — бац! — предлагает установить пакет colorama-utils. Звучит безобидно. Но этим пакетом управляет злоумышленник. А сам AI даже не подозревает, что стал пешкой в чужой игре. Это не фантастика, это HalluSquatting — новая техника атаки на большие языковые модели, которая использует их же галлюцинации для развёртывания ботнетов.
Суть: вместо того чтобы взламывать код AI, атакующий заставляет LLM галлюцинировать названия несуществующих, но убедительных пакетов. Пользователь или автоматический агент устанавливает их — и получает backdoor.
Как галлюцинация становится оружием
Классический prompt injection — это когда ты пихаешь вредоносную инструкцию в сам запрос. Здесь всё наоборот: атакующий ничего не внедряет. Он просто публикует в открытых репозиториях (PyPI, npm, crates.io) пакеты с правдоподобными названиями — теми самыми, которые LLM генерирует в своих галлюцинациях. Потом он ждёт, когда модель посоветует «установить quickjson-validator», а кто-то реально его скачает.
Это pull-based атака: жертва сама тянет вредоносный код. И масштаб пугает. В 2025 году исследователи из NVIDIA уже заметили, что до 30% рекомендуемых LLM пакетов могут быть фиктивными. На июль 2026-го — ситуация только усугубилась.
Анатомия атаки: от «colorama-utils» до ботнета
Разберём реальный сценарий. Предположим, атакующий:
- Анализирует частые галлюцинации популярных LLM (GPT-4o, Claude 4, DeepSeek-R1). Выявляет, что модели часто «выдумывают» пакет
sb-json-helperпри вопросах о сериализации. - Регистрирует этот пакет на PyPI. Внутри — легитимный код, но с «приятным бонусом»: при импорте он отправляет данные на C2-сервер и открывает обратный шелл.
- Продвигает запросы к LLM, которые запускают эту галлюцинацию (SEO-статьи, форумы).
- Ждёт. Разработчик просит AI помочь с JSON — LLM генерирует
pip install sb-json-helper. Разработчик копирует команду — ботнет пополняется.
Проблема в том, что даже при ручной проверке пользователь не видит ничего подозрительного: пакет существует, документация есть (сгенерирована тем же AI). А LLM не проверяет свои галлюцинации — у неё нет выхода в интернет, если только это не RAG-система с поиском.
Опасность многократно возрастает, когда LLM работает как автономный агент — пишет, запускает и деплоит код. Тогда команда установки исполняется без участия человека. Мы уже видели такие «подвиги» в BarkingDog — там Telegram-бот на LLM выполнял команды с задержкой и без фильтрации.
Почему это страшнее, чем кажется
HalluSquatting позволяет собирать резидентные ботнеты. Каждая машина, на которой установлен вредоносный пакет, становится узлом. Атакующий может:
- Использовать их для DDoS-атак (лёгкие 100 000 машин — не предел).
- Красть credentials, API-ключи, данные.
- Запускать криптомайнеры (средний чек — упасть в нагрузку).
- Организовывать цепочки supply chain attacks, как недавняя компрометация пакетов LiteLLM в PyPI.
И это только верхушка. Разработчики AI-продуктов, которые интегрируют LLM в свои системы (особенно через API), рискуют тем, что их клиенты будут исполнять вредоносные рекомендации модели. А если модель уязвима к отравлению контекста — то злоумышленник может гарантированно вызвать нужную галлюцинацию. Мы подробно разбирали защиту от prompt injection в продакшне — но HalluSquatting бьёт с другой стороны.
Кто уже под прицелом?
В группе риска — все, кто использует LLM для генерации команд, кода или рекомендаций по установке софта. Особенно:
- Чат-боты с функциями «выполнить код» (Snapchat-бот, о котором мы писали ранее).
- AI-агенты, автоматизирующие DevOps (terraform-скрипты, деплой).
- IDE-плагины с автодополнением (Copilot, Codeium).
- RAG-системы, которые подтягивают документацию с ненадёжных источников.
Мало того: Bleeding Llama показала, что даже локальные модели (Ollama) не застрахованы от утечек контекста, а HalluSquatting добирается до них через команды пользователя. Если локальный AI посоветует установить пакет — пользователь, доверяя «своей» модели, выполнит его без сомнений.
Как защититься: рецепт для параноиков (и не только)
Универсальной таблетки нет, но комбинация трёх методов даёт 90% защиты:
1 Валидация выходов LLM
Перед тем как исполнять команду или рекомендовать пакет, прогоняй генерацию через whitelist известных легитимных имён. Если модель выдала pip install unknown-lib-42 — блокируй. Используй регулярки, проверку по API репозитория (PyPI, npm).
Этот подход мы уже описывали в статье про блокировку нежелательных фраз в llama.cpp — скрипт можно адаптировать под чёрный список пакетов-галлюцинаций.
2 Sandboxing и ограничение прав
AI-агент не должен иметь доступ к продакшену. Используй контейнеры, запускай код в изолированных средах (gVisor, Firecracker). Если агент хочет установить пакет — пусть делает это в песочнице, а человек одобряет. Автоматическое выполнение команд — прямой путь к ботнету. Вспомните ротацию credentials в LiteLLM — без sandbox’а вы просто отдаёте ключи атакующему.
3 Детекция галлюцинаций в рантайме
Существуют методы проверки достоверности утверждений LLM (например, self-consistency, semantic entropy). Если модель с высокой неуверенностью генерирует имя пакета — считай это галлюцинацией. Также можно дообучить модель на датасете реальных пакетов — но это дорого.
Кстати, градиентные атаки показывают, что safety-выравнивание не панацея. Но детекция галлюцинаций — это именно техническое средство, а не социальная инженерия.
Что дальше?
HalluSquatting — ещё не эпидемия, но готовность уже низкая. В ближайшие полгода стоит ожидать первых крупных инцидентов: кто-то потеряет контроль над тысячью серверов из-за того, что Copilot посоветовал не тот пакет. Реальный совет: перестань доверять LLM как эксперту по библиотекам. Проверяй пакеты вручную или автоматически через зеркало официального реестра. И не давай AI-агентам права root — они этого не заслуживают.
P.S. К слову о телефонных мошенниках: LLM под атакой телефонных мошенников — это другой вектор, но он тоже учит нас, что модель не отличит правду от манипуляции. HalluSquatting просто автоматизирует эту манипуляцию. Будьте на шаг впереди.