Что произойдет, если большая языковая модель (LLM) добавит в код пакет, которого никогда не существовало? Разработчик может принять рекомендацию за корректную, а злоумышленник – опубликовать под придуманным именем вредоносный пакет. Тогда ошибка модели превращается в возможность атаки на цепочку поставки.
Перед вами обзор исследования We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs. Авторы проверили 16 моделей, сгенерировали 576 000 образцов кода на Python и JavaScript и изучили, как часто в ответах появляются несуществующие пакеты. Их работу отметили наградой “Distinguished Paper Award” на конференции USENIX Security 2025.
Оригинальная статья занимает 15 страниц без учета библиографии и подробно описывает предыдущие исследования, устройство эксперимента и статистические результаты. Мы сохранили основные детали методики, наиболее важные выводы и проверенные авторами способы снизить риск. При этом важно учитывать возраст данных. Модели отбирались по состоянию на 20 января 2024 года, а списки пакетов PyPI и npm были получены 10 января 2024 года. Исследование показывает свойства проверенных систем в заданных условиях, но его цифры не стоит автоматически переносить на современные модели.
Несмотря на заметный прогресс моделей за последний год, проблема слопсквоттинга не ушла. Наиболее распространенные механизмы подобных галлюцинаций остаются неизменными: модель переносит библиотеки между экосистемами, достраивает ожидаемые…