Мы все привыкли, что новые модели AI становятся умнее с каждым релизом. Они лучше пишут код, понимают сложные задачи и ускоряют разработку в разы. Но есть один нюанс, о котором не говорят на презентациях — безопасность этого кода.
Недавно Veracode выпустили отчет, где прогнали 100+ LLM через тесты на безопасность. И результаты, мягко говоря, отрезвляют.
Модели становятся всё лучше в написании синтаксически корректного кода (синяя линия на графике 1), но их способность писать безопасный код стоит на месте. Вообще. Розовая линия почти плоская.
То есть AI учится писать код, который работает, но его особо не заботит безопасность кода.
А теперь к конкретике:
▪️45% всего сгенерированного AI кода провалили тесты безопасности и содержали уязвимости из списка OWASP Top 10. Почти половина!
▪️Java — абсолютный антилидер. У кода на Java, написанного AI, провал в 72% случаев (это значит, security pass rate всего 28.5%).
▪️Размер не имеет значения. Думаете, большие и "умные" модели (>100B параметров) пишут код безопаснее, чем мелкие? А вот и нет. График 2 показывает, что уровень безопасности у всех примерно одинаковый — и одинаково посредственный (~50% pass rate).
Какие дыры AI создает чаще всего?
Самая частая — Cross-Site Scripting (XSS). В 86% случаев, когда можно было допустить эту уязвимость, AI её допускал. Он просто бездумно вставляет пользовательский ввод в HTML, открывая ворота для атак.
И самое неприятное: даже если вы лично не используете AI-ассистентов, этот код уже может быть в вашем проекте. Через open-source зависимости, через код от вендоров или подрядчиков.