Evaluating Complexity, Code Churn, and Developer Activity Metrics as Indicators of Software Vulnerabilities

被引:383
作者
Shin, Yonghee [1 ]
Meneely, Andrew [2 ]
Williams, Laurie [2 ]
Osborne, Jason A. [3 ]
机构
[1] Depaul Univ, Coll Comp & Digital Media, Chicago, IL 60614 USA
[2] N Carolina State Univ, Dept Comp Sci, Raleigh, NC 27695 USA
[3] N Carolina State Univ, Dept Stat, Raleigh, NC 27695 USA
基金
美国国家科学基金会;
关键词
Fault prediction; software metrics; software security; vulnerability prediction; DEFECT PREDICTION; QUALITY; ATTRIBUTES; NUMBER;
D O I
10.1109/TSE.2010.81
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Security inspection and testing require experts in security who think like an attacker. Security experts need to know code locations on which to focus their testing and inspection efforts. Since vulnerabilities are rare occurrences, locating vulnerable code locations can be a challenging task. We investigated whether software metrics obtained from source code and development history are discriminative and predictive of vulnerable code locations. If so, security experts can use this prediction to prioritize security inspection and testing efforts. The metrics we investigated fall into three categories: complexity, code churn, and developer activity metrics. We performed two empirical case studies on large, widely used open-source projects: the Mozilla Firefox web browser and the Red Hat Enterprise Linux kernel. The results indicate that 24 of the 28 metrics collected are discriminative of vulnerabilities for both projects. The models using all three types of metrics together predicted over 80 percent of the known vulnerable files with less than 25 percent false positives for both projects. Compared to a random selection of files for inspection and testing, these models would have reduced the number of files and the number of lines of code to inspect or test by over 71 and 28 percent, respectively, for both projects.
引用
收藏
页码:772 / 787
页数:16
相关论文
共 43 条
[1]  
[Anonymous], 2005, Network Analysis: Methodological Foundations
[2]  
[Anonymous], 2008, Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, DOI [10.1145/1453101.1453106, DOI 10.1145/1453101.1453106]
[3]  
[Anonymous], CRS REPORT C EC IMPA
[4]  
[Anonymous], 2008, 16th ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE)
[5]  
[Anonymous], 2006, Software security: building security in
[6]  
[Anonymous], 2008, Proceedings of the 4th international workshop on Predictor models in software engineering
[7]  
Arisholm E., 2006, ISESE 06 P 2006 ACMI, P8
[8]   A validation of object-oriented design metrics as quality indicators [J].
Basili, VR ;
Briand, LC ;
Melo, WL .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1996, 22 (10) :751-761
[9]   Random forests [J].
Breiman, L .
MACHINE LEARNING, 2001, 45 (01) :5-32
[10]   Exploring the relationships between design measures and software quality in object-oriented systems [J].
Briand, LC ;
Wüst, J ;
Daly, JW ;
Porter, DV .
JOURNAL OF SYSTEMS AND SOFTWARE, 2000, 51 (03) :245-273