A comparison of the efficiency and effectiveness of vulnerability discovery techniques

被引:34
作者
Austin, Andrew [1 ]
Holmgreen, Casper [1 ]
Williams, Laurie [1 ]
机构
[1] N Carolina State Univ, Dept Comp Sci, Raleigh, NC 27695 USA
关键词
Security; Vulnerability; Static analysis; Penetration testing; Black box testing; White box testing; STATIC ANALYSIS;
D O I
10.1016/j.infsof.2012.11.007
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Context: Security vulnerabilities discovered later in the development cycle are more expensive to fix than those discovered early. Therefore, software developers should strive to discover vulnerabilities as early as possible. Unfortunately, the large size of code bases and lack of developer expertise can make discovering software vulnerabilities difficult. A number of vulnerability discovery techniques are available, each with their own strengths. Objective: The objective of this research is to aid in the selection of vulnerability discovery techniques by comparing the vulnerabilities detected by each and comparing their efficiencies. Method: We conducted three case studies using three electronic health record systems to compare four vulnerability discovery techniques: exploratory manual penetration testing, systematic manual penetration testing, automated penetration testing, and automated static analysis. Results: In our case study, we found empirical evidence that no single technique discovered every type of vulnerability. We discovered that the specific set of vulnerabilities identified by one tool was largely orthogonal to that of other tools. Systematic manual penetration testing found the most design flaws, while automated static analysis found the most implementation bugs. The most efficient discovery technique in terms of vulnerabilities discovered per hour was automated penetration testing. Conclusion: The results show that employing a single technique for vulnerability discovery is insufficient for finding all types of vulnerabilities. Each technique identified only a subset of the vulnerabilities, which, for the most part were independent of each other. Our results suggest that in order to discover the greatest variety of vulnerability types, at least systematic manual penetration testing and automated static analysis should be performed. (C) 2012 Elsevier B.V. All rights reserved.
引用
收藏
页码:1279 / 1288
页数:10
相关论文
共 24 条
[1]  
Allan D., 2008, CISC VIS NETW IND GL
[2]  
[Anonymous], 2010, Open Web Application Security Project (OWASP): OWASP Top Ten Project
[3]  
[Anonymous], 2002, NIST SPECIAL PUBLICA
[4]  
[Anonymous], 2006, Software security: building security in
[5]  
ANTUNES N, 2009, 15 IEEE PAC RIM INT, P301, DOI DOI 10.1109/PRDC.2009.54
[6]   One Technique is Not Enough: A Comparison of Vulnerability Discovery Techniques [J].
Austin, Andrew ;
Williams, Laurie .
2011 FIFTH INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2011), 2011, :97-106
[7]   Using static analysis to find bugs [J].
Ayewah, Nathaniel ;
Pugh, William ;
Hovemeyer, David ;
Morgenthaler, J. David ;
Penix, John .
IEEE SOFTWARE, 2008, 25 (05) :22-29
[8]  
BACA D, 2009, INT C AV REL SEC ARE, P804
[9]  
BARNUM S, 2005, DEFENSE DEPTH
[10]   Static analysis for security [J].
Chess, B ;
McGraw, G .
IEEE SECURITY & PRIVACY, 2004, 2 (06) :76-79