skip to main content
10.1145/977091.977139acmconferencesArticle/Chapter ViewAbstractPublication PagescfConference Proceedingsconference-collections
Article

Repairing return address stack for buffer overflow protection

Published:14 April 2004Publication History

ABSTRACT

Although many defense mechanisms against buffer overflow attacks have been proposed, buffer overflow vulnerability in software is still one of the most prevalent vulnerabilities exploited. This paper proposes a micro-architecture based defense mechanism against buffer overflow attacks. As buffer overflow attack leads to a compromised return address, our approach is to provide a software transparent micro-architectural support for return address integrity checking. By keeping an uncompromised copy of the return address separate from the activation record in run-time stack, the return address compromised by a buffer overflow attack can be detected at run time. Since extra copies of return addresses are already found in the return address stack (RAS) for return address prediction in most high-performance microprocessors, this paper considers augmenting the RAS in speculative superscalar processors for return address integrity checking. The new mechanism provides 100% accurate return address prediction as well as integrity checking for return addresses. Hence, it enhances system performance in addition to preventing a buffer overflow attack.

References

  1. Aleph One. Smashing the stack for fun and profit, Phrack Magazine, 7(49): File 14, 1996.]]Google ScholarGoogle Scholar
  2. Arash Baratloo, Navjot Singh, and Timothy Tsai. Transparent run-time defense against stack smashing attacks. Proceedings of the USNIX Annual Technical Conference, June 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bulba and Kil3r. Bypassing StackGuard & Stackshield. Pharck magazine vol. 11 Issue 56.]]Google ScholarGoogle Scholar
  4. P.Y. Chang, E. Hao, and Y.N. Patt. Alternative implementations of hybrid branch predictors. Proceeding of Micro-28, page 252--257, Dec. 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Tzi-Cker Chiveh and Fu-Hau Hsu. RAD: A compile-time solution to Buffer Overflow Attacks. Proceeding of 21st International conference on Distributed Computing system, 2001.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Crispin Cowan, Calton Pu, David Maier, Heather Hinton, Peat Bake, Steve Beattie, Aron Grier, Perry Wagle, and Qian Zhang. StackGuard: Automatic Detection and prevention of Buffer-Overflow Attacks. Proceeding of the 7th USENIX security symposium, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Crispin Cowan, Calton Pu, David Maier, Heather Hinton, Peat Bakke, Steve Beattie, and Jonathan Walpole. Buffer Overflows: Attacks and defense for the vulnerability of the Decade. DARPA Information survivability Conference and Expo DISCEX, 1999.]]Google ScholarGoogle Scholar
  8. Roman Danyliw and Allen Householder. CERT Advisory CA-2001-19: Code Red Worm Exploiting Buffer Overflow IN IIS Indexing Service DLL. http://www.cert.org/advisories/CA-2001-19.html, Jul. 2001.]]Google ScholarGoogle Scholar
  9. Solar Designer. Non-Executable user stack. http://www.openwall.com/]]Google ScholarGoogle Scholar
  10. Compaq Computer Corporation. Alpha 21264/EV6 Microprocessor Hard-ware Reference Manual. Sept. 2000.]]Google ScholarGoogle Scholar
  11. DilDog. The Tao of Windows Buffer Overflow. http://www.cultdeadcow.com/cDc_files/cDc-351/]]Google ScholarGoogle Scholar
  12. Chad Dougherty, Jeffrey Havrilla, Shawn Hernan, and Marty Lindner. CERT Advisory CA-2003-20 W32/Blaster worm. http://www.cert.org/advisories/CA-2003-20.html]]Google ScholarGoogle Scholar
  13. Mark W. Eichin and Jon A.Rochlis. With microscope and tweezers: An analysis of the Internet virus of November 1988. Proceeding of the IEEE Symposium on Research in Security and Privacy, 1989.]]Google ScholarGoogle Scholar
  14. J. E. Smith, and A. R. Pleszkun. Implementing precise interrupts in pipelined processors. IEEE Trans on Computer 37:5, 1988.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Blaise Gassend, G. Edward suh, Dwain Clarke Marten Van Dijk, Srivas Devadas. Cache and Merkle trees for efficient Memory Authentication. Proceedings of the 9th High Performance Computer Architecture Symposium, February 2003.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R.W.M. Jones and P.H.J. Kelly. Backward-compatible bounds checking for arrays and pointers in C programs. Proceedings of the 3rd International Workshop on Automated Debugging, 1997.]]Google ScholarGoogle Scholar
  17. J. L Hennesy, D. A. Patterson. Computer Architecture A quantitative approach. Morgan Kaufman publisher Inc. 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. ICAT Metabase A CVE Based Vulnerability Database, http://www.icat.nist.gov/icat.cfm]]Google ScholarGoogle Scholar
  19. Intel Corporation. IA-32 Intel Architecture Software Developer's Manual. 2003.]]Google ScholarGoogle Scholar
  20. Klog. Frame pointer overwrite. Pharack magazine vol.9. Isuue 55.]]Google ScholarGoogle Scholar
  21. David Lie, Chandramohan Thekkath, Mark Mitchell, and Patrick Lincoln. Architectural Supports for Copy and Tamper Resistant Software. APOLS-IX 2000 Cambridge, Massachusetts. 2000.]]Google ScholarGoogle Scholar
  22. Ralph Merkle. Protocols for public key cryptography. IEEE Symposium on Security and privacy. Page 122--134, 1980.]]Google ScholarGoogle Scholar
  23. K. Skadron, P. S. Ahuja, M. Martonosi and D.W. Clark. Improving prediction for Procedure Returns with Return-Address-Stack Repair Mechanisms. Proceedings of the 31st Annual ACM/IEEE international symposium on Microarchitecture, page 259--271, Dec. 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Tyagi, and G. Lee. Encoded program counter: Self Protection from Buffer Overflow Attacks. Proceedings of International conference on Internet Computing (IC'2000), June 2000.]]Google ScholarGoogle Scholar
  25. C. Pyo and Gyungho Lee. Encoding Function Pointers and Memory Arrangement Checking against Buffer Overflow Attack. Proceeding of the Fourth International Conference on Information and Communications Security (as Lecture Notes in Computer Science Vol. 2513, Springer-verlag), Singapore, Dec. 2002.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. R. Rivest. RFC1321: The MD-5 message-Digest Algorithm, 1992.]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Repairing return address stack for buffer overflow protection

        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
          CF '04: Proceedings of the 1st conference on Computing frontiers
          April 2004
          522 pages
          ISBN:1581137419
          DOI:10.1145/977091

          Copyright © 2004 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: 14 April 2004

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate240of680submissions,35%

          Upcoming Conference

          CF '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader