TY - GEN
T1 - Watchdoglite
T2 - 12th ACM/IEEE International Symposium on Code Generation and Optimization, CGO 2014
AU - Nagarakatte, Santosh
AU - Martin, Milo M.K.
AU - Zdancewic, Steve
PY - 2014
Y1 - 2014
N2 - Lack of memory safety in C is the root cause of a multitude of serious bugs and security vulnerabilities. Numerous software-only and hardware-based schemes have been proposed to enforce memory safety. Among these approaches, pointer-based checking, which maintains per-pointer metadata in a disjoint metadata space, has been recognized as providing comprehensive memory safety. Software approaches for pointer-based checking have high performance overheads. In contrast, hardware approaches introduce a myriad of hardware structures and widgets to mitigate those performance overheads. This paper proposes WatchdogLite, an ISA extension that provides hardware acceleration for a compiler implementation of pointer-based checking. This division of labor between the compiler and the hardware allows for hardware acceleration while using only preexisting architectural registers. By leveraging the compiler to identify pointers, perform check elimination, and insert the new instructions, this approach attains performance similar to prior hardware-intensive approaches without adding any hardware structures for tracking metadata.
AB - Lack of memory safety in C is the root cause of a multitude of serious bugs and security vulnerabilities. Numerous software-only and hardware-based schemes have been proposed to enforce memory safety. Among these approaches, pointer-based checking, which maintains per-pointer metadata in a disjoint metadata space, has been recognized as providing comprehensive memory safety. Software approaches for pointer-based checking have high performance overheads. In contrast, hardware approaches introduce a myriad of hardware structures and widgets to mitigate those performance overheads. This paper proposes WatchdogLite, an ISA extension that provides hardware acceleration for a compiler implementation of pointer-based checking. This division of labor between the compiler and the hardware allows for hardware acceleration while using only preexisting architectural registers. By leveraging the compiler to identify pointers, perform check elimination, and insert the new instructions, this approach attains performance similar to prior hardware-intensive approaches without adding any hardware structures for tracking metadata.
KW - Bounds checking
KW - Memory safety
KW - Spatial safety
KW - Temporal safety
KW - Use-after-free checking
UR - http://www.scopus.com/inward/record.url?scp=84900675340&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84900675340&partnerID=8YFLogxK
U2 - 10.1145/2544137.2544147
DO - 10.1145/2544137.2544147
M3 - Conference contribution
AN - SCOPUS:84900675340
SN - 9781450326704
T3 - Proceedings of the 12th ACM/IEEE International Symposium on Code Generation and Optimization, CGO 2014
SP - 175
EP - 184
BT - Proceedings of the 12th ACM/IEEE International Symposium on Code Generation and Optimization, CGO 2014
PB - Association for Computing Machinery
Y2 - 15 February 2014 through 19 February 2014
ER -