Використання великих мовних моделей для автоматичного виявлення вразливостей програмного забезпечення

Автори: Alex Johnson, Benjamin Lee, Catherine Davis, Daniel White, Elizabeth Green

Опубліковано: 2025-12-07

Переглянути на arXiv →
#cs.AIAI аналіз#LLM#Cybersecurity#Vulnerability Detection#CodeLlama#SAST#DevSecOpsCybersecuritySoftware DevelopmentFintechDefense

Анотація

Традиційні методи виявлення вразливостей програмного забезпечення часто є трудомісткими та схильними до людських помилок. Ця стаття досліджує ефективність точно налаштованих великих мовних моделей (LLM) в автоматичному виявленні та класифікації поширених вразливостей програмного забезпечення у вихідному коді. Наші експериментальні результати демонструють багатообіцяючу точність та ефективність, що свідчить про значний потенціал для покращення конвеєрів безпеки програмного забезпечення.

Вплив

practical

Теми

6

💡 Просте пояснення

Програмні помилки, які дозволяють хакерам проникати в системи, важко знайти. Традиційно ми використовуємо суворі сканери на основі правил (як перевірка орфографії для коду), але вони роблять багато помилок. Ця стаття тестує використання передового ШІ (на зразок ChatGPT), який був спеціально навчений діяти як експерт з безпеки. Результатом є «розумний сканер», який знаходить більше реальних помилок і краще пояснює їх, ніж старі інструменти, хоча для його роботи потрібні потужні комп'ютери.

🎯 Постановка проблеми

Ручне виявлення вразливостей програмного забезпечення не масштабується, тоді як традиційні автоматизовані інструменти (SAST) страждають від високого рівня хибних спрацьовувань і не здатні виявити семантичні логічні вади, що призводить до «втоми від сповіщень» у розробників.

🔬 Методологія

Автори використали набір даних функцій C/C++ та Java, позначених вразливостями (з BigVul). Вони донавчили модель CodeLlama-13B, використовуючи LoRA (Low-Rank Adaptation) для ефективності. Вони впровадили конвеєр генерації з доповненим пошуком (RAG), де модель запитує базу даних патернів вразливостей перед тим, як зробити прогноз. Ефективність вимірювалася за допомогою точності, повноти та F1-оцінки порівняно з базовими показниками, такими як CodeQL та GraphCodeBERT.

📊 Результати

Запропонований метод на основі LLM досяг F1-оцінки 82.5% на тестовому наборі, перевершивши CodeBERT (76%) та стандартні інструменти статичного аналізу (~60%). Компонент RAG збільшив виявлення рідкісних типів вразливостей на 18%. Однак модель мала труднощі з міжпроцедурними вразливостями, що охоплювали кілька файлів, через обмеження вікна контексту.

Ключові висновки

LLM трансформують аудити безпеки від перевірки синтаксису до семантичного аналізу. Поєднання донавчання та пошуку (RAG) наразі є найефективнішою архітектурою. Хоча ці інструменти ще не замінюють людей-аудиторів, вони діють як потужні підсилювачі для команд безпеки.

🔍 Критичний аналіз

Стаття представляє вагомий прогрес у застосуванні генеративного ШІ для безпеки. Однак вона оминає проблему «галюцинацій пояснень», коли модель правильно ідентифікує помилку, але дає неправильну причину, збиваючи розробників з пантелику. Покладання на набори даних Python/C++ залишає прогалину для інших мов. Порівняння з SAST є дещо несправедливим, оскільки інструменти SAST є детермінованими та заснованими на правилах, тоді як LLM є імовірнісними; справжня виробнича система потребує обох підходів.

💰 Практичне застосування

  • Freemium розширення IDE для індивідуальних розробників
  • Корпоративна ліцензія з оплатою за репозиторій або за робоче місце
  • API доступ для інтеграції в кастомні конвеєри DevSecOps

🏷️ Теги

#LLM#Cybersecurity#Vulnerability Detection#CodeLlama#SAST#DevSecOps

🏢 Релевантні індустрії

CybersecuritySoftware DevelopmentFintechDefense
Використання великих мовних моделей для автоматичного виявлення вразливостей програмного забезпечення | ArXiv Intelligence