Незважаючи на значний прогрес у розробці великих мовних моделей для генерації коду, їх здатність створювати безпечний код залишається важливою проблемою. Про це свідчить новий звіт “2025 GenAI Code Security Report”, в якому аналізується якість і безпека коду, згенерованого сучасними LLM. Нижче наведено основні результати дослідження.
Основні показники
- Тільки 55% згенерованого коду є безвразливим.
- У 45% випадків моделі генерують небезпечний код із критичними уразливостями.
- Продуктивність моделей не покращується з часом, незважаючи на покращення якості синтаксису.
- Розміри моделей не впливають на рівень безпеки: великі LLM не забезпечують кращі результати у сфері захисту.
Головні проблеми — XSS та логінг-ін’єкції
Різноманітність уразливостей впливає на результати моделей. Найкраще вони справляються із завданнями, пов’язаними із SQL-ін’єкціями (CWE-89) та небезпечною криптографією (CWE-327). Найгірші результати показують у випадках міжсайтового скриптінгу (XSS, CWE-80) та ін’єкцій у логування (CWE-117).
Java виявилася мовою із найгіршими показниками безпеки, тоді як Python, JavaScript і C# показали відносно кращі результати.
Методологія дослідження
Дослідники розробили 80 програмних задач із пропущеними частинами коду і запропонували їх моделям LLM для заповнення. Для аналізу використовували 4 популярні мови (Java, JS, C#, Python) та 4 типи критичних уразливостей (SQLi, XSS, логінг-ін’єкції, криптографічні помилки).
Згенерований код компілювали і перевіряли на вразливості за допомогою статичного аналізу безпеки (SAST).
Слід зазначити, що дослідження не оцінювало функціональність, а лише синтаксичну правильність і наявність відомих уразливостей.
Висновок
Попри розвиток LLM, автоматична генерація безпечного коду залишається відкритим питанням. Моделі часто не можуть адекватно сприймати контекст і надто складні вразливості. Це підкреслює необхідність додаткових перевірок та використання спеціалізованих інструментів для забезпечення безпеки коду.
Моделі можуть бути корисні у виконанні рутинних завдань, але покладатися на них в створенні production-коду поки що недоцільно.