Недавний эксперимент генерального директора сообщества и конференции для стартапов в сфере SaaS Saastr Джейсона Лемкина продемонстрировал, насколько опасной может быть генерация исходного кода с использованием ИИ. Этот метод программирования, использующий большие языковые модели (LLM), называется вайб-кодинг. Попытка создать приложение, используя только ИИ Replit, закончилась тем, что инструмент удалил важную базу данных.
Исследование, проведенное компанией Veracode, занимающейся ИТ-безопасностью, демонстрирует долгосрочные негативные последствия, которые может иметь программирование с использованием ИИ. Согласно исследованию, 45 процентов кода, сгенерированного ИИ, содержат опасные и эксплуатируемые уязвимости безопасности.
Для исследования Veracode использовала более 100 крупных языковых моделей (LLM), каждая из которых включала 80 проектов кода с известными потенциальными уязвимостями безопасности. Затем результаты были проанализированы исследовательской группой поставщика услуг ИТ-безопасности.
По данным Veracode, уязвимости, содержащиеся в вышеупомянутых 45 процентах кода, сгенерированного ИИ, относятся к «наиболее серьезным рискам безопасности для веб-приложений». По мнению технического директора Veracode Йенса Весслинга, это доказательство того, что, несмотря на успехи в создании кода с использованием ИИ, безопасность такого метода остается под вопросом.
«Наше исследование показывает, что ИИ-модели становятся более точными с точки зрения создания кода, но не с точки зрения безопасности», — говорит Весслинг.
Более крупные модели не показали лучших результатов в испытаниях, чем мелкие. Это говорит о том, что «это скорее системная проблема, чем проблема масштабирования LLM».
Согласно исследованию, Java оказался особенно рискованным языком программирования для генерации кода ИИ: уровень ошибок превысил 70 процентов. По данным Veracode, другие основные языки программирования, такие как Python, C# и JavaScript, также представляют значительный риск.
Однако очевидно, что программирование с поддержкой ИИ представляет собой будущее разработки программного обеспечения, считает Весслинг. Используемые инструменты ИИ должны быть обучены соответствовать правилам безопасности. Кроме того, при проведении проверки результата желательно полагаться на человеческий опыт, а не на предложения ИИ.