Simplex: Repurposing Intel Memory Protection Extensions for Information Hiding

09/14/2020
by   Matthew Cole, et al.
0

With the rapid increase in software exploits, the last few decades have seen several hardware-level features to enhance security (e.g., Intel MPX, ARM TrustZone, Intel SGX, Intel CET). Due to security, performance and/or usability issues these features have attracted steady criticism. One such feature is the Intel Memory Protection Extensions (MPX), an instruction set architecture extension promising spatial memory safety at a lower performance cost due to hardware-accelerated bounds checking. However, recent investigations into MPX have found that is neither as performant, accurate, nor precise as cutting-edge software-based spatial memory safety. As a direct consequence, compiler and operating system support for MPX is dying, and Intel has begun to manufacture desktop CPUs without MPX. Nonetheless, given how ubiquitous MPX is, it provides an excellent yet under-utilized hardware resource that can be aptly salvaged for security purposes. In this paper, we propose Simplex, a library framework that re-purposes MPX registers as general purpose registers. Using Simplex, we demonstrate how MPX registers can be used to store sensitive information (e.g., encryption keys) directly on the hardware. We evaluate Simplex for performance and find that its overhead is small enough to permit its deployment in all but the most performance-intensive code. We refactored the string.h buffer manipulation functions and found a geometric mean 0.9 also modified the deepsjeng and lbm SPEC CPU2017 benchmarks to use Simplex and found a 1 the behavior of the MPX context with regards to multi-process and multi-thread programs.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/18/2018

libmpk: Software Abstraction for Intel Memory Protection Keys

Intel memory protection keys (MPK) is a new hardware feature to support ...
research
12/20/2017

Intel SGX Enabled Key Manager Service with OpenStack Barbican

Protecting data in the cloud continues to gain in importance, with encry...
research
02/14/2023

L4 Pointer: An efficient pointer extension for spatial memory safety support without hardware extension

Since buffer overflow has long been a frequently occurring, high-risk vu...
research
04/08/2022

Color My World: Deterministic Tagging for Memory Safety

Hardware-assisted memory protection features are increasingly being depl...
research
05/30/2018

Lord of the x86 Rings: A Portable User Mode Privilege Separation Architecture on x86

Modern applications are increasingly advanced and complex, and inevitabl...
research
11/08/2019

nanoBench: A Low-Overhead Tool for Running Microbenchmarks on x86 Systems

We present nanoBench, a tool for evaluating small microbenchmarks using ...
research
03/27/2023

Intel TDX Demystified: A Top-Down Approach

Intel Trust Domain Extensions (TDX) is a new architectural extension in ...

Please sign up or login with your details

Forgot password? Click here to reset