Automatic Feature Learning for Predicting Vulnerable Software Components

被引:114
作者
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 条
[11]   Evaluating defect prediction approaches: a benchmark and an extensive comparison [J].
D'Ambros, Marco ;
Lanza, Michele ;
Robbes, Romain .
EMPIRICAL SOFTWARE ENGINEERING, 2012, 17 (4-5) :531-577
[12]  
Dam H.K., 2016, FSE 2016
[13]   Learning to forget: Continual prediction with LSTM [J].
Gers, FA ;
Schmidhuber, J ;
Cummins, F .
NEURAL COMPUTATION, 2000, 12 (10) :2451-2471
[14]  
Giger E, 2012, INT SYMP EMP SOFTWAR, P171, DOI 10.1145/2372251.2372285
[15]   Noisy time series prediction using recurrent neural networks and grammatical inference [J].
Giles, CL ;
Lawrence, S ;
Tsoi, AC .
MACHINE LEARNING, 2001, 44 (1-2) :161-183
[16]   Deep API Learning [J].
Gu, Xiaodong ;
Zhang, Hongyu ;
Zhang, Dongmei ;
Kim, Sunghun .
FSE'16: PROCEEDINGS OF THE 2016 24TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON FOUNDATIONS OF SOFTWARE ENGINEERING, 2016, :631-642
[17]  
Gupta R, 2017, AAAI CONF ARTIF INTE, P1345
[18]  
Gutmann MU, 2012, J MACH LEARN RES, V13, P307
[19]  
Hackett R., 2015, FORTUNUE APR
[20]   A Systematic Literature Review on Fault Prediction Performance in Software Engineering [J].
Hall, Tracy ;
Beecham, Sarah ;
Bowes, David ;
Gray, David ;
Counsell, Steve .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (06) :1276-1304