Publication | Closed Access
Hardware-based Always-On Heap Memory Safety
35
Citations
35
References
2020
Year
Unknown Venue
EngineeringComputer ArchitectureMemory Safety ViolationsMemory Model (Programming)Software AnalysisFormal VerificationHardware SecurityMemory ManagementRuntime VerificationComputer EngineeringComputer ScienceStatic Program AnalysisRuntime SystemMemory ArchitectureMemory CheckingProgram AnalysisFormal MethodsGarbage CollectionSystem SoftwareMetadata Propagation
Memory safety violations, caused by illegal use of pointers in unsafe programming languages such as C and C++, have been a major threat to modern computer systems. However, implementing a low-overhead yet robust runtime memory safety solution is still challenging. Various hardware-based mechanisms have been proposed, but their significant hardware requirements have limited their feasibility, and their performance overhead is too high to be an always-on solution. In this paper, we propose AOS, a low-overhead always-on heap memory safety solution that implements a novel bounds-checking mechanism. We identify that the major challenges of existing bounds-checking approaches are 1) the extra instruction overhead for memory checking and metadata propagation and 2) the complex metadata addressing. To address these challenges, using Arm PA primitives, we leverage unused upper bits of a pointer to store a key and have it propagated along with the pointer address, eliminating propagation overhead. Then, we use the embedded key to index a hashed bounds table to achieve efficient metadata management. We also introduce a micro-architectural unit to remove the need for memory checking instructions. We show that AOS overcomes all the aforementioned challenges and demonstrate its feasibility as an efficient runtime memory safety solution. Our evaluation for SPEC 2006 workloads shows an 8.4% performance overhead on average.
| Year | Citations | |
|---|---|---|
Page 1
Page 1