SecureTechTalks
303 subscribers
805 photos
1 video
1 file
803 links
Добро пожаловать на канал "SecureTechTalks"! Мы предлагаем вам увлекательное и информативное погружение в мир кибербезопасности. Здесь вы найдете актуальные новости, советы, методы и инсайты по инфобезу.
Download Telegram
🤖🔧 LLM против уязвимостей: почему реальные баги чинятся лучше, чем искусственные

Большое исследование, которое проверяет истории о «самочинящихся» кодерах

Автоматическое исправление уязвимостей мечта индустрии последние двадцать лет. Мы уже пережили эпоху статических анализаторов, десятки попыток построить идеальный Automated Program Repair (APR) и сотни докладов, которые обещали «починку кода одним кликом».

Сегодня у нас бум LLM.  Модели генерируют не только стихи, но и создают патчи. В соцсетях уже гуляют скриншоты, где ChatGPT «за секунду» чинит SQLi или XSS.

Тем не мене вопрос остаётся открытым:
🧩 А насколько эти патчи вообще работают, когда дело доходит до реальных эксплойтов, а не до красивых текстовых примеров?


Команда исследователей из Luxembourg Institute of Science and Technology решила проверить, что LLM умеют патчить в реальном бою, когда исправления проверяют не глазами разработчика, а Proof-of-Vulnerability (PoV) тестами

🎯 Исследование

Исследование охватило 14 различных LLM, включая модели OpenAI (GPT-3.5, GPT-4, GPT-4o), Meta LLaMA (версии 3.1 и 3.3), DeepSeek R1 Qwen и несколько версий Mistral.

Модели тестировали на двух типах уязвимостей:
🔹 Реальные уязвимости
15 CVE из датасета Vul4J: уязвимый код, PoV-тест, гарантированно воспроизводящий атаку.
🔹 Искусственные уязвимости
41 синтетическая уязвимость, созданная исследователями на базе реальных, с изменениями в коде, но с тем же PoV-фейлом.

Искусственные баги воспроизводили те же ошибки, что и реальные, но выглядели иначе.

🔥 LLM плохо справляются с искусственными уязвимостями

Половина реальных уязвимостей была успешно исправлена хотя бы одной моделью. Однако была исправлена лишь четверть искусственных уязвимостей. LLM не распознавали паттерны искусственных уязвимостей.

Причина проста:
🧠 LLM чинят то, что узнают, а не то, что понимают
Модель не анализирует механику уязвимости, она пытается "вспомнить" похожий патч из обучающих данных.

🧪 Как проходило тестирование

Каждая модель получала строгий промпт:

"Исправь уязвимость. Не меняй ничего лишнего. Верни только Java-функцию."


Далее происходило следующее:
🧩 Исследователи подменяли функцию в реальном проекте.
🧱 Проект пересобирался.
💥 Прогонялся PoV-тест (реальный эксплойт).
🛡 Если PoV больше не мог воспроизвести атаку, то фикс засчитывался.

Если код не компилировался или эксплойт всё ещё работал, то патч считался провальным.

🥇 Кто справился лучше всего

В абсолютных числах:
DeepSeek R1 Qwen 32B исправил 14 уязвимостей
Mistral 8×7B тоже 14 уязвимостей
GPT-4 и GPT-4 Turbo по 9 исправлений
Остальные модели оказались слабее: около 5–6 успешных патчей.

При этом:
Никто не стал «универсальным патчером».
Нет модели, которая стабильно и хорошо чинит всё.

💣 Примеры

Успешный случай: CVE-2013-5960
Ошибка в криптографии (AES/CBC → AES/GCM).
Все модели без исключения смогли заменить режим и настроить correct tag length.

Почему?

Потому что это «шаблонное» исправление, встречающееся в тысячах проектов.

Провальный случай: XXE в Apache Batik
Для полного исправления XXE нужно:
отключить external entities;
обновить зависимость Batik на версию, где этот флаг работает корректно.

Все модели делали только шаг №1.

PoV продолжал считывать содержимое локального файла. Уязвимость оставалась.

Причина:
LLM не может увидеть зависимость, не может проверить билд, не понимает контекст.

🔗 Ссылка на исследование: https://arxiv.org/abs/2511.23408

Stay secure and read SecureTechTalks 📚

#cybersecurity #infosec #LLM #AIsecurity #vulnerabilities #javasecurity #research #securecoding #patching #SecureTechTalks
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👏1