The Secret Life of Software Vulnerabilities: A Large-Scale Empirical Study

被引:21
|
作者
Iannone, Emanuele [1 ]
Guadagni, Roberta [1 ]
Ferrucci, Filomena [1 ]
De Lucia, Andrea [1 ]
Palomba, Fabio [1 ]
机构
[1] Univ Salerno, Software Engn SeSa Lab, I-84084 Fisciano, Italy
基金
瑞士国家科学基金会;
关键词
Software vulnerabilities; mining software repositories; empirical software engineering; PREDICTION MODELS; CLASSIFICATION; ACCURACY; SMELL;
D O I
10.1109/TSE.2022.3140868
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software vulnerabilities are weaknesses in source code that can be potentially exploited to cause loss or harm. While researchers have been devising a number of methods to deal with vulnerabilities, there is still a noticeable lack of knowledge on their software engineering life cycle, for example how vulnerabilities are introduced and removed by developers. This information can be exploited to design more effective methods for vulnerability prevention and detection, as well as to understand the granularity at which these methods should aim. To investigate the life cycle of known software vulnerabilities, we focus on how, when, and under which circumstances the contributions to the introduction of vulnerabilities in software projects are made, as well as how long, and how they are removed. We consider 3,663 vulnerabilities with public patches from the National Vulnerability Database-pertaining to 1,096 open-source software projects on GitHub-and define an eight-step process involving both automated parts (e.g., using a procedure based on the SZZ algorithm to find the vulnerability-contributing commits) and manual analyses (e.g., how vulnerabilities were fixed). The investigated vulnerabilities can be classified in 144 categories, take on average at least 4 contributing commits before being introduced, and half of them remain unfixed for at least more than one year. Most of the contributions are done by developers with high workload, often when doing maintenance activities, and removed mostly with the addition of new source code aiming at implementing further checks on inputs. We conclude by distilling practical implications on how vulnerability detectors should work to assist developers in timely identifying these issues.
引用
收藏
页码:44 / 63
页数:20
相关论文
共 50 条
  • [41] Panel: Large-scale software testing
    Horgan, B
    [J]. EIGHTH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING, PROCEEDINGS, 1997, : 220 - 220
  • [42] IR software for large-scale research
    Newby, G
    [J]. ASIST 2001: PROCEEDINGS OF THE 64TH ASIST ANNUAL MEETING, VOL 38, 2001, 2001, 38 : 656 - 656
  • [43] Coordination in Large-Scale Software Teams
    Begel, Andrew
    Nagappan, Nachiappan
    Poile, Christopher
    Layman, Lucas
    [J]. 2009 ICSE WORKSHOP ON COOPERATIVE AND HUMAN ASPECTS OF SOFTWARE ENGINEERING, 2009, : 1 - +
  • [44] DEVELOPING SOFTWARE FOR LARGE-SCALE REUSE
    SEIDEWITZ, E
    BALFOUR, B
    ADAMS, SS
    WADE, DM
    COX, B
    [J]. SIGPLAN NOTICES, 1993, 28 (10): : 137 - 143
  • [45] Analyzing the evolution of large-scale software
    Mens, T
    Ramil, JF
    Godfrey, MW
    [J]. JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE, 2004, 16 (06): : 363 - 365
  • [46] Empirical Evidence of Large-Scale Diversity in API Usage of Object-Oriented Software
    Mendez, Diego
    Baudry, Benoit
    Monperrus, Martin
    [J]. 2013 IEEE 13TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2013, : 43 - 52
  • [47] Large-Scale Analysis of Format String Vulnerabilities in Debian Linux
    Chen, Karl
    Wagner, David
    [J]. PLAS'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY, 2007, : 75 - 84
  • [48] Industrial Experience of Finding Cryptographic Vulnerabilities in Large-scale Codebases
    Xiao, Ya
    Zhao, Yang
    Allen, Nicholas
    Keynes, Nathan
    Yao, Danfeng Daphne
    Cifuentes, Cristina
    [J]. DIGITAL THREATS: RESEARCH AND PRACTICE, 2023, 4 (01):
  • [49] What Is Large in Large-Scale? A Taxonomy of Scale for Agile Software Development
    Dingsoyr, Torgeir
    Faegri, Tor Erlend
    Itkonen, Juha
    [J]. PRODUCT-FOCUSED SOFTWARE PROCESS IMPROVEMENT, PROFES 2014, 2014, 8892 : 273 - 276
  • [50] Software systems at risk: An empirical study of cloned vulnerabilities in practice
    Kim, Seulbae
    Lee, Heejo
    [J]. COMPUTERS & SECURITY, 2018, 77 : 720 - 736