Код, сформированный алгоритмами искусственного интеллекта, часто включает ссылки на несуществующие внешние библиотеки, что создаёт риски для цепочек поставок в области программного обеспечения. К такому заключению пришли учёные из Университета Техаса в Сан-Антонио. Их исследование будет представлено на конференции USENIX Security Symposium. Анализ охватил 576 тысяч фрагментов кода, созданных 16 популярными языковыми моделями, включая решения от OpenAI и открытые платформы. В 19,7% случаев обнаружены «галлюцинативные» зависимости — пакеты, отсутствующие в общедоступных репозиториях.
Такие ошибки особенно опасны из-за их повторяемости: 43% «воображаемых» названий возникали более 10 раз, а 58% появлялись хотя бы в 10 попытках. Это даёт злоумышленникам возможность предсказуемо разработать вредоносные пакеты с этими именами и внедрять их в законные программы. По словам ведущего автора исследования Джозефа Спраклена, если разработчик установит фальшивую зависимость, то злоумышленники могут запустить свой код на его системе, что может привести к утечке данных или установке бэкдоров.

Наибольшей уязвимости подвержены открытые модели, такие как CodeLlama и DeepSeek, которые ошибались в 22% случаев в сравнении с 5% у коммерческих аналогов. Учёные объясняют это разницей в размере моделей: коммерческие решения, такие как ChatGPT, имеют в 10 раз больше параметров, что улучшает точность. В то же время в рамках открытых моделей размер не влиял на уровень ошибок, что указывает на значимость иных факторов: обучающих данных, тонкой настройки и защитных механизмов.
Значимую роль играл и язык программирования: в JavaScript-коде обнаружено 21% несуществующих зависимостей против 16% у Python. Исследователи считают, что причина в более развитой экосистеме JavaScript, включающей большее количество пакетов и сложную структуру пространств имён, что затрудняет точную идентификацию названий.
Уязвимость усиливает риск атак, известных как «подмена зависимостей» — когда злоумышленники размещают вредоносные пакеты под именами легитимных, но с более поздними версиями. В 2021 году такой метод применялся против компаний Apple, Microsoft и Tesla. По прогнозам технического директора Microsoft Кевина Скотта, к 2030 году 95% программ будет создаваться с помощью ИИ, что увеличит опасность подобных угроз.
«Галлюцинации в языковых моделях — это не просто случайные ошибки, а системная уязвимость», — подчеркнул Спраклен. Он отметил, что разработчикам крайне важно проверять каждую зависимость, даже если она предложена ИИ. Исследователи призвали сообщество укрепить системы проверки кода и разработать инструменты для автоматического выявления «галлюцинативных» пакетов, чтобы уменьшить риски для всей экосистемы разработки.
Источник: iXBT



