Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1168857.1168884acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article

Comprehensively and efficiently protecting the heap

Published: 20 October 2006 Publication History

Abstract

The goal of this paper is to propose a scheme that provides comprehensive security protection for the heap. Heap vulnerabilities are increasingly being exploited for attacks on computer programs. In most implementations, the heap management library keeps the heap meta-data (heap structure information) and the application's heap data in an interleaved fashion and does not protect them against each other. Such implementations are inherently unsafe: vulnerabilities in the application can cause the heap library to perform unintended actions to achieve control-flow and non-control attacks.Unfortunately, current heap protection techniques are limited in that they use too many assumptions on how the attacks will be performed, require new hardware support, or require too many changes to the software developers' toolchain. We propose Heap Server, a new solution that does not have such drawbacks. Through existing virtual memory and inter-process protection mechanisms, Heap Server prevents the heap meta-data from being illegally overwritten, and heap data from being meaningfully overwritten. We show that through aggressive optimizations and parallelism, Heap Server protects the heap with nearly-negligible performance overheads even on heap-intensive applications. We also verify the protection against several real-world exploits and attack kernels.

References

[1]
Alexander Anisimov, Positive Technologies. Defeating Microsoft Windows XP SP2 Heap protection and DEP bypass. http://www.maxpatrol.com/defeating-xpsp2-heap-protection.htm, 2005.
[2]
Anonymous. Once upon a free(). Phrack Magazine, 57(9), 2001.
[3]
E. Berger and B. Zorn. Diehard: Probabilistic memory safety for unsafe languages. In ACM SIGPLAN Conf. on Programming Language Design and Implementation, 2006.
[4]
E.D. Berger, K.S. McKinley, R.D. Blumofe, and P.R.Wilson. Hoard: A Scalable Memory Allocator for Multithreaded Applications. in Proc. of the 9th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS-IX), pages 117--128, 2000.
[5]
S. Bhatkar, D.C. DuVarney, and R. Sekar. Address Obfuscation: an Efficient Approach to Combat a Broad Range of Memory Error Exploits. in Proc. of the 12th USENIX Security Symp., pages 105--120, 2003.
[6]
S. Chen, J. Xu, E.C. Sezer, P. Gauriar, and R.K. Iyer. Non-Control-Data Attacks Are Realistic Threats. in Proc. of the 14th USENIX Security Symp., pages 177--192, 2005.
[7]
C. Cowan, S. Beattie, J. Johansen, and P. Wagle. PointGuard: Protecting Pointers from Buffer Overflow Vulnerabilities. in Proc. of the 12th USENIX Security Symp., pages 91--104, 2003.
[8]
C. Cowan, C. Pu, D. Maier, J. Walpole, P. Bakke, S. Beattie, A. Grier, P. Wagle, Q. Zhang, and H. Hinton. StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks. in Proc. of the 7th USENIX Security Symp., pages 63--78, 1998.
[9]
Darkeagle. Mozzila GIF Image Processing Library Remote Heap Overflow Vulnerability. http://www.securityfocus.com/bid/12881/exploit, 2005.
[10]
D.L. Detlefs, A. Dosser, and B. Zorn. Memory Allocation Costs in Large C and C++ Programs. Software Practice and Experience, pages 527--542, 1994.
[11]
Doug Lea. A Memory Allocator. http://gee.cs.oswego.edu/dl/html/malloc.html, 2000.
[12]
G. Suh, J. Lee, and S. Devadas. Secure program execution via dynamic information flow tracking. In Proc. of the 11th Intl. Conf. on Architectural Support for Programming Languages and Operating Systems. Boston, MA, 2004.
[13]
H. Shacham, M. Page, B. Pfaff, E.-J. Goh, N. Modadugu, and D. Boneh. On the effectiveness of address space randomization. In Proc. of the ACM Conf. on Computer and Communications Security, 2004.
[14]
J.R. Crandall and F.T. Chong. Minos: Control data attack prevention orthogonal to memory model. To appear in Proc. of the 37th Intl. Symp. on Microarchitecture. Portland, OR, 2004.
[15]
Jones, Richard, and Rafael Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, New York, 1996.
[16]
V. Kiriansky, D. Bruening, and S. Amarasinghe. Secure Execution via Program Shepherding. In 11th USENIX Security Symp., 2002.
[17]
Linux Programmer's Manual. Man Pages MSGOP(2). 2002.
[18]
Matt Conover and w00w00 Security Team. w00w00 on Heap Overflows. http://www.w00w00.org/files/articles/heaptut.txt, 1999.
[19]
Nathan Tuck, Brad Calder and George Varghese. Hardware and Binary Modification Support for Code Pointer Protection From Buffer Overflow. Proc. of the 37th annual IEEE/ACM Intl. Symp. on Microarchitecture, pages 209--220, 2004.
[20]
PaX Team. PaX Address Space Layout Randomization (ASLR). http://pax.grsecurity.net/docs/aslr.txt, 2003.
[21]
F. Perriot and P. Szor. An Analysis of the Slapper Worm Exploit. http://securityresponse.symantec.com/avcenter/reference/analysis.slapper.worm.pdf, 2003.
[22]
R. Wojtczuk. Defeating Solar Designer Non-executable Stack Patch. http://seclists.org/lists/bugtraq, experimental study of security vulnerabilities caused by errors. In Proc. of the IEEE Intl. Conf, 1998.
[23]
S. Andersen and V. Abella. Data Execution Prevention. Changes to Functionality in Microsoft Windows XP Service Pack 2, Part 3: Memory Protection Technologies. http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2mempr.mspx,2004.
[24]
Security Focus. Wu-Ftpd File Globbing Heap Corruption Vulnerability. http://www.securityfocus.com/bid/3581, 2002.
[25]
Security Focus. Sudo Password Prompt Heap Overflow Vulnerability. http://www.securityfocus.com/bid/4593, 2003.
[26]
Security Focus. Microsoft Windows winhlp32.exe Heap Overflow Vulnerability. http://www.securityfocus.com/archive/1/385332/2004-12-20/2004-12-26/2, 2004.
[27]
Standard Performance Evaluation Corporation. SPEC CPU2000 Benchmarks. http://www.spec.org/osg/cpu2000/, 2000.
[28]
US-CERT. CVS Heap Overflow Vulnerability. www.uscert.gov/cas/techalerts/index.html, pages TA04-147A, 2004.
[29]
US-CERT. HTTP Parsing Vulnerabilities in Check Point Firewall-1. www.uscert.gov/cas/techalerts/index.html, pages TA04-036A, 2004.
[30]
US-CERT. Microsoft Internet Explorer vulnerable to buffer overflow via FRAME and IFRAME elements. http://www.kb.cert.org/vuls/id/842160, page VU 842160, 2004.
[31]
J. Xu, Z. Kalbarczyk, and R.K. Iyer. Transparent Runtime Randomization for Security. in Proc. of the 22nd Intl. Symp. on Reliable Distributed Systems, pages 260--269, 2003.

Cited By

View all
  • (2024)A Scalable, Efficient, and Robust Dynamic Memory Management Library for HLS-based FPGAs2024 57th IEEE/ACM International Symposium on Microarchitecture (MICRO)10.1109/MICRO61859.2024.00040(437-450)Online publication date: 2-Nov-2024
  • (2022)Want more unikernels?Proceedings of the 13th Symposium on Cloud Computing10.1145/3542929.3563473(510-525)Online publication date: 7-Nov-2022
  • (2021)No-FAT: Architectural Support for Low Overhead Memory Safety Checks2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA52012.2021.00076(916-929)Online publication date: Jun-2021
  • Show More Cited By

Index Terms

  1. Comprehensively and efficiently protecting the heap

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ASPLOS XII: Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
    October 2006
    440 pages
    ISBN:1595934510
    DOI:10.1145/1168857
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 41, Issue 11
      Proceedings of the 2006 ASPLOS Conference
      November 2006
      425 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1168918
      Issue’s Table of Contents
    • cover image ACM SIGOPS Operating Systems Review
      ACM SIGOPS Operating Systems Review  Volume 40, Issue 5
      Proceedings of the 2006 ASPLOS Conference
      December 2006
      425 pages
      ISSN:0163-5980
      DOI:10.1145/1168917
      Issue’s Table of Contents
    • cover image ACM SIGARCH Computer Architecture News
      ACM SIGARCH Computer Architecture News  Volume 34, Issue 5
      Proceedings of the 2006 ASPLOS Conference
      December 2006
      425 pages
      ISSN:0163-5964
      DOI:10.1145/1168919
      Issue’s Table of Contents
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 20 October 2006

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. computer security
    2. heap attacks
    3. heap security
    4. heap server

    Qualifiers

    • Article

    Conference

    ASPLOS06

    Acceptance Rates

    ASPLOS XII Paper Acceptance Rate 38 of 158 submissions, 24%;
    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)12
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 13 Feb 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)A Scalable, Efficient, and Robust Dynamic Memory Management Library for HLS-based FPGAs2024 57th IEEE/ACM International Symposium on Microarchitecture (MICRO)10.1109/MICRO61859.2024.00040(437-450)Online publication date: 2-Nov-2024
    • (2022)Want more unikernels?Proceedings of the 13th Symposium on Cloud Computing10.1145/3542929.3563473(510-525)Online publication date: 7-Nov-2022
    • (2021)No-FAT: Architectural Support for Low Overhead Memory Safety Checks2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA)10.1109/ISCA52012.2021.00076(916-929)Online publication date: Jun-2021
    • (2018)GuarderProceedings of the 27th USENIX Conference on Security Symposium10.5555/3277203.3277213(117-133)Online publication date: 15-Aug-2018
    • (2018)A Robust and Efficient Defense against Use-after-Free Exploits via Concurrent Pointer SweepingProceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security10.1145/3243734.3243826(1635-1648)Online publication date: 15-Oct-2018
    • (2018)CRUM: Checkpoint-Restart Support for CUDA's Unified Memory2018 IEEE International Conference on Cluster Computing (CLUSTER)10.1109/CLUSTER.2018.00047(302-313)Online publication date: Sep-2018
    • (2018)Enforcing Full-Stack Memory-Safety in Cyber-Physical SystemsEngineering Secure Software and Systems10.1007/978-3-319-94496-8_2(9-26)Online publication date: 20-Jun-2018
    • (2017)FreeGuardProceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security10.1145/3133956.3133957(2389-2403)Online publication date: 30-Oct-2017
    • (2014)WatchdogLiteProceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization10.1145/2581122.2544147(175-184)Online publication date: 15-Feb-2014
    • (2014)WatchdogLiteProceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization10.1145/2544137.2544147(175-184)Online publication date: 15-Feb-2014
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media