VulDeePecker: A Deep Learning-Based System for Vulnerability Detection
arXiv:1801.01681 · doi:10.14722/ndss.2018.23158
Abstract
The automatic detection of software vulnerabilities is an important research problem. However, existing solutions to this problem rely on human experts to define features and often miss many vulnerabilities (i.e., incurring high false negative rate). In this paper, we initiate the study of using deep learning-based vulnerability detection to relieve human experts from the tedious and subjective task of manually defining features. Since deep learning is motivated to deal with problems that are very different from the problem of vulnerability detection, we need some guiding principles for applying deep learning to vulnerability detection. In particular, we need to find representations of software programs that are suitable for deep learning. For this purpose, we propose using code gadgets to represent programs and then transform them into vectors, where a code gadget is a number of (not necessarily consecutive) lines of code that are semantically related to each other. This leads to the design and implementation of a deep learning-based vulnerability detection system, called Vulnerability Deep Pecker (VulDeePecker). In order to evaluate VulDeePecker, we present the first vulnerability dataset for deep learning approaches. Experimental results show that VulDeePecker can achieve much fewer false negatives (with reasonable false positives) than other approaches. We further apply VulDeePecker to 3 software products (namely Xen, Seamonkey, and Libav) and detect 4 vulnerabilities, which are not reported in the National Vulnerability Database but were "silently" patched by the vendors when releasing later versions of these products; in contrast, these vulnerabilities are almost entirely missed by the other vulnerability detection systems we experimented with.
References in corpus (3)
Cited by in corpus (25)
- SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilities
- CVEfixes: Automated Collection of Vulnerabilities and Their Fixes from Open-Source Software
- VulDeeLocator: A Deep Learning-based Fine-grained Vulnerability Detector
- VulDeePecker: A Deep Learning-Based System for Multiclass Vulnerability Detection
- VulBERTa: Simplified Source Code Pre-Training for Vulnerability Detection
- Neural Transfer Learning for Repairing Security Vulnerabilities in C Code
- Natural Language Generation and Understanding of Big Code for AI-Assisted Programming: A Review
- Commit2Vec: Learning Distributed Representations of Code Changes
- PatchRNN: A Deep Learning-Based System for Security Patch Identification
- Semantic Learning and Emulation Based Cross-platform Binary Vulnerability Seeker
- MegaVul: A C/C++ Vulnerability Dataset with Comprehensive Code Representation
- A comparative study of neural network techniques for automatic software vulnerability detection
- Statically Detecting Vulnerabilities by Processing Programming Languages as Natural Languages
- Automated Vulnerability Detection in Source Code Using Deep Representation Learning
- A Hybrid Graph Neural Network Approach for Detecting PHP Vulnerabilities
- Data Quality Issues in Vulnerability Detection Datasets
- An Unbiased Transformer Source Code Learning with Semantic Vulnerability Graph
- Bridging the Gap: A Survey and Classification of Research-Informed Ethical Hacking Tools
- An Empirical Study of the Imbalance Issue in Software Vulnerability Detection
- Are We Learning the Right Features? A Framework for Evaluating DL-Based Software Vulnerability Detection Solutions
- Variables are a Curse in Software Vulnerability Prediction
- MalCodeAI: Autonomous Vulnerability Detection and Remediation via Language Agnostic Code Reasoning
- Cross-Domain Evaluation of Transformer-Based Vulnerability Detection on Open & Industry Data
- Similar but Patched Code Considered Harmful -- The Impact of Similar but Patched Code on Recurring Vulnerability Detection and How to Remove Them
- LLaVul: A Multimodal LLM for Interpretable Vulnerability Reasoning about Source Code