Исследователи безопасности выявили новую потенциальную угрозу цепочкам поставок программного обеспечения, исходящую от кода, сгенерированного искусственным интеллектом, с помощью техники, называемой "слоупсквоттинг".
Галлюцинации предсказуемы, что делает их привлекательными для злоумышленников
Что особенно беспокоит, так это то, что исследование показывает, что 58 процентов вымышленных названий пакетов появляются несколько раз в похожих запросах. Такая предсказуемость делает их особенно привлекательными объектами для злоумышленников. Socket, компания, специализирующаяся на безопасности с открытым исходным кодом, предупреждает, что эти шаблоны представляют собой "предсказуемую цель атаки". Из вымышленных названий 38 процентов напоминали настоящие пакеты, 13 процентов были опечатками, а остальные были чистой выдумкой.
Картинка сгенерирована Midjourney через сервис KolerskyAI
Для защиты от этих угроз исследователи рекомендуют несколько мер: никогда не использовать имена пакетов без проверки, указывать номера версий (используя файлы блокировки), внедрять проверку хэша и всегда тестировать сгенерированный искусственным интеллектом код в изолированных средах. Кроме того, уменьшение параметра "температура", который контролирует случайность вывода искусственного интеллекта, может помочь минимизировать галлюцинации.
Термин "слоупсквоттинг", придуманный исследователем безопасности Сетом Ларсоном, описывает атаку, при которой злоумышленники публикуют вредоносные пакеты под вымышленными именами - именами, которые модели искусственного интеллекта, такие как ChatGPT или CodeLlama, часто предлагают неправильно. В отличие от хорошо известной техники "опечатывания", эти имена основаны не на опечатках известных библиотек, а на именах пакетов, полностью сфабрикованных искусственным интеллектом.
Проблема возникает из-за того, что генеративные модели искусственного интеллекта часто предполагают библиотеки, которые на самом деле не существуют при написании кода. Исследование, опубликованное в марте 2025 года, показало, что примерно 20 процентов проанализированных примеров кода ИИ (из общего числа 576 000 фрагментов кода Python и JavaScript) содержали несуществующие пакеты. Даже устоявшиеся инструменты, такие как ChatGPT-4, примерно в 5 процентах случаев используют пакеты hallucinate, в то время как модели с открытым исходным кодом, такие как DeepSeek, WizardCoder или Mistral, демонстрируют значительно более высокие показатели. Исследовательская группа еще не тестировала новые модели, но галлюцинации остаются проблемой даже для самых продвинутых языковых моделей.
Эти галлюцинирующие названия пакетов часто звучат правдоподобно. Разработчики, использующие код, сгенерированный искусственным интеллектом, могут попытаться установить такие пакеты, не осознавая, что их не существует. Злоумышленники могли зарегистрировать эти вымышленные имена в репозиториях, таких как PyPI или npm, и публиковать вредоносный код под ними. При установке такого пакета вредоносный код проникает в программное обеспечение без предупреждения. Поскольку многие разработчики полагаются на код, сгенерированный искусственным интеллектом, или обрабатывают его автоматически, это создает потенциальную точку входа для атак.