VulPecker: An Automated Vulnerability Detection System Based on Code Similarity Analysis

被引:121
作者
Li, Zhen [1 ,2 ]
Zou, Deqing [1 ]
Xu, Shouhuai [3 ]
Jin, Hai [1 ]
Qi, Hanchao [1 ]
Hu, Jie [1 ]
机构
[1] Huazhong Univ Sci & Technol, Sch Comp Sci & Technol, Cluster & Grid Comp Lab, Big Data Technol & Syst Lab,Serv Comp Technol & S, Wuhan 430074, Peoples R China
[2] Hebei Univ, Sch Comp Sci & Technol, Baoding 071002, Peoples R China
[3] Univ Texas San Antonio, Dept Comp Sci, San Antonio, TX 78249 USA
来源
32ND ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2016) | 2016年
基金
美国国家科学基金会;
关键词
Vulnerability detection; code similarity; vulnerability signature; CLONE DETECTION;
D O I
10.1145/2991079.2991102
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Software vulnerabilities are the fundamental cause of many attacks. Even with rapid vulnerability patching, the problem is more complicated than it looks. One reason is that instances of the same vulnerability may exist in multiple software copies that are difficult to track in real life (e.g., different versions of libraries and applications). This calls for tools that can automatically search for vulnerable software with respect to a given vulnerability. In this paper, we move a step forward in this direction by presenting Vulnerability Pecker (VulPecker), a system for automatically detecting whether a piece of software source code contains a given vulnerability or not. The key insight underlying VulPecker is to leverage (i) a set of features that we define to characterize patches, and (ii) code-similarity algorithms that have been proposed for various purposes, while rioting that no single code similarity algorithm is effective for all kinds of vulnerabilities. Experiments show that VulPecker detects 40 vulnerabilities that are not published in the National Vulnerability Database (NVD). Among these vulnerabilities, 18 are mint known for their existence and have yet to be confirmed by vendors at the time of writing (these vulnerabilities are "anonymized" in the present paper for ethical reasons), and the other 22 vulnerabilities have been "silently" patched by the vendors in the later releases of the vulnerable products.
引用
收藏
页码:201 / 213
页数:13
相关论文
共 27 条
[1]   Automated Test Generation from Vulnerability Signatures [J].
Aydin, Abdulbaki ;
Alkhalaf, Muath ;
Bultan, Tevfik .
2014 IEEE SEVENTH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST), 2014, :193-202
[2]   Comparison and evaluation of clone detection tools [J].
Bellon, Stefan ;
Koschke, Rainer ;
Antoniol, Giuliano ;
Krinke, Jens ;
Merlo, Ettore .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2007, 33 (09) :577-591
[3]   Towards automatic generation of vulnerability-based signatures [J].
Brumley, David ;
Newsome, James ;
Song, Dawn ;
Wang, Hao ;
Jha, Somesh .
2006 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, PROCEEDINGS, 2006, :2-+
[4]   LIBSVM: A Library for Support Vector Machines [J].
Chang, Chih-Chung ;
Lin, Chih-Jen .
ACM TRANSACTIONS ON INTELLIGENT SYSTEMS AND TECHNOLOGY, 2011, 2 (03)
[5]   Using complexity, coupling, and cohesion metrics as early indicators of vulnerabilities [J].
Chowdhury, Istehad ;
Zulkernine, Mohammad .
JOURNAL OF SYSTEMS ARCHITECTURE, 2011, 57 (03) :294-313
[6]   Static detection of vulnerabilities in x86 executables [J].
Cova, Marco ;
Felmetsger, Viktoria ;
Banks, Greg ;
Vigna, Giovanni .
22ND ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE, PROCEEDINGS, 2006, :269-+
[7]   LAVA: Large-scale Automated Vulnerability Addition [J].
Dolan-Gavitt, Brendan ;
Hulin, Patrick ;
Kirda, Engin ;
Leek, Tim ;
Mambretti, Andrea ;
Robertson, Wil ;
Ulrich, Frederick ;
Whelan, Ryan .
2016 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2016, :110-121
[8]  
Gauthier F., 2013, Proceedings of the 29th Annual Computer Security Applications Conference, P209
[9]   ReDeBug: Finding Unpatched Code Clones in Entire OS Distributions [J].
Jang, Jiyong ;
Agrawal, Abeer ;
Brumley, David .
2012 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2012, :48-62
[10]   CCFinder: A multilinguistic token-based code clone detection system for large scale source code [J].
Kamiya, T ;
Kusumoto, S ;
Inoue, K .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2002, 28 (07) :654-670