PULP: Inner-process Isolation based on the Program Counter and Data Memory Address
Xiaojing Zhu, Mingyu Chen, Yangyang Zhao, Zonghui Hong, Yunge Guo

TL;DR
PULP is a hardware-based in-process isolation system that uses program counter and memory address association to prevent vulnerabilities like buffer overflows and Spectre, with minimal runtime overhead.
Contribution
This paper introduces PULP, a novel hardware mechanism for in-process data isolation that effectively prevents memory vulnerabilities with negligible performance impact.
Findings
PULP effectively prevents in-process bugs like Heartbleed and buffer overflows.
PULP incurs less than 0.1% runtime overhead on SPEC2006 benchmarks.
PULP can mitigate the Spectre vulnerability in out-of-order processors.
Abstract
Plenty of in-process vulnerabilities are blamed on various out of bound memory accesses. Previous prevention methods are mainly based on software checking associated with performance overhead, while traditional hardware protection mechanisms only work for inter-process memory accesses. In this paper we propose a novel hardware based in-process isolation system called PULP (Protection by User Level Partition). PULP modifies processor core by associating program counter and virtual memory address to achieve in-process data isolation. PULP partitions the program into two distinct parts, one is reliable, called primary functions, and the other is unreliable, called secondary functions, the accessible memory range of which can be configured via APIs. PULP automatically checks the memory bound when executing load/store operations in secondary functions. A RISC-V based FPGA prototype is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSecurity and Verification in Computing · Radiation Effects in Electronics · Parallel Computing and Optimization Techniques
