Benchmarking von großen Sprachmodellen für die Erkennung von Software-Schwachstellen in mehreren Sprachen
Benchmarking Large Language Models for Multi-Language Software Vulnerability Detection
March 3, 2025
Autoren: 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
Zusammenfassung
Jüngste Fortschritte in der generativen KI haben zur weitverbreiteten Nutzung großer Sprachmodelle (LLMs) in der Softwareentwicklung geführt, wodurch zahlreiche langjährige Herausforderungen angegangen werden konnten. Allerdings fehlt derzeit eine umfassende Studie, die die Fähigkeiten von LLMs bei der Erkennung von Software-Sicherheitslücken (Software Vulnerability Detection, SVD), einem entscheidenden Aspekt der Softwaresicherheit, untersucht. Die bestehende Forschung konzentriert sich hauptsächlich auf die Bewertung von LLMs anhand von C/C++-Datensätzen. Dabei werden typischerweise nur ein oder zwei Strategien wie Prompt Engineering, Instruction Tuning und Sequenzklassifikations-Fine-Tuning für Open-Source-LLMs untersucht. Folglich besteht eine erhebliche Wissenslücke hinsichtlich der Effektivität verschiedener LLMs bei der Erkennung von Sicherheitslücken in verschiedenen Programmiersprachen. Um diese Wissenslücke zu schließen, präsentieren wir eine umfassende empirische Studie, die die Leistung von LLMs bei der SVD-Aufgabe bewertet. Wir haben einen umfangreichen Datensatz zusammengestellt, der 8.260 anfällige Funktionen in Python, 7.505 in Java und 28.983 in JavaScript umfasst. Wir bewerten fünf Open-Source-LLMs mit mehreren Ansätzen, darunter Prompt Engineering, Instruction Tuning und Sequenzklassifikations-Fine-Tuning. Diese LLMs werden gegen fünf feinabgestimmte kleine Sprachmodelle und zwei Open-Source-Static-Application-Security-Testing-Tools verglichen. Darüber hinaus untersuchen wir zwei Wege zur Verbesserung der LLM-Leistung bei SVD: a) Datenperspektive: Neues Training der Modelle mit heruntergesampelten, ausgewogenen Datensätzen. b) Modellperspektive: Untersuchung von Ensemble-Lernmethoden, die Vorhersagen mehrerer LLMs kombinieren. Unsere umfangreichen Experimente zeigen, dass SVD nach wie vor eine anspruchsvolle Aufgabe für LLMs darstellt. Diese Studie bietet ein tiefgreifendes Verständnis der Rolle von LLMs bei SVD und liefert praktische Erkenntnisse für zukünftige Fortschritte bei der Nutzung generativer KI zur Verbesserung der Softwaresicherheitspraktiken.
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