Avaliação de Modelos de Linguagem de Grande Escala para Detecção de Vulnerabilidades em Software Multilíngue
Benchmarking Large Language Models for Multi-Language Software Vulnerability Detection
March 3, 2025
Autores: 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
Resumo
Os recentes avanços na IA generativa levaram à ampla adoção de modelos de linguagem de grande escala (LLMs) na engenharia de software, abordando diversos desafios de longa data. No entanto, um estudo abrangente que examine as capacidades dos LLMs na detecção de vulnerabilidades de software (SVD), um aspecto crucial da segurança de software, ainda é inexistente. As pesquisas existentes concentram-se principalmente na avaliação de LLMs utilizando conjuntos de dados em C/C++. Geralmente, exploram apenas uma ou duas estratégias entre engenharia de prompts, ajuste de instruções e ajuste fino de classificação de sequência para LLMs de código aberto. Consequentemente, há uma lacuna significativa de conhecimento sobre a eficácia de diversos LLMs na detecção de vulnerabilidades em várias linguagens de programação. Para abordar essa lacuna, apresentamos um estudo empírico abrangente que avalia o desempenho de LLMs na tarefa de SVD. Compilamos um conjunto de dados abrangente, incluindo 8.260 funções vulneráveis em Python, 7.505 em Java e 28.983 em JavaScript. Avaliamos cinco LLMs de código aberto utilizando múltiplas abordagens, incluindo engenharia de prompts, ajuste de instruções e ajuste fino de classificação de sequência. Esses LLMs são comparados com cinco modelos de linguagem pequenos ajustados e duas ferramentas de teste de segurança de aplicações estáticas de código aberto. Além disso, exploramos duas vias para melhorar o desempenho dos LLMs em SVD: a) Perspectiva de dados: Re-treinamento de modelos utilizando conjuntos de dados balanceados com subamostragem. b) Perspectiva de modelo: Investigação de métodos de aprendizado ensemble que combinam previsões de múltiplos LLMs. Nossos experimentos abrangentes demonstram que a SVD continua sendo uma tarefa desafiadora para LLMs. Este estudo fornece uma compreensão detalhada do papel dos LLMs na SVD e oferece insights práticos para futuros avanços no aproveitamento da IA generativa para aprimorar práticas de segurança de software.
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.