Слопсквоттинг: каждый пятый пакет от LLM не существует, и хакеры этим пользуются
Слопсквоттинг звучит как техническая экзотика, но бьёт по каждому, кто копирует код из ChatGPT или Claude и запускает установку пакетов не глядя, а 3 июня 2025 года, после публикации крупного исследования на USENIX Security 2025, стало ясно, что масштаб проблемы огромен.
Каждый пятый пакет, который рекомендует языковая модель в сгенерированном коде, не существует в реальных реестрах. Злоумышленник может зарегистрировать выдуманное название первым и подсунуть вредоносный код всем, кто бездумно скопирует строку установки.
Термин slopsquatting (слопсквоттинг) появился в апреле 2025 года. Его предложил Сет Ларсон, отвечающий за безопасность в Python Software Foundation. Слово собрано из двух частей: slop (так британский исследователь ИИ Саймон Уиллисон назвал однотипный фальшивый контент от LLM, «помои») и squatting (захват, как в typosquatting, опечаточном захвате доменов). В массы термин ушёл благодаря посту Эндрю Несбитта, автора сервиса Ecosyste.ms. За несколько дней о нём написали Socket, «Лаборатория Касперского» и другие компании в сфере информационной безопасности.
Суть проста: большая языковая модель (LLM, large language model) галлюцинирует (уверенно выдумывает) названия библиотек для Python, npm, Go, Rust. Атакующий предугадывает эти названия, регистрирует пакет с вредоносным кодом и ждёт, пока разработчик скопирует команду установки из ответа ИИ.
Почему модели врут с таким упорством?
У языковых моделей нет доступа к реестру PyPI или npm в момент генерации кода. Даже когда инструменты подключены, модель, по наблюдению авторов исследования, часто ими не пользуется. Вместо честного «я не знаю подходящей библиотеки» модель выдумывает правдоподобное название и уверенно объясняет, зачем его ставить. Это следствие RLHF (обучения с подкреплением на обратной связи от человека, когда модель натренирована быть максимально полезной любой ценой).
Исследование «We Have a Package for You!» (Spracklen и соавторы, USENIX Security 2025, arXiv:2406.10279) дало конкретные цифры. Учёные протестировали 16 моделей генерации кода, от GPT-4 до CodeLlama и DeepSeek, и сгенерировали 576 000 образцов кода на Python и JavaScript.
Главные результаты:
- Примерно каждый пятый рекомендованный пакет оказался вымышленным
- У открытых моделей (open-source) доля галлюцинаций (выдуманных ответов) выше: примерно каждый четвёртый или пятый пакет
- 43% галлюцинаций повторялись стабильно во всех 10 повторных прогонах одного и того же запроса
- 58% повторялись хотя бы дважды из десяти
- 81% уникальных вымышленных имён встретились только у одной из 16 моделей: модели в основном выдумывают разные пакеты, а не одни и те же
Устойчивость галлюцинаций и делает атаку реальной: если модель стабильно генерирует одно и то же несуществующее имя, злоумышленнику достаточно зарегистрировать его один раз.
Первый практический пример появился ещё до термина
Ещё в 2023 году исследователь Бар Ланьядо заметил, что модели упорно советуют устанавливать huggingface-cli, пакет, которого не существовало (настоящий инструмент ставится через huggingface_hub[cli]). Он зарегистрировал пустышку с этим именем, и за три месяца её скачали более 30 000 раз. Команда установки даже попала в README одного из репозиториев Alibaba.
Это наглядная демонстрация: атака не требует сложной инфраструктуры. Достаточно одного предсказуемого имени и одной регистрации.
Что понадобится
- Любой редактор кода и терминал
- Доступ к реестру пакетов, который вы используете (PyPI, npm, Go Modules)
- Привычка проверять каждый пакет перед установкой, время на проверку одного имени: 30 секунд
- Для продвинутой защиты: инструменты SCA (Software Composition Analysis, анализ состава ПО), например Socket, Snyk или Sonatype
Пошаговая инструкция: как не попасться на слопсквоттинг
-
Получите код от ИИ-ассистента, но не запускайте установку сразу. Скопируйте список импортов и зависимостей в отдельный файл.
-
Проверьте каждое имя пакета в реестре вручную. Для Python откройте pypi.org и вбейте название. Для JavaScript проверьте на npmjs.com. Если пакет не находится, это галлюцинация.
# Быстрая проверка существования пакета в PyPI из терминала
pip index versions csv_utils
# Если пакет не найден — это выдумка модели
-
Если пакет существует, проверьте его возраст и автора. Откройте страницу пакета и посмотрите: когда создан, сколько загрузок, кто автор, есть ли репозиторий с кодом. Пакет без репозитория, созданный недавно, с нулевой историей, это красный флаг.
-
Попросите модель переписать код без сторонних библиотек. Прямо в промпте (запросе к модели) укажите:
Перепиши этот код, используя только стандартную библиотеку Python.
Не предлагай сторонних пакетов.
-
Для рабочих проектов подключите автоматическую проверку зависимостей. Инструменты типа Socket или Snyk умеют выявлять подозрительные пакеты до установки. В CI/CD-пайплайне (конвейере автоматической сборки и доставки кода) настройте проверку новых зависимостей при каждом коммите.
-
Фиксируйте версии зависимостей. Используйте lock-файлы (
package-lock.jsonдля npm,poetry.lockдля Python). Не ставьте пакеты по имени без фиксации версии.
Запрос в ChatGPT: «Напиши простой парсер CSV на Python, используй оптимальное решение».
Модель выдаёт:
import csv_utils
from fastcsv_parser import parse_csv
Проверяем в терминале:
pip index versions csv_utils
# ERROR: No matching distribution found for csv_utils
pip index versions fastcsv_parser
# ERROR: No matching distribution found for fastcsv_parser
Оба пакета не существуют. Переформулируем промпт: «Перепиши без сторонних библиотек, только стандартный модуль csv». Модель выдаёт рабочий код на встроенном модуле csv, который есть в каждой установке Python.
Доверять знакомому названию. Если пакет звучит логично (flask-caching-pro, numpy-extended), это не значит, что он настоящий. Злоумышленники специально выбирают правдоподобные имена.
Проверять только первый пакет, а остальные ставить по инерции. Проверяйте каждое имя. Одна вредоносная зависимость в цепочке компрометирует весь проект.
Считать, что локальные зеркала защищают. Зеркала PyPI и npm, которые используют в России и СНГ, копируют содержимое основных реестров. Если вредоносный пакет зарегистрирован в оригинальном PyPI, он попадёт и на зеркало.
Полагаться на «у меня платная версия, она не врёт». Исследование USENIX Security 2025 показало: галлюцинации есть и у коммерческих моделей, включая GPT-4. Доля ниже, чем у открытых моделей, но риск не нулевой.
Что делать прямо сейчас, по ролям
Автору Дзена и копирайтеру. Если вы используете ИИ-ассистентов для написания скриптов автоматизации, парсеров или ботов для своих каналов, каждую строку pip install или npm install проверяйте в реестре. Тридцать секунд проверки дешевле, чем утечка токенов доступа к вашему каналу.
Маркетологу. Ваши подрядчики-разработчики могут копировать код из ChatGPT. Внесите в техзадание обязательную проверку зависимостей и требование фиксировать lock-файлы. Это не перестраховка, а гигиена.
Предпринимателю в РФ и СНГ. Локальные зеркала пакетных реестров не фильтруют вредоносные пакеты автоматически. Из доступных в России инструментов проверки: «Лаборатория Касперского» уже пишет о слопсквоттинге и предлагает свои решения для анализа зависимостей. Для небольших команд минимальный шаг: ручная проверка каждого нового пакета перед добавлением в проект.
Мы двадцать лет учили разработчиков не доверять незнакомым пакетам, а потом всем скопом поверили языковым моделям. По моим наблюдениям, большинство пользователей ИИ-ассистентов в России вообще не задумываются о проверке зависимостей: код сгенерирован, работает, зачем копать. Но слопсквоттинг бьёт именно по этому автоматизму. Честная оговорка: полностью защититься нельзя, пока модели продолжают галлюцинировать. Но можно свести риск к минимуму тремя привычками: не ставить пакет, не проверив его в реестре; просить модель обойтись стандартной библиотекой; фиксировать версии в lock-файлах. Это не паранойя. Это базовая цифровая гигиена, которая в 2025 году стала обязательной для каждого, кто работает с ИИ.
Научитесь работать с ИИ безопасно
В dzen.guru мы разбираем практические приёмы работы с нейросетями, включая проверку кода и защиту от галлюцинаций
Попробовать инструменты dzen.guruТридцать секунд на проверку одного пакета или часы на восстановление после компрометации. Выбор, который теперь приходится делать каждый раз, когда ИИ-ассистент уверенно предлагает вам что-то установить.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Как собрать кубик Рубика 3х3: нейросеть достигла 98,4% оптимальных решений
Собрать кубик Рубика 3х3 можно двумя путями: по классическим алгоритмам из поисковика или с помощью нейросетевой эвристики, которая сама прокладывает маршрут к…

«Диасофт» запустила конвейер из 30 ИИ-агентов: ИИ для бизнеса покрывает путь от записи встречи до релиза
Корпоративная разработка в России всё чаще упирается не в скорость написания кода, а в то, что происходит до и после него, и 7 октября компания «Диасофт»…

Tuna внедрила AIOps-агента в шесть кластеров: гипотеза сбоя за 4 минуты и несколько рублей
Компания Tuna внедрила HolmesGPT, открытого SRE-агента (программу, которая сама расследует причины сбоев в серверной инфраструктуре), в шесть…
Комментарии