Исследование: Генераторы кода на базе ИИ часто ссылаются на несуществующие библиотеки, что создает возможности для киберпреступников

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

Такие ошибки особенно опасны из-за их повторяемости: 43% «воображаемых» названий возникали более 10 раз, а 58% появлялись хотя бы в 10 попытках. Это даёт злоумышленникам возможность предсказуемо разработать вредоносные пакеты с этими именами и внедрять их в законные программы. По словам ведущего автора исследования Джозефа Спраклена, если разработчик установит фальшивую зависимость, то злоумышленники могут запустить свой код на его системе, что может привести к утечке данных или установке бэкдоров.

Исследование: Генераторы кода на базе ИИ часто ссылаются на несуществующие библиотеки, что создает возможности для киберпреступников
Иллюстрация: Leonardo

Наибольшей уязвимости подвержены открытые модели, такие как CodeLlama и DeepSeek, которые ошибались в 22% случаев в сравнении с 5% у коммерческих аналогов. Учёные объясняют это разницей в размере моделей: коммерческие решения, такие как ChatGPT, имеют в 10 раз больше параметров, что улучшает точность. В то же время в рамках открытых моделей размер не влиял на уровень ошибок, что указывает на значимость иных факторов: обучающих данных, тонкой настройки и защитных механизмов.

Значимую роль играл и язык программирования: в JavaScript-коде обнаружено 21% несуществующих зависимостей против 16% у Python. Исследователи считают, что причина в более развитой экосистеме JavaScript, включающей большее количество пакетов и сложную структуру пространств имён, что затрудняет точную идентификацию названий.

Уязвимость усиливает риск атак, известных как «подмена зависимостей» — когда злоумышленники размещают вредоносные пакеты под именами легитимных, но с более поздними версиями. В 2021 году такой метод применялся против компаний Apple, Microsoft и Tesla. По прогнозам технического директора Microsoft Кевина Скотта, к 2030 году 95% программ будет создаваться с помощью ИИ, что увеличит опасность подобных угроз.

«Галлюцинации в языковых моделях — это не просто случайные ошибки, а системная уязвимость», — подчеркнул Спраклен. Он отметил, что разработчикам крайне важно проверять каждую зависимость, даже если она предложена ИИ. Исследователи призвали сообщество укрепить системы проверки кода и разработать инструменты для автоматического выявления «галлюцинативных» пакетов, чтобы уменьшить риски для всей экосистемы разработки.

 

Источник: iXBT

Читайте также