ChatPaper.aiChatPaper

Detecção de Vulnerabilidades em Código Baseada em Transformers no Momento da Edição: Zero-shot, Few-shot ou Ajuste Fino?

Transformer-based Vulnerability Detection in Code at EditTime: Zero-shot, Few-shot, or Fine-tuning?

May 23, 2023
Autores: Aaron Chan, Anant Kharkar, Roshanak Zilouchian Moghaddam, Yevhen Mohylevskyy, Alec Helyar, Eslam Kamal, Mohamed Elkamhawy, Neel Sundaresan
cs.AI

Resumo

As vulnerabilidades de software geram custos significativos para as empresas. Apesar dos extensos esforços em pesquisa e desenvolvimento de métodos de detecção de vulnerabilidades de software, falhas não detectadas continuam a colocar proprietários e usuários de software em risco. Muitos dos métodos atuais de detecção de vulnerabilidades exigem que trechos de código possam ser compilados e construídos antes de tentar a detecção. Isso, infelizmente, introduz uma longa latência entre o momento em que uma vulnerabilidade é injetada e o momento em que é removida, o que pode aumentar substancialmente o custo de correção de uma vulnerabilidade. Reconhecemos que os avanços atuais em aprendizado de máquina podem ser usados para detectar padrões de código vulnerável em trechos de código sintaticamente incompletos enquanto o desenvolvedor está escrevendo o código, no momento da edição (EditTime). Neste artigo, apresentamos um sistema prático que aproveita o aprendizado profundo em um conjunto de dados em larga escala de padrões de código vulnerável para aprender manifestações complexas de mais de 250 tipos de vulnerabilidades e detectar padrões de código vulnerável no momento da edição. Discutimos abordagens de zero-shot, few-shot e fine-tuning em modelos de linguagem de grande escala (LLMs) pré-treinados de última geração. Mostramos que, em comparação com os modelos de detecção de vulnerabilidades de última geração, nossa abordagem melhora o estado da arte em 10%. Também avaliamos nossa abordagem para detectar vulnerabilidades em código gerado automaticamente por LLMs de código. A avaliação em um benchmark de cenários de código de alto risco mostra uma redução de até 90% nas vulnerabilidades.
English
Software vulnerabilities bear enterprises significant costs. Despite extensive efforts in research and development of software vulnerability detection methods, uncaught vulnerabilities continue to put software owners and users at risk. Many current vulnerability detection methods require that code snippets can compile and build before attempting detection. This, unfortunately, introduces a long latency between the time a vulnerability is injected to the time it is removed, which can substantially increases the cost of fixing a vulnerability. We recognize that the current advances in machine learning can be used to detect vulnerable code patterns on syntactically incomplete code snippets as the developer is writing the code at EditTime. In this paper we present a practical system that leverages deep learning on a large-scale data set of vulnerable code patterns to learn complex manifestations of more than 250 vulnerability types and detect vulnerable code patterns at EditTime. We discuss zero-shot, few-shot, and fine-tuning approaches on state of the art pre-trained Large Language Models (LLMs). We show that in comparison with state of the art vulnerability detection models our approach improves the state of the art by 10%. We also evaluate our approach to detect vulnerability in auto-generated code by code LLMs. Evaluation on a benchmark of high-risk code scenarios shows a reduction of up to 90% vulnerability reduction.
PDF11December 15, 2024