Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3133956.3134072acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
research-article
Public Access

A Large-Scale Empirical Study of Security Patches

Published: 30 October 2017 Publication History

Abstract

Given how the "patching treadmill" plays a central role for enabling sites to counter emergent security concerns, it behooves the security community to understand the patch development process and characteristics of the resulting fixes. Illumination of the nature of security patch development can inform us of shortcomings in existing remediation processes and provide insights for improving current practices. In this work we conduct a large-scale empirical study of security patches, investigating more than 4,000 bug fixes for over 3,000 vulnerabilities that affected a diverse set of 682 open-source software projects. For our analysis we draw upon the National Vulnerability Database, information scraped from relevant external references, affected software repositories, and their associated security fixes. Leveraging this diverse set of information, we conduct an analysis of various aspects of the patch development life cycle, including investigation into the duration of impact a vulnerability has on a code base, the timeliness of patch development, and the degree to which developers produce safe and reliable fixes. We then characterize the nature of security fixes in comparison to other non-security bug fixes, exploring the complexity of different types of patches and their impact on code bases.
Among our findings we identify that: security patches have a lower footprint in code bases than non-security bug patches; a third of all security issues were introduced more than 3 years prior to remediation; attackers who monitor open-source repositories can often get a jump of weeks to months on targeting not-yet-patched systems prior to any public disclosure and patch distribution; nearly 5% of security fixes negatively impacted the associated software; and 7% failed to completely remedy the security hole they targeted.

Supplemental Material

MP4 File

References

[1]
American Fuzzy Lop. http://lcamtuf.coredump.cx/afl/.
[2]
cgit. https://git.zx2c4.com/cgit/about/.
[3]
Core Infrastructure Initiative. https://www.coreinfrastructure.org.
[4]
Exuberant Ctags. http://ctags.sourceforge.net/.
[5]
GitLab. https://about.gitlab.com/.
[6]
GitWeb. https://git-scm.com/book/en/v2/Git-on-the-Server-GitWeb.
[7]
ISC Software Defect and Security Vulnerability Disclosure Policy. https://kb.isc.org/article/AA-00861/164/ISC-Software-Defect-and-Security- Vulnerability-Disclosure-Policy.html.
[8]
Open Crypto Audit Project. https://opencryptoaudit.org.
[9]
Undefined Behavior Sanitizer. https://clang.llvm.org/docs/UndefinedBehavior Sanitizer.html.
[10]
Steve Christey and Brian Martin. Buying Into the Bias: Why Vulnerability Statistics Suck. In BlackHat, 2013.
[11]
Zakir Durumeric, Frank Li, James Kasten, Nicholas Weaver, Johanna Amann, Jethro Beekman, Mathias Payer, David Adrian, Vern Paxson, Michael Bailey, and J. Alex Halderman. The Matter of Heartbleed. In ACM Internet Measurement Conference (IMC), 2014.
[12]
Forum of Incident Response and Security Teams. Common Vulnerability Scoring System v3.0: Specification Document. https://www.first.org/cvss/specification-document.
[13]
Stefan Frei. End-Point Security Failures: Insights gained from Secunia PSI Scans. In USENIX Predict Workshop, 2011.
[14]
Stefan Frei, Martin May, Ulrich Fiedler, and Bernhard Plattner. Large-Scale Vulnerability Analysis. In SIGCOMM Workshops, 2006.
[15]
Google. Sanitizers. https://github.com/google/sanitizers.
[16]
Google Open Source Blog. Announcing OSS-Fuzz: Continuous Fuzzing for Open Source Software. https://opensource.googleblog.com/2016/12/announcing-oss-fuzz-continuous-fuzzing.html.
[17]
Zhongxian Gu, Earl Barr, David Hamilton, and Zhendong Su. Has the Bug Really Been Fixed? In International Conference on Software Engineering (ICSE), 2010.
[18]
Zhen Huang, Mariana D'Angelo, Dhaval Miyani, and David Lie. Talos: Neutralizing Vulnerabilities with Security Workarounds for Rapid Response. In IEEE Security and Privacy (S&P), 2016.
[19]
Jonathan Corbet. Kernel Vulnerabilities: Old or New?, October 2010. https://lwn.net/Articles/410606/.
[20]
Kees Cook. Security Bug Lifetime, October 2016. https://outflux.net/blog/archives/2016/10/18/security-bug-lifetime.
[21]
Frank Li, Zakir Durumeric, Jakub Czyz, Mohammad Karami, Michael Bailey, Damon McCoy, Stefan Savage, and Vern Paxson. You've Got Vulnerability: Exploring Effective Vulnerability Notifications. In USENIX Security Symposium, 2016.
[22]
T. J. McCabe. A Complexity Measure. In IEEE Transaction on Software Engineering, 1976.
[23]
MITRE Corporation. Common Vulnerabilities and Exposures. https://cve.mitre.org/.
[24]
MITRE Corporation. CWE: Common Weakness Enumeration. https://cwe.mitre.org/.
[25]
Nuthan Munaiah and Andrew Meneely. Vulnerability Severity Scoring and Bounties: Why the Disconnect? In International Workshop on Software Analytics (SWAN), 2016.
[26]
Emerson Murphy-Hill, Thomas Zimmermann, Christian Bird, and Nachiappan Nagappan. The Design of Bug Fixes. In International Conference on Software Engineering (ICSE), 2013.
[27]
Antonio Nappa, Richard Johnson, Leyla Bilge, Juan Caballero, and Tudor Dumitras. The Attack of the Clones: A Study of the Impact of Shared Code on Vulnerability Patching. In IEEE Security and Privacy (S&P), 2015.
[28]
Andy Ozment and Stuart E. Schechter. Milk or Wine: Does Software Security Improve with Age? In USENIX Security Symposium, 2006.
[29]
Jihun Park, Miryung Kim, Baishkhi Ray, and Doo-Hwan Bae. An Empirical Study on Supplementary Bug Fixes. In Mining Software Repositories (MSR), 2012.
[30]
Henning Perl, Sergej Dechand, Matthew Smith, Daniel Arp, Fabian Yamaguchi, Konrad Rieck, Sascha Fahl, and Yasemin Acar. VCCFinder: Finding Potential Vulnerabilities in Open-Source Projects to Assist Code Audits. In ACM Conference on Computer and Communications Security (CCS), 2015.
[31]
RhodeCode. Version Control Systems Popularity in 2016. https://rhodecode.com/insights/version-control-systems-2016.
[32]
Muhammad Shahzad, M. Zubair Shafiq, and Alex X. Liu. A Large Scale Exploratory Analysis of Software Vulnerability Life Cycles. In International Conference on Software Engineering (ICSE), 2012.
[33]
Jacek Sliwerski, Thomas Zimmermann, and Andreas Zeller. When Do Changes Induce Fixes. In Mining Software Repositories (MSR), 2005.
[34]
Mauricio Soto, Ferdian Thung, Chu-Pan Wong, Claire Le Goues, and David Lo. A Deeper Look into Bug Fixes: Patterns, Replacements, Deletions, and Additions. In Mining Software Repositories (MSR), 2016.
[35]
U.S. National Institute of Standards and Technology. CVSS Information. https://nvd.nist.gov/cvss.cfm.
[36]
U.S. National Institute of Standards and Technology. National Checklist Program Glossary. https://web.nvd.nist.gov/view/ncp/repository/glossary.
[37]
U.S. National Institute of Standards and Technology. National Vulnerability Database. https://nvd.nist.gov/home.cfm.
[38]
U.S. National Institute of Standards and Technology. NVD Data Feed. https://nvd.nist.gov/download.cfm.
[39]
Zhengzi Xu, Bihuan Chen, Mahinthan Chandramohan, Yang Liu, and Fu Song. SPAIN: Security Patch Analysis for Binaries Towards Understanding the Pain and Pills. In International Conference on Software Engineering (ICSE), 2017.
[40]
Zuoning Yin, Ding Yuan, Yuanyuan Zhou, Shankar Pasupathy, and Lakshmi Bairavasundaram. How do Fixes become Bugs? In ACM European Conference on Foundations of Software Engineering (ESEC/FSE), 2011.
[41]
Shahed Zaman, Bram Adams, and Ahmed E. Hassan. Security Versus Performance Bugs: A Case Study on Firefox. In Mining Software Repositories (MSR), 2011.
[42]
Hao Zhong and Zhendong Su. An Empirical Study on Real Bug Fixes. In International Conference on Software Engineering (ICSE), 2015.

Cited By

View all
  • (2025)A large-scale analysis of the effectiveness of publicly reported security patchesComputers & Security10.1016/j.cose.2024.104181148(104181)Online publication date: Jan-2025
  • (2025)Understanding vulnerabilities in software supply chainsEmpirical Software Engineering10.1007/s10664-024-10581-230:1Online publication date: 1-Feb-2025
  • (2024)Unveiling the Characteristics and Impact of Security Patch EvolutionProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695488(1094-1106)Online publication date: 27-Oct-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
CCS '17: Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security
October 2017
2682 pages
ISBN:9781450349468
DOI:10.1145/3133956
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 30 October 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. empirical study
  2. patch complexity
  3. security patches
  4. vulnerabilities

Qualifiers

  • Research-article

Funding Sources

Conference

CCS '17
Sponsor:

Acceptance Rates

CCS '17 Paper Acceptance Rate 151 of 836 submissions, 18%;
Overall Acceptance Rate 1,261 of 6,999 submissions, 18%

Upcoming Conference

CCS '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)870
  • Downloads (Last 6 weeks)98
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2025)A large-scale analysis of the effectiveness of publicly reported security patchesComputers & Security10.1016/j.cose.2024.104181148(104181)Online publication date: Jan-2025
  • (2025)Understanding vulnerabilities in software supply chainsEmpirical Software Engineering10.1007/s10664-024-10581-230:1Online publication date: 1-Feb-2025
  • (2024)Unveiling the Characteristics and Impact of Security Patch EvolutionProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695488(1094-1106)Online publication date: 27-Oct-2024
  • (2024)Snopy: Bridging Sample Denoising with Causal Graph Learning for Effective Vulnerability DetectionProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695057(606-618)Online publication date: 27-Oct-2024
  • (2024)REACT: IR-Level Patch Presence Test for BinaryProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695012(381-392)Online publication date: 27-Oct-2024
  • (2024)Automated Code-centric Software Vulnerability Assessment: How Far Are We? An Empirical Study in C/C++Proceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686670(72-83)Online publication date: 24-Oct-2024
  • (2024)Understanding Vulnerability Inducing Commits of the Linux KernelACM Transactions on Software Engineering and Methodology10.1145/367245233:7(1-28)Online publication date: 14-Jun-2024
  • (2024)MoreFixes: A Large-Scale Dataset of CVE Fix Commits Mined through Enhanced Repository DiscoveryProceedings of the 20th International Conference on Predictive Models and Data Analytics in Software Engineering10.1145/3663533.3664036(42-51)Online publication date: 10-Jul-2024
  • (2024)Unveil the Mystery of Critical Software VulnerabilitiesCompanion Proceedings of the 32nd ACM International Conference on the Foundations of Software Engineering10.1145/3663529.3663835(138-149)Online publication date: 10-Jul-2024
  • (2024)Silent Taint-Style Vulnerability Fixes IdentificationProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652139(428-439)Online publication date: 11-Sep-2024
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media