ChatPaper.aiChatPaper

Тестирование крупных языковых моделей для обнаружения уязвимостей в программном обеспечении на нескольких языках

Benchmarking Large Language Models for Multi-Language Software Vulnerability Detection

March 3, 2025
Авторы: Ting Zhang, Chengran Yang, Yindu Su, Martin Weyssow, Hung Nguyen, Tan Bui, Hong Jin Kang, Yikun Li, Eng Lieh Ouh, Lwin Khin Shar, David Lo
cs.AI

Аннотация

Последние достижения в области генеративного искусственного интеллекта привели к широкому распространению больших языковых моделей (LLM) в разработке программного обеспечения, что позволило решить множество давних проблем. Однако всестороннее исследование, изучающее возможности LLM в обнаружении уязвимостей программного обеспечения (SVD), являющемся ключевым аспектом безопасности ПО, на данный момент отсутствует. Существующие исследования в основном сосредоточены на оценке LLM с использованием наборов данных на C/C++ и обычно исследуют лишь одну или две стратегии среди инженерии промптов, настройки инструкций и тонкой настройки классификации последовательностей для открытых LLM. В результате существует значительный пробел в знаниях относительно эффективности различных LLM в обнаружении уязвимостей в различных языках программирования. Чтобы устранить этот пробел, мы представляем всестороннее эмпирическое исследование, оценивающее производительность LLM в задаче SVD. Мы собрали обширный набор данных, включающий 8 260 уязвимых функций на Python, 7 505 на Java и 28 983 на JavaScript. Мы оцениваем пять открытых LLM с использованием нескольких подходов, включая инженерию промптов, настройку инструкций и тонкую настройку классификации последовательностей. Эти LLM сравниваются с пятью тонко настроенными небольшими языковыми моделями и двумя открытыми инструментами статического тестирования безопасности приложений. Кроме того, мы исследуем два пути для улучшения производительности LLM в SVD: а) С точки зрения данных: повторное обучение моделей с использованием сбалансированных наборов данных, подвергнутых даунсэмплингу. б) С точки зрения модели: изучение методов ансамблевого обучения, объединяющих предсказания нескольких LLM. Наши всесторонние эксперименты показывают, что SVD остается сложной задачей для LLM. Это исследование предоставляет глубокое понимание роли LLM в SVD и предлагает практические рекомендации для будущих достижений в использовании генеративного ИИ для улучшения практик обеспечения безопасности программного обеспечения.
English
Recent advancements in generative AI have led to the widespread adoption of large language models (LLMs) in software engineering, addressing numerous long-standing challenges. However, a comprehensive study examining the capabilities of LLMs in software vulnerability detection (SVD), a crucial aspect of software security, is currently lacking. Existing research primarily focuses on evaluating LLMs using C/C++ datasets. It typically explores only one or two strategies among prompt engineering, instruction tuning, and sequence classification fine-tuning for open-source LLMs. Consequently, there is a significant knowledge gap regarding the effectiveness of diverse LLMs in detecting vulnerabilities across various programming languages. To address this knowledge gap, we present a comprehensive empirical study evaluating the performance of LLMs on the SVD task. We have compiled a comprehensive dataset comprising 8,260 vulnerable functions in Python, 7,505 in Java, and 28,983 in JavaScript. We assess five open-source LLMs using multiple approaches, including prompt engineering, instruction tuning, and sequence classification fine-tuning. These LLMs are benchmarked against five fine-tuned small language models and two open-source static application security testing tools. Furthermore, we explore two avenues to improve LLM performance on SVD: a) Data perspective: Retraining models using downsampled balanced datasets. b) Model perspective: Investigating ensemble learning methods that combine predictions from multiple LLMs. Our comprehensive experiments demonstrate that SVD remains a challenging task for LLMs. This study provides a thorough understanding of the role of LLMs in SVD and offers practical insights for future advancements in leveraging generative AI to enhance software security practices.

Summary

AI-Generated Summary

PDF32March 6, 2025