Код, созданный ИИ, может представлять опасность из-за фальшивых библиотек.

Большие языковые модели (LLM) при создании программного кода часто предлагают использовать несуществующие сторонние библиотеки, что может привести к атакам через подмену зависимостей. Об этом сообщает ArsTechnica.

Согласно исследованию, в среднем каждое второе сгенерированное 16-ю популярными LLM предложение кода содержит ссылки на фиктивные пакеты. В одном из экспериментов было проанализировано более 576 тысяч фрагментов кода, из которых 440 тысяч зависимостей оказались вымышленными. Это происходит потому, что модели, обученные на больших объемах текстовых данных, «придумывают» названия библиотек, ориентируясь на шаблоны, а не на реальные данные из репозиториев.

Такие ошибки могут быть использованы для атак типа dependency confusion или slopsquatting. Злоумышленникам достаточно зарегистрировать пакет с именем, придуманным ИИ. Если разработчик установит такой пакет без предварительной проверки, это может привести к попаданию вредоносного кода в его систему. Уже были случаи, когда тестовые пакеты, созданные в рамках исследований, скачивались десятки тысяч раз.

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

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