skip to main content
10.1145/1315245.1315314acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
Article

Memsherlock: an automated debugger for unknown memory corruption vulnerabilities

Published:28 October 2007Publication History

ABSTRACT

Software vulnerabilities have been the main contributing factor to the Internet security problems such as fast spreading worms. Among these software vulnerabilities, memory corruption vulnerabilities such as buffer overflow and format string bugs have been the most common ones exploited by network-based attacks. Many security countermeasures (e.g., patching, automatic signature generation for intrusion detection systems) require vulnerability information to function correctly. However, despite many years of research, automatically identifying unknown software vulnerabilities still remains an open problem.

In this paper, we present the development of a security debugging tool named MemSherlock, which can automatically identify unknown memory corruption vulnerabilities upon the detection of malicious payloads that exploit such vulnerabilities. MemSherlock provides critical information for unknown memory corruption vulnerabilities, including (1) the corruption point in the source code (i.e., the statement that allows the exploitation of memory corruption vulnerability), (2) the slice of source code that helps the malicious input to reach the corruption point, and (3) the description of how the malicious input exploits the unknown vulnerability. We evaluate MemSherlock with a set of 11 real-world applications that have buffer overflow, heap overflow, and format string vulnerabilities. The evaluation results indicate that MemSherlock is a useful tool to facilitate the automatic vulnerability analysis process.

References

  1. D. Brumley, J. Newsome, D. Song, H. Wang, and S. Jha. Towards automatic generation of vulnerability-based signatures. In Proceedings of the IEEE Symposium on Security and Privacy, May 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. H. Chen, D. Dean, and D. Wagner. Model checking one million lines of c code. In Proceedings of the 11th Annual Network and Distributed System Security Symposium (NDSS), February 2004.Google ScholarGoogle Scholar
  3. H. Chen and D. Wagner. MOPS: an infrastructure for examining security properties of software. In Proceedings of the 9th ACM Conference on Computer and Communications Security (CCS'02), November 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Chen, J. Xu, and E. C. Sezer. Non-control-data attacks are realistic threats. In Proceedings of 14th USENIX Security Symposium, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. CodeSurfer. http://www.grammatech.com/products/codesurfer/.Google ScholarGoogle Scholar
  6. J. R. Crandall and F. T. Chong. Minos: Control data attack prevention orthogonal to memory model. In Proceedings of the 37th Annual IEEE/ACM International Symposium on Microarchitecture, pages 221--232, December 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. J. R. Crandall, Z. Su, S. F. Wu, and F. T. Chong. On deriving unknown vulnerabilities from zero-day polymorphic and metamorphic worm exploits. In Proceedings of the 13th ACM Conference on Computer and Communications Security, pages 235--248, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. H. Feng, J. Giffin, Y. Huang, S. Jha, W. Lee, and B. Miller. Formalizing sensitivity in static analysis for intrusion detection. In Proceedings of the 2004 IEEE Symposium on Security and Privacy, May 2004.Google ScholarGoogle ScholarCross RefCross Ref
  9. D. S. James Newsome, David Brumley. Vulnerability-specific execution filtering for exploit prevention on commodity software. In Proceedings of the 13th Annual Network and Distributed System Security Symposium (NDSS '06), Feb 2006.Google ScholarGoogle Scholar
  10. C. Kil, J. Jun, C. Bookholt, J. Xu, and P. Ning. Address space layout permutation (ASLP): Towards fine-grained randomization of commodity software. In Proceedings of the 22st Annual Computer Security Applications Conference (ACSAC '06), pages 339--348, December 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. H. Kim and B. Karp. Autograph: Toward automated, distributed worm signature detection. In Proceedings of the 13th USENIX Security Symposium, August 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. C. Kreibich and J. Crowcroft. Honeycomb - creating intrusion detection signatures using honeypots. In Proceedings of the Second Workshop on Hot Topics in Networks (HotNets-II), November 2003.Google ScholarGoogle Scholar
  13. W. Landi. Undecidability of static analysis. ACM Letters on Programming Languages and Systems, 1(4):323--337, December 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Larochelle and D. Evans. Statically detecting likely buffer overflow vulnerabilities. In Proceedings of the 10th USENIX Security Symposium, August 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Z. Liang and R. Sekar. Fast and automated generation of attack signatures: a basis for building self-protecting servers. In Proceedings of the 13th ACM Conference on Computer and Communications Security, pages 213--222, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Z. Liang and R. Sekar. Fast and automated generation of attack signatures: A basis for building self-protecting servers. In Proceedings of 12th ACM Conference on Computer and Communication Security (CCS '05), pages 213--222, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. G. Necula, J. Condit, M. Harren, S. McPeak, and W. Weimer. CCured: Type-safe retrofitting of legacy software. ACM Transaction on Programming Languages and Systems, 27(3):477--526, May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. G. Necula, S. McPeak, and W. Weimer. CCured: Type-safe retrofitting of legacy software. In Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of Programming Languages, pages 128--139, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. N. Nethercote. Dynamic binary analysis and instrumentation, 2004. valgrind.org/docs/phd2004.pdf.Google ScholarGoogle Scholar
  20. J. Newsome and D. Song. Dynamic taint analysis for automatic detection, analysis, and signature generation of exploits on commodity software. In Proceedings of The 12th Annual Network and Distributed System Security Symposium (NDSS '05), February 2005.Google ScholarGoogle Scholar
  21. PaX Team. http://pax.grsecurity.net/docs/aslr.txt.Google ScholarGoogle Scholar
  22. G. Ramalingam. The undecidability of aliasing. ACM Transactions on Programming Languages and Systems, 16(5):1467--1471, September 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. S. Sidiroglou, M. Locasto, S. Boyd, and A. Keromytis. Building a reactive immune system for software services. In Proceedings of USENIX Annual Technical Conference, pages 149--161, April 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. S. Singh, C. Estan, G. Varghese, and S. Savage. Automated worm fingerprinting. In Proceedings of the 6th ACM/USENIX Symposium on Operating System Design and Implementation (OSDI), December 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Smirnov and T. Chiueh. DIRA: Automatic detection, identification, and repair of control-hijacking attacks. In Proceedings of The 12th Annual Network and Distributed System Security Symposium (NDSS '05), February 2005.Google ScholarGoogle Scholar
  26. G. Vigna, W. Robertson, and D. Balzarotti. Testing network-based intrusion detection signatures using mutant exploits. In CCS '04: Proceedings of the 11th ACM conference on Computer and communications security, pages 21--30, New York, NY, USA, 2004. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. H. Wang, C. Guo, D. Simon, and A. Zugenmaier. Shield: Vulnerability-driven network filters for preventing known vulnerability exploits. In Proceedings of ACM SIGCOMM, August 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. Xu, Z. Kalbarczyk, and R. K. Iyer. Transparent runtime randomization for security. In Proceedings of 22nd Symposium on Reliable Distributed Systems - SRDS 2003, pages 260--269, 2003. IEEE Computer Society, Oct.Google ScholarGoogle Scholar
  29. J. Xu, P. Ning, C. Kil, Y Zhai, and C. Bookhold. Automatic diagnosis and response to memory corruption vulnerabilities. In Proceedings of the 13th ACM Conference on Computer and Communications Security, pages 223--234, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. P. Zhou, W. Liu, L. Fei, S. Lu, F. Qin, Y. Zhou, S. Midkiff, and J. Torrellas. Accmon: Automatically detecting memory-related bugs via program counter-based invariants. In MICRO 37: Proceedings of the 37th annual International Symposium on Microarchitecture, pages 269--280, Washington, DC, USA, 2004. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. P. Zhou, F. Qin, W. Liu, Y. Zhou, and J. Torrellas. iWatcher: Efficient architectural support for software debugging. In Proceedings of the 31st International Symposium on Computer Architecture (ISCA), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Memsherlock: an automated debugger for unknown memory corruption 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
        CCS '07: Proceedings of the 14th ACM conference on Computer and communications security
        October 2007
        628 pages
        ISBN:9781595937032
        DOI:10.1145/1315245

        Copyright © 2007 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: 28 October 2007

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        CCS '07 Paper Acceptance Rate55of302submissions,18%Overall Acceptance Rate1,261of6,999submissions,18%

        Upcoming Conference

        CCS '24
        ACM SIGSAC Conference on Computer and Communications Security
        October 14 - 18, 2024
        Salt Lake City , UT , USA

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader