# Slopsquatting: выдуманный AI пакет huggingface-cli скачали десятки тысяч раз

> Исследователь Lasso Security обнаружил, что языковые модели регулярно рекомендуют несуществующий пакет huggingface-cli, и зарегистрировал его на PyPI в виде пустой заглушки. За три месяца пакет получил более 15 тыс. подлинных загрузок, а инструкция по его установке попала в README репозитория Alibaba. Эксперимент показал, что выдуманные AI названия пакетов могут быть захвачены злоумышленниками.

- Канонический HTML: [/incidents/slopsquatting-huggingface-cli](https://ai-first.tech/incidents/slopsquatting-huggingface-cli)
- Язык: русский
- Редакционный принцип: защитный контекст без вредоносных полезных нагрузок и инструкций обхода.

- Дата: 2024-03-28
- Категория: Цепочка поставки
- Затронуто: Разработчики, устанавливающие зависимости по рекомендациям AI-ассистентов; проекты, включая репозиторий исследования Alibaba
- Критичность: Средний

## Что произошло

Бар Ланьядо (Bar Lanyado) из Lasso Security исследовал, как часто модели GPT-3.5, GPT-4, Gemini и Cohere рекомендуют несуществующие пакеты, на почти 48 тыс. вопросов по пяти языкам программирования. По данным Lasso, доля ответов с выдуманными пакетами составила от 22,2% у GPT-3.5 до 64,5% у Gemini, а 215 выдуманных названий повторялись у разных моделей. В декабре 2023 года исследователь зарегистрировал на PyPI пустой пакет huggingface-cli, который модели часто предлагали вместо настоящей команды установки. По данным The Register, за три месяца пакет получил более 15 тыс. подлинных загрузок, Lasso приводит оценку свыше 30 тыс. загрузок. К февралю 2024 года установка этого пакета была указана в README проекта GraphTranslator от Alibaba. Результаты опубликованы 28 марта 2024 года, позднее подобную атаку стали называть slopsquatting.

## Где нарушилась защита

Граница доверия нарушается в момент, когда разработчик или AI-агент выполняет установку пакета, предложенного моделью, не проверив его существование и происхождение. Если выдуманное название устойчиво повторяется, злоумышленник может заранее зарегистрировать его в публичном реестре. В эксперименте пакет был пустым, но на его месте мог оказаться вредоносный код, который устанавливался бы у всех, кто следует рекомендации.

## Последствия

- Пустой пакет под выдуманным AI названием получил более 15 тыс. подлинных загрузок за три месяца
- Инструкция с выдуманным пакетом попала в документацию проекта крупной компании
- По данным The Register, на момент публикации подтверждённых случаев вредоносного использования этой техники не было

## Реакция

Исследователь опубликовал результаты и рекомендации по перекрёстной проверке пакетов, предлагаемых AI. Пакет оставался безвредной заглушкой.

## Уроки для бизнеса

- Рекомендации AI-ассистентов по зависимостям нужно проверять так же, как код от неизвестного автора
- AI-агенты, самостоятельно устанавливающие пакеты, усиливают этот риск
- Ошибки AI быстро распространяются через документацию и копирование команд
- Публичные реестры пакетов не проверяют, существовало ли название до рекомендации модели

## Меры защиты

- Установка зависимостей только через внутренний прокси-репозиторий со списком одобренных пакетов
- Запрет AI-агентам устанавливать новые пакеты без подтверждения человеком
- Проверка возраста, автора и популярности незнакомых пакетов перед добавлением в проект
- Анализ состава ПО (SCA) в CI с блокировкой новых непроверенных зависимостей

Связанные карточки угроз: A40, A39, A34

## Первоисточники

- [Diving into AI Package Hallucinations](https://www.lasso.security/blog/ai-package-hallucinations) — Lasso Security
- [AI bots hallucinate software packages and devs download them](https://www.theregister.com/2024/03/28/ai_bots_hallucinate_software_packages/) — The Register
