[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3338906.3342489acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
extended-abstract

Employing different program analysis methods to study bug evolution

Published: 12 August 2019 Publication History

Abstract

The evolution of software bugs has been a well-studied topic in software engineering. We used three different program analysis tools to examine the different versions of two popular sets of programming tools (gnu Binary and Core utilities), and check if their bugs increase or decrease over time. Each tool is based on a different approach, namely: static analysis, symbolic execution, and fuzzing. In this way we can observe potential differences on the kinds of bugs that each tool detects and examine their effectiveness. To do so, we have performed a qualitative analysis on the results. Overall, our results indicate that we cannot say if bugs either decrease or increase over time and that the tools identify different bug types based on the method they follow.

References

[1]
Andrew Austin and Laurie Williams. 2011. One Technique is Not Enough: A Comparison of Vulnerability Discovery Techniques. In Proceedings of the 2011 International Symposium on Empirical Software Engineering and Measurement (ESEM ’11). IEEE Computer Society, Washington, DC, USA, 97–106.
[2]
Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-CoverageTests for Complex Systems Programs. In 8th USENIX Symposium on Operating Systems Design and Implementation (USENIX-SS’08). USENIX Association, San Diego, CA, USA.
[3]
Brian Chess and Gary McGraw. 2004. Static Analysis for Security. IEEE Security and Privacy 2, 6 (Nov. 2004), 76–79.
[4]
Nigel Edwards and Liqun Chen. 2012. An historical examination of open source releases and their vulnerabilities. In Proceedings of the 2012 ACM conference on Computer and communications security (CCS ’12). ACM, New York, NY, USA, 183–194.
[5]
Patrice Godefroid, Michael Y. Levin, and David Molnar. 2012. SAGE: Whitebox Fuzzing for Security Testing. Queue 10, 1, Article 20 (Jan. 2012), 8 pages.
[6]
Lanyue Lu, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Shan Lu. 2013. A Study of Linux File System Evolution. In Proceedings of the 11th Conference on File and Storage Technologies (FAST ’13). San Jose, California.
[7]
Fabio Massacci, Stephan Neuhaus, and Viet Hung Nguyen. 2011. After-life vulnerabilities: a study on firefox evolution, its vulnerabilities, and fixes. In Proceedings of the Third international conference on Engineering secure software and systems (ESSoS’11). Springer-Verlag, Berlin, Heidelberg, 195–208.
[8]
Dimitris Mitropoulos, Vassilios Karakoidas, Panos Louridas, Georgios Gousios, and Diomidis Spinellis. 2013. Dismal Code: Studying the Evolution of Security Bugs. In Proceedings of the Learning from Authoritative Security Experiment Results (LASER) Workshop 2013,. USENIX, 37–48.
[9]
Dimitris Mitropoulos, Panos Louridas, Vitalis Salis, and Diomidis Spinellis. 2019. Time Present and Time Past: Analyzing the Evolution of JavaScript Code in the Wild. In 16th International Conference on Mining Software Repositories: Technical Track (MSR ’19). IEEE.
[10]
Dimitris Mitropoulos and Diomidis Spinellis. 2017. Fatal injection: a survey of modern code injection attack countermeasures. PeerJ Computer Science 3 (Nov. 2017), e136.
[11]
Andy Ozment and Stuart E. Schechter. 2006. Milk or wine: does software security improve with age?. In Proceedings of the 15th conference on USENIX Security Symposium - Volume 15 (USENIX-SS’06). USENIX Association, Berkeley, CA, USA.
[12]
Nick Rutar, Christian B. Almazan, and Jeffrey S. Foster. 2004. A Comparison of Bug Finding Tools for Java. In Proceedings of the 15th International Symposium on Software Reliability Engineering (ISSRE ’04). IEEE Computer Society, Washington, DC, USA, 245–256.
[13]
Muhammad Shahzad, Muhammad Zubair Shafiq, and Alex X. Liu. 2012. A large scale exploratory analysis of software vulnerability life cycles. In Proceedings of the 2012 International Conference on Software Engineering (ICSE 2012). IEEE Press, Piscataway, NJ, USA, 771–781.
[14]
Jaime Spacco, David Hovemeyer, and William Pugh. 2006. Tracking defect warnings across versions. In Proceedings of the 2006 international workshop on Mining software repositories (MSR ’06). ACM, New York, NY, USA, 133–136.
[15]
David A. Wheeler. 2015. Flawfinder. https://dwheeler.com/flawfinder/. {Online; accessed 03-June-2019}.
[16]
Michal Zalewski. 2015. American Fuzzy Lop. http://lcamtuf.coredump.cx/afl/. {Online; accessed 03-June-2019}. Abstract 1 Introduction 2 Methodology 3 Analysis and Results 4 Related Work 5 Conclusions References

Cited By

View all
  • (2023)Analyzing a Semantics-Aware Bug Seeding Tool's Efficacy: A qualitative study with the SemSeed toolProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613412(246-256)Online publication date: 25-Sep-2023
  • (2023)Automatic Static Vulnerability Detection for Machine Learning Libraries: Are We There Yet?2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE59848.2023.00042(795-806)Online publication date: 9-Oct-2023
  • (2023)VulDetect: A novel technique for detecting software vulnerabilities using Language Models2023 IEEE International Conference on Cyber Security and Resilience (CSR)10.1109/CSR57506.2023.10224924(105-110)Online publication date: 31-Jul-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ESEC/FSE 2019: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
August 2019
1264 pages
ISBN:9781450355728
DOI:10.1145/3338906
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 August 2019

Check for updates

Author Tags

  1. Fuzzing
  2. Software Evolution
  3. Static Analysis
  4. Symbolic Execution

Qualifiers

  • Extended-abstract

Conference

ESEC/FSE '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 112 of 543 submissions, 21%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)2
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Analyzing a Semantics-Aware Bug Seeding Tool's Efficacy: A qualitative study with the SemSeed toolProceedings of the XXXVII Brazilian Symposium on Software Engineering10.1145/3613372.3613412(246-256)Online publication date: 25-Sep-2023
  • (2023)Automatic Static Vulnerability Detection for Machine Learning Libraries: Are We There Yet?2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE59848.2023.00042(795-806)Online publication date: 9-Oct-2023
  • (2023)VulDetect: A novel technique for detecting software vulnerabilities using Language Models2023 IEEE International Conference on Cyber Security and Resilience (CSR)10.1109/CSR57506.2023.10224924(105-110)Online publication date: 31-Jul-2023

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media