ChatPaper.aiChatPaper

Détection de vulnérabilités dans le code basée sur les Transformers au moment de l'édition : Zero-shot, Few-shot, ou Fine-tuning ?

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

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

Résumé

Les vulnérabilités logicielles engendrent des coûts significatifs pour les entreprises. Malgré des efforts considérables dans la recherche et le développement de méthodes de détection des vulnérabilités logicielles, les failles non détectées continuent de mettre en danger les propriétaires et les utilisateurs de logiciels. De nombreuses méthodes actuelles de détection des vulnérabilités nécessitent que les extraits de code puissent être compilés et construits avant de tenter une détection. Cela introduit malheureusement une latence importante entre le moment où une vulnérabilité est injectée et celui où elle est corrigée, ce qui peut considérablement augmenter le coût de réparation d'une vulnérabilité. Nous reconnaissons que les avancées récentes en apprentissage automatique peuvent être utilisées pour détecter des motifs de code vulnérables dans des extraits de code syntaxiquement incomplets, au moment même où le développeur écrit le code, c'est-à-dire à l'EditTime. Dans cet article, nous présentons un système pratique qui exploite l'apprentissage profond sur un ensemble de données à grande échelle de motifs de code vulnérables pour apprendre les manifestations complexes de plus de 250 types de vulnérabilités et détecter les motifs de code vulnérables à l'EditTime. Nous discutons des approches zero-shot, few-shot et de fine-tuning sur des modèles de langage pré-entraînés (LLMs) de pointe. Nous montrons que, par rapport aux modèles de détection de vulnérabilités de pointe, notre approche améliore l'état de l'art de 10 %. Nous évaluons également notre approche pour détecter les vulnérabilités dans le code auto-généré par les LLMs. L'évaluation sur un benchmark de scénarios de code à haut risque montre une réduction des vulnérabilités pouvant atteindre 90 %.
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