In-fat pointer: hardware-assisted tagged-pointer spatial memory safety defense with subobject granularity protection


연구 분야: Verification



학회: ASPLOS '21: Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems


초록

Programming languages like C and C++ are not memory-safe because they provide programmers with low-level pointer manipulation primitives. The incorrect use of these primitives can result in bugs and security vulnerabilities: for example, spatial memory safety errors can be caused by dereferencing pointers outside the legitimate address range belonging to the corresponding object. While a range of schemes to provide protection against these vulnerabilities have been proposed, they all suffer from the lack of one or more of low performance overhead, compatibility with legacy code, or comprehensive protection for all objects and subobjects. We present In-Fat Pointer, the first hardware-assisted defense that can achieve spatial memory safety at subobject granularity while maintaining compatibility with legacy code and low overhead. In-Fat Pointer improves the protection granularity of tagged-pointer schemes using object metadata, which is efficient and binary-compatible for object-bound spatial safety. Unlike previous work that devotes all pointer tag bits to object metadata lookup, In-Fat Pointer uses three complementary object metadata schemes to reduce the number pointer tag bits needed for metadata lookup, allowing it to use the left-over bits, along with in-memory type metadata, to refine the object bounds to subobject granularity. We show that this approach provides practical protection of fine-grained spatial memory safety.


Author Profile
Shengjie Xu

University of Toronto Canada

Canada
Author Profile
Wei Huang

University of Toronto Canada

Canada
Author Profile
David Jeun Fung Lie

University of Toronto Canada

Canada

📄 논문 정보

발행 연도 2021년
인용수 22
출판 국가 Canada
사이트 ACM
좋아요 수 0

연관 논문 목록 (62건)