skip to main content
10.1145/1858996.1859089acmconferencesArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
research-article

Detection of recurring software vulnerabilities

Published:20 September 2010Publication History

ABSTRACT

Software security vulnerabilities are discovered on an almost daily basis and have caused substantial damage. Aiming at supporting early detection and resolution for them, we have conducted an empirical study on thousands of vulnerabilities and found that many of them are recurring due to software reuse. Based on the knowledge gained from the study, we developed SecureSync, an automatic tool to detect recurring software vulnerabilities on the systems that reuse source code or libraries. The core of SecureSync includes two techniques to represent and compute the similarity of vulnerable code across different systems. The evaluation for 60 vulnerabilities on 176 releases of 119 open-source software systems shows that SecureSync is able to detect recurring vulnerabilities with high accuracy and to identify 90 releases having potentially vulnerable code that are not reported or fixed yet, even in mature systems. A couple of cases were actually confirmed by their developers.

References

  1. }}A. Andoni and P. Indyk. E2LSH 0.1 User manual. http://web.mit.edu/andoni/www/LSH/manual.pdf.Google ScholarGoogle Scholar
  2. }}ASF Security Team. http://www.apache.org/security/.Google ScholarGoogle Scholar
  3. }}Common vulnerabilities and exposures. http://cve.mitre.org/.Google ScholarGoogle Scholar
  4. }}US-CERT bulletins. http://www.us-cert.gov/.Google ScholarGoogle Scholar
  5. }}M. Acharya, T. Xie, J. Pei, and J. Xu. Mining API patterns as partial orders from source code: from usage scenarios to specifications. In ESEC-FSE?07. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}O. Alhazmi, Y. Malaiya, and I. Ray. Measuring, analyzing and predicting security vulnerabilities in software systems. Computers and Security, 26, 2007.Google ScholarGoogle Scholar
  7. }}R.-Y. Chang, A. Podgurski, and J. Yang. Discovering neglected conditions in software by mining dependence graphs. IEEE Trans. Softw. Eng., 34(5), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}T. Copeland. PMD Applied. Centennial Books, 2005.Google ScholarGoogle Scholar
  9. }}D. Cubranic, G. C. Murphy, J. Singer, and K. S. Booth. Hipikat: A project memory for software development. IEEE Trans. Softw. Eng., 31(6), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. }}E. Duala-Ekoko and M. P. Robillard. Tracking code clones in evolving software. In ICSE?07, pages 158--167. IEEE CS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}M. Gegick, L. Williams, J. Osborne, and M. Vouk. Prioritizing software security fortification through code-level metrics. Proceedings of 4th ACM workshop on Quality of protection, pages 31--38, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}A. E. Hassan and R. C. Holt. The top ten list: Dynamic fault prediction. In ICSM?05, pages 263--272. IEEE CS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. }}D. Hovemeyer and W. Pugh. Finding bugs is easy. SIGPLAN Not., 39(12), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}L. Jiang, Z. Su, and E. Chiu. Context-based detection of clone-related bugs. In ESEC-FSE?07, pages 55--64. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}S. Kim, K. Pan, and E. E. J. Whitehead, Jr. Memories of bug fixes. In FSE?06, pages 35--45. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}S. Kim, T. Zimmermann, E. E. J. Whitehead, Jr., and A. Zeller. Predicting faults from cached history. In ICSE?07, pages 489--498. IEEE CS, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}Z. Li, S. Lu, and S. Myagmar. CP-Miner: Finding copy-paste and related bugs in large-scale software code. IEEE Trans. Softw. Eng., 32(3):176--192, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}B. Livshits and T. Zimmermann. Dynamine: finding common error patterns by mining software revision histories. FSE?05, pages, 296--305, ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}T. Menzies, J. Greenwald, and A. Frank. Data mining static code attributes to learn defect predictors. IEEE Trans. Softw. Eng., 33(1):2--13, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}R. Moser, W. Pedrycz, and G. Succi. A comparative analysis of the efficiency of change metrics and static code attributes for defect prediction. In ICSE?08. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}Mozilla Foundation Security Advisories. http://www.mozilla.org/security/.Google ScholarGoogle Scholar
  22. }}S. Neuhaus and T. Zimmermann. The beauty and the beast: Vulnerabilities in red hat's packages. In USENIX Annual Technical Conference, June 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}H. A. Nguyen, T. T. Nguyen, N. H. Pham, J. M. Al-Kofahi, and T. N. Nguyen. Accurate and Efficient Structural Characteristic Feature Extraction Method for Clone Detection. In FASE?09. Springer-Verlag, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. }}T. T. Nguyen, H. A. Nguyen, N. H. Pham, J. M. Al-Kofahi, and T. N. Nguyen. Graph-based Mining of Multiple Object Usage Patterns. In FSE?09, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. }}T. T. Nguyen, H. A. Nguyen, N. H. Pham, J. M. Al-Kofahi, and T. N. Nguyen. Recurring Bug Fixes in Object-Oriented Programs. In ICSE?10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}T. T. Nguyen, H. A. Nguyen, N. H. Pham, T. N. Nguyen. Operation-based, Fine-grained Version Control Model for Tree-based Representation. FASE?10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}N. H. Pham, T. T. Nguyen, H. A. Nguyen, X. Wang, A. T. Nguyen, and T. N. Nguyen. Detecting Recurring and Similar Software Vulnerabilities. In ICSE?10, NIER Track, ACM Press, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}Open Source Computer Emergency Response Team. http://www.ocert.org/.Google ScholarGoogle Scholar
  29. }}Pattern Insight. http://patterninsight.com/solutions/find-once.php.Google ScholarGoogle Scholar
  30. }}Q. Song, M. Shepperd, M. Cartwright, and C. Mair. Software defect association mining and defect correction effort prediction. IEEE TSE, 32(2):69--82, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. }}B. Sun, R.-Y. Chang, X. Chen, and A. Podgurski. Automated support for propagating bug fixes. In ISSRE?08, pages 187--196. IEEE CS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. }}S. Thummalapenta and T. Xie. Mining exception-handling rules as sequence association rules. In ICSE?09, pages 496--506. IEEE CS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. }}A. Wasylkowski, A. Zeller, and C. Lindig. Detecting object usage anomalies. In ESEC-FSE?07, pages 35--44. ACM, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. }}C. C. Williams and J. K. Hollingsworth. Automatic mining of source code repositories to improve bug finding techniques. IEEE TSE, 31(6), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. }}Backporting - Wikipedia. http://en.wikipedia.org/wiki/Backporting.Google ScholarGoogle Scholar

Index Terms

  1. Detection of recurring software vulnerabilities

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ASE '10: Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering
        September 2010
        534 pages
        ISBN:9781450301169
        DOI:10.1145/1858996

        Copyright © 2010 ACM

        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 ACM 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]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 20 September 2010

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate82of337submissions,24%

        Upcoming Conference

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader