Automatic Feature Learning for Predicting Vulnerable Software Components

被引:118
作者
Hoa Khanh Dam [1 ]
Truyen Tran [2 ]
Trang Pham [2 ]
Ng, Shien Wee [1 ]
Grundy, John [3 ]
Ghose, Aditya [1 ]
机构
[1] Univ Wollongong, Sch Comp & Informat Technol, Fac Engn & Informat Sci, Wollongong, NSW 2522, Australia
[2] Deakin Univ, Sch Informat Technol, Waurn Ponds, Vic 3216, Australia
[3] Monash Univ, Fac Informat Technol, Clayton, Vic 3800, Australia
关键词
Software vulnerability prediction; mining software engineering repositories; empirical software engineering; CODE CHURN; COMPLEXITY; METRICS;
D O I
10.1109/TSE.2018.2881961
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Code flaws or vulnerabilities are prevalent in software systems and can potentially cause a variety of problems including deadlock, hacking, information loss and system failure. A variety of approaches have been developed to try and detect the most likely locations of such code vulnerabilities in large code bases. Most of them rely on manually designing code features (e.g., complexity metrics or frequencies of code tokens) that represent the characteristics of the potentially problematic code to locate. However, all suffer from challenges in sufficiently capturing both semantic and syntactic representation of source code, an important capability for building accurate prediction models. In this paper, we describe a new approach, built upon the powerful deep learning Long Short Term Memory model, to automatically learn both semantic and syntactic features of code. Our evaluation on 18 Android applications and the Firefox application demonstrates that the prediction power obtained from our learned features is better than what is achieved by state of the art vulnerability prediction models, for both within-project prediction and cross-project prediction.
引用
收藏
页码:67 / 85
页数:19
相关论文
共 59 条
[31]  
Li Z., 2005, Special Interest Group on Software Engineering (SIGSOFT) Software Engineering Notes (SEN), V30, P306, DOI [10.1145/1081706.1081755, DOI 10.1145/1081706.1081755]
[32]  
Lowe D. G., 1999, Proceedings of the Seventh IEEE International Conference on Computer Vision, P1150, DOI 10.1109/ICCV.1999.790410
[33]   An Empirical Methodology to Evaluate Vulnerability Discovery Models [J].
Massacci, Fabio ;
Viet Hung Nguyen .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2014, 40 (12) :1147-1162
[34]  
McAfee C. for Strategic and I. Studies, 2014, NET LOSSES ESTIMATIN
[35]   Local versus Global Lessons for Defect Prediction and Effort Estimation [J].
Menzies, Tim ;
Butcher, Andrew ;
Cok, David ;
Marcus, Andrian ;
Layman, Lucas ;
Shull, Forrest ;
Turhan, Burak ;
Zimmermann, Thomas .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2013, 39 (06) :822-834
[36]  
Mohindra D, SEI CERT ORACLE COD
[37]  
Morrison Patrick, 2015, P 2015 S BOOTCAMP SC, DOI 10.1145/2746194.2746198
[38]  
Moser R, 2008, ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, P181, DOI 10.1145/1368088.1368114
[39]   Use of relative code churn measures to predict system defect density [J].
Nagappan, N ;
Ball, T .
ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, :284-292
[40]  
Nagappan N, 2008, ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, P521, DOI 10.1145/1368088.1368160