• DocumentCode
    107993
  • Title

    Hardware-Enforced Comprehensive Memory Safety

  • Author

    Nagarakatte, S. ; Martin, Milo M. K. ; Zdancewic, S.

  • Volume
    33
  • Issue
    3
  • fYear
    2013
  • fDate
    May-June 2013
  • Firstpage
    38
  • Lastpage
    47
  • Abstract
    The lack of memory safety in languages such as C and C++ is a root source of exploitable security vulnerabilities. This article presents Watchdog, a hardware approach that eliminates such vulnerabilities by enforcing comprehensive memory safety. Inspired by prior software-only mechanisms, Watchdog maintains bounds and identifier metadata with pointers, propagates them on pointer operations, and checks them on pointer dereferences. Checking this bounds and identifier metadata provides both precise, byte-granularity buffer-overflow protection and protection from use-after-free errors, even in the presence of reallocations. Watchdog stores pointer metadata in a disjoint shadow space to provide comprehensive protection and ensure compatibility with existing code. To streamline implementation and reduce runtime overhead, Watchdog uses micro-operations to implement metadata access and checking, eliminates metadata copies via a register renaming scheme, and uses a dedicated identifier cache to reduce checking overhead.
  • Keywords
    C++ language; cache storage; meta data; program verification; safety-critical software; storage management; C language; C++ language; Watchdog; byte-granularity buffer-overflow protection; checking overhead; exploitable security vulnerabilities; hardware approach; hardware-enforced comprehensive memory safety; identifier cache; identifier metadata; metadata access; metadata checking; microoperation; pointer dereference; pointer operation; register renaming scheme; software-only mechanism; use-after-free error protection; Computer architecture; Computer languages; Computer security; Instruction set design; Memory management; Program processors; hardware support for security; hardware/software interfaces; instruction set design; microarchitecture; processor architectures; watchdog;
  • fLanguage
    English
  • Journal_Title
    Micro, IEEE
  • Publisher
    ieee
  • ISSN
    0272-1732
  • Type

    jour

  • DOI
    10.1109/MM.2013.26
  • Filename
    6487479