Benchmarken van Grote Taalmodellen voor Multi-Talige Softwarekwetsbaarheidsdetectie
Benchmarking Large Language Models for Multi-Language Software Vulnerability Detection
March 3, 2025
Auteurs: 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
Samenvatting
Recente ontwikkelingen in generatieve AI hebben geleid tot de wijdverspreide adoptie van grote taalmodellen (LLMs) in software engineering, waarbij tal van lang bestaande uitdagingen worden aangepakt. Er ontbreekt echter een uitgebreide studie die de mogelijkheden van LLMs onderzoekt bij het detecteren van softwarekwetsbaarheden (SVD), een cruciaal aspect van softwaresecurity. Bestaand onderzoek richt zich voornamelijk op het evalueren van LLMs met behulp van C/C++-datasets. Het verkent doorgaans slechts één of twee strategieën onder prompt engineering, instruction tuning en sequence classification fine-tuning voor open-source LLMs. Hierdoor bestaat er een aanzienlijke kennislacune over de effectiviteit van diverse LLMs bij het detecteren van kwetsbaarheden in verschillende programmeertalen. Om deze kennislacune aan te pakken, presenteren we een uitgebreide empirische studie die de prestaties van LLMs bij de SVD-taak evalueert. We hebben een uitgebreide dataset samengesteld met 8.260 kwetsbare functies in Python, 7.505 in Java en 28.983 in JavaScript. We evalueren vijf open-source LLMs met behulp van meerdere benaderingen, waaronder prompt engineering, instruction tuning en sequence classification fine-tuning. Deze LLMs worden vergeleken met vijf fine-tuned kleine taalmodellen en twee open-source static application security testing tools. Daarnaast verkennen we twee manieren om de prestaties van LLMs op SVD te verbeteren: a) Dataperspectief: Het opnieuw trainen van modellen met behulp van gedownsamplede gebalanceerde datasets. b) Modelperspectief: Het onderzoeken van ensemble learning-methoden die voorspellingen van meerdere LLMs combineren. Onze uitgebreide experimenten tonen aan dat SVD een uitdagende taak blijft voor LLMs. Deze studie biedt een grondig inzicht in de rol van LLMs bij SVD en biedt praktische inzichten voor toekomstige vooruitgang in het benutten van generatieve AI om softwaresecuritypraktijken te verbeteren.
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