Атака «Flooding Dropper»: массовый вброс вредоносных npm-пакетов
В прошлом месяце исследователи кибербезопасности зафиксировали масштабную атаку, получившую название «Flooding Dropper». За 48 часов злоумышленник опубликовал почти 800 вредоносных пакетов в реестре npm. Особенность этой кампании заключалась в том, что пакеты не маскировались под существующие популярные библиотеки. Вместо этого они использовали названия, которые звучали правдоподобно, но на самом деле были вымышленными.
Этот метод является частью нового класса угроз, известного как slopsquatting. Его суть заключается в эксплуатации так называемых «галлюцинаций» нейросетевых моделей — склонности больших языковых моделей придумывать факты или объекты, которых не существует.
Механика угрозы: когда искусственный интеллект лжёт о зависимостях
Когда разработчик просит AI-кодингового ассистента (например, GitHub Copilot) предложить библиотеку для решения задачи, модель иногда рекомендует пакет, которого нет ни в одном публичном репозитории. Это и есть галлюцинированный пакет.
Масштаб проблемы был задокументирован в исследовании USENIX Security 2025 года. Учёные сгенерировали более 2 миллионов фрагментов кода с помощью 16 популярных моделей. Результаты показали тревожную статистику:
- В 19.7% случаев код содержал ссылку хотя бы на один несуществующий пакет.
- Открытые модели демонстрировали высокий уровень ошибок — около 22% рекомендаций были ложными.
- Коммерческие модели ошибались реже, но всё равно в 5% случаев предлагали фейковые зависимости.
Главная опасность кроется в предсказуемости этих ошибок. Исследование показало, что 43% придуманных названий воспроизводятся снова и снова при повторении одного и того же запроса. Злоумышленнику не нужно гадать, какой пакет посоветует ИИ. Он может сам опросить те же модели, составить список наиболее часто встречающихся галлюцинаций и зарегистрировать эти имена на платформах вроде npm или PyPI раньше других. После этого остаётся только ждать, пока чей-то проект автоматически установит вредоносную зависимость по совету искусственного интеллекта.
Эта схема уже доказала свою эффективность. Например, вымышленный пакет для Python huggingface-cli набрал более 30 000 загрузок до того, как его обнаружили. Другой пример — вредоносный npm-пакет react-codeshift, который успел распространиться по 237 реальным репозиториям.
Уязвимость no-code/low-code платформ и непрограммистов
Проблема slopsquatting особенно остро стоит для пользователей современных инструментов быстрой разработки, таких как Lovable, Bolt, Base44 и им подобных. При работе с такими платформами пользователь делегирует искусственному интеллекту не только написание логики приложения, но и выбор всех необходимых зависимостей. Часто этот процесс происходит полностью в фоновом режиме, без участия терминала и ручной проверки файла package.json.
Для нетехнических специалистов, использующих такие инструменты, практически невозможно отличить реально существующую библиотеку от убедительно звучащей подделки. Именно эту брешь и эксплуатирует атака типа slopsquatting. Пользователь получает готовое приложение, которое работает, но содержит скрытый вредоносный код, способный украсть данные или нарушить работу сервиса.
Как защититься от hallucinated packages
Противодействие таким атакам требует автоматизированной проверки. Поскольку проблема возникает на стыке работы ИИ и установки зависимостей, решение должно интегрироваться непосредственно в рабочий процесс.
Современные инструменты безопасности начинают предлагать специализированные проверки. Например, проверка реестра живых пакетов (npm registry) в реальном времени позволяет убедиться, что каждая запись в вашем файле package.json соответствует реально существующей библиотеке. Дополнительно сверка с базами уязвимостей, такими как Google's OSV.dev, помогает выявить известные угрозы среди установленных зависимостей. Такой многоуровневый подход позволяет заблокировать установку вредоносного кода ещё до того, как он попадёт в вашу систему.