VulDeePecker: A Deep Learning-Based System for Vulnerability Detection

被引:449
作者
Li, Zhen [1 ,2 ]
Zou, Deqing [1 ,3 ]
Xu, Shouhuai [4 ]
Ou, Xinyu [1 ]
Jin, Hai [1 ]
Wang, Sujuan [1 ]
Deng, Zhijun [1 ]
Zhong, Yuyi [1 ]
机构
[1] Huazhong Univ Sci & Technol, Sch Comp Sci & Technol, Cluster & Grid Comp Lab, Big Data Technol & Syst Lab,Serv Comp Technol & S, Wuhan, Peoples R China
[2] Hebei Univ, Sch Cyber Secur & Comp, Baoding, Peoples R China
[3] Shenzhen Huazhong Univ Sci & Technol Res Inst, Wuhan, Peoples R China
[4] Univ Texas San Antonio, Dept Comp Sci, San Antonio, TX USA
来源
25TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2018) | 2018年
基金
美国国家科学基金会;
关键词
D O I
10.14722/ndss.2018.23158
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页数:15
相关论文
共 49 条
[1]  
[Anonymous], 2014, Int. J. Comput. Linguist. Appl.
[2]  
[Anonymous], 2017, FILE PATHS REGISTRY
[3]  
[Anonymous], 1997, Neural Computation
[4]  
[Anonymous], 1986, Parallel Distributed Processing: Explorations in the Microstructure of Cognition
[5]  
[Anonymous], 2010, P PYTH SCI COMP C SC
[6]   Automatic Discovery and Quantification of Information Leaks [J].
Backes, Michael ;
Koepf, Boris ;
Rybalchenko, Andrey .
PROCEEDINGS OF THE 2009 30TH IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2009, :141-+
[7]   Learning Deep Architectures for AI [J].
Bengio, Yoshua .
FOUNDATIONS AND TRENDS IN MACHINE LEARNING, 2009, 2 (01) :1-127
[8]  
Cho K., 2014, ARXIV, DOI 10.3115/v1/w14-4012
[9]  
Davi L. V., 2015, THESIS DARMSTADT U T
[10]   Toward Large-Scale Vulnerability Discovery using Machine Learning [J].
Grieco, Gustavo ;
Grinblat, Guillermo Luis ;
Uzal, Lucas ;
Rawat, Sanjay ;
Feist, Josselin ;
Mounier, Laurent .
CODASPY'16: PROCEEDINGS OF THE SIXTH ACM CONFERENCE ON DATA AND APPLICATION SECURITY AND PRIVACY, 2016, :85-96