Сгенерированный код может быть опасным: в чем дело

Оказывается, искусственный интеллект не просто ускоряет написание кода, но и придумывает несуществующие библиотеки, которые легко превращаются в ловушку для всей индустрии.
Автор новостей
мужчина пишет код на компьютере
Вайб-кодинг несет скрытую опасностьИсточник: Unsplash

Когда разработчик использует генератор кода на базе искусственного интеллекта, он ожидает получить рабочий фрагмент программы, который можно быстро внедрить в проект. Однако современные языковые модели часто предлагают подключить к проекту сторонние библиотеки, которых на самом деле не существует. Это не просто ошибка — это новая угроза для всей цепочки поставок программного обеспечения, сообщает Arstechnica.

Исследования показали: если дать 16 популярным LLM задачу сгенерировать код, почти в каждом втором случае они предложат использовать несуществующий пакет. За этим стоит простая логика — искусственный интеллект «воображает» названия библиотек, которых не было в репозиториях до этого момента. В одном эксперименте из 576 тысяч сгенерированных примеров кода 440 тысяч зависимостей оказались вымышленными.

Опасность в том, что злоумышленник может зарегистрировать пакет с таким же именем, какое «придумал» ИИ. Если кто-то без проверки установит этот пакет, в систему попадет вредоносное ПО. Так работает атака, которую называют dependency confusion или slopsquatting. Раньше хакеры пытались ловить опечатки в названиях библиотек (typosquatting), теперь же достаточно просто следить за тем, какие имена придумывает искусственный интеллект, и вовремя их занять.

Программист печатает на ноутбуке
ИИ может выдумывать не только факты, но и целые библиотеки кодаИсточник: Freepik

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

Проблема усугубляется тем, что многие языки программирования, например, Python и JavaScript, активно используют централизованные репозитории и внешние зависимости. Разработчики привыкли доверять рекомендациям инструментов и не всегда проверяют, существует ли библиотека на самом деле. Это открывает широкие возможности для атак на самую основу современного ПО.

код на экране ноутбука
ИИ придумывает названия централизованных репозиториев и внешних зависимостейИсточник: Unsplash

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

Но не все согласны с опасностью, которые несут ИИ для кода. Например, глава Open AI призвал учиться использованию ИИ вместо программирования, подробности в статье.