Punchcard: A Practical Red-Zone Based Scheme for Low-Overhead Heap Protection

Chaochao Zhang, Amro Awad, Rui Hou, Mazen Alwadi · 2021

Memory-unsafe programming languages, such as C and C++, remain indispensable due to their performance and memory management advantages. Several studies addressed the memory safety issues by proposing hardware-assisted techniques. However, we observe the proposed techniques fail to enforce the security policies due to the naive assumption - the memory can be only accessed through the processor caches. In this paper, we demonstrate that different memory access techniques can compromise the state-of-the-art blacklisting technique. Then, we propose Punchcard, a light-weight and full coverage technique. Punchcard introduces a micro-unit inside the MMU, which ensures the enforcement of the security policies to all memory accesses. Additionally, Punchcard minimizes the performance overhead by re-purposing the unused physical address bits to store the metadata. Punchcard achieves this comprehensive memory protection by incurring an average of 11% performance overhead, and an average of 9% memory overhead.

Read the paper · More papers on PaperTik