Beyond the Attack Surface
Open Access
- 28 October 2016
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 3-14
Abstract
When reasoning about software security, researchers and practitioners use the phrase ``attack surface'' as a metaphor for risk. Enumerate and minimize the ways attackers can break in then risk is reduced and the system is better protected, the metaphor says. But software systems are much more complicated than their surfaces. We propose function- and file-level attack surface metrics---proximity and risky walk---that enable fine-grained risk assessment. Our risky walk metric is highly configurable: we use PageRank on a probability-weighted call graph to simulate attacker behavior of finding or exploiting a vulnerability. We provide evidence-based guidance for deploying these metrics, including an extensive parameter tuning study. We conducted an empirical study on two large open source projects, FFmpeg and Wireshark, to investigate the potential correlation between our metrics and historical post-release vulnerabilities. We found our metrics to be statistically significantly associated with vulnerable functions/files with a small-to-large Cohen's d effect size. Our prediction model achieved an increase of 36% (in FFmpeg) and 27% (in Wireshark) in the average value of F{2}-measure over a base model built with SLOC and coupling metrics. Our prediction model outperformed comparable models from prior literature with notable improvements: 58% reduction in false negative rate, 81% reduction in false positive rate, and 548% increase in F{2}-measure. These metrics advance vulnerability prevention by [(a)] being flexible in terms of granularity, performing better than vulnerability prediction literature, and being tunable so that practitioners can tailor the metrics to their products and better assess security risk.Keywords
Funding Information
- National Security Agency (H98230-14-C-0139 / 2014-1267-04)
This publication has 49 references indexed in Scilit:
- Can traditional fault prediction models be used for vulnerability prediction?Empirical Software Engineering, 2011
- Using complexity, coupling, and cohesion metrics as early indicators of vulnerabilitiesJournal of Systems Architecture, 2011
- Defect prediction from static code features: current results, limitations, new approachesAutomated Software Engineering, 2010
- Report: Measuring the Attack Surfaces of Enterprise Software2009
- Toward Non-security Failures as a Predictor of Security Faults and Failures2009
- Do too many cooks spoil the broth? Using the number of developers to enhance defect prediction modelsEmpirical Software Engineering, 2008
- Google’s pagerankThe Mathematical Intelligencer, 2006
- An empirical study of static call graph extractorsACM Transactions on Software Engineering and Methodology, 1998
- Call graph construction in object-oriented languagesACM SIGPLAN Notices, 1997
- Efficient call graph analysisACM Letters on Programming Languages and Systems, 1992