SealPK: Sealable Protection Keys for RISC-V

Leila Delshadtehrania, Sadullah Canakcib, Manuel Egelec and Ajay Joshid
Department of Electrical and Computer Engineering, Boston University
adelshad@bu.edu
bscanakci@bu.edu
cmegele@bu.edu
djoshi@bu.edu

ABSTRACT


With the continuous increase in the number of software-based attacks, there has been a growing effort towards isolating sensitive data and trusted software components from untrusted third-party components. Recently, Intel introduced a new hardware feature for intra-process memory isolation, called Memory Protection Keys (MPK). The limited number of unique domains (16) provided by Intel MPK prohibits its use in cases where a large number of domains are required. Moreover, Intel MPK suffers from the protection key use-after-free vulnerability. To address these shortcomings, in this paper, we propose an efficient intra-process isolation technique for the RISC-V open ISA, called SealPK, which supports up to 1024 unique domains. Additionally, we devise three novel sealing features to protect the allocated domains, their associated pages, and their permissions from modifications or tampering by an attacker. We demonstrate the efficiency of SealPK by leveraging it to implement an isolated secure shadow stack on an FPGA prototype.

Keywords: Intra-Process Memory Isolation, Memory Protection Keys, RISC-V, Isolated Shadow Stack.



Full Text (PDF)