Цепочка поставки · 28 марта 2024

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

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

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

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

Бар Ланьядо (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. Пакет оставался безвредной заглушкой.

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

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

Меры, которые предотвратили бы инцидент

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

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

Lasso Security · 2024-03-28Diving into AI Package HallucinationsThe Register · 2024-03-28AI bots hallucinate software packages and devs download them