Тільки 55% коду, створеного LLM, є безпечними

Тільки 55% коду, створеного LLM, є безпечними

Незважаючи на значний прогрес у розробці великих мовних моделей для генерації коду, їх здатність створювати безпечний код залишається важливою проблемою. Про це свідчить новий звіт “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-коду поки що недоцільно.