Zipper Stack: Shadow Stacks Without Shadow

02/03/2019
by   Jinfeng Li, et al.
0

Return-Oriented Programming (ROP) is a typical attack technique that can exploit return addresses to repeatedly abuse existing codes ending with return instructions. Most of the current return address protecting mechanisms (also known as the Backward-Edge Control-Flow Integrity) can work only in limited threat models. For example, the attacker cannot control the whole memory, or the attacker have no knowledge of a secret key or random values. This paper presents a novel, lightweight mechanism protecting return addresses, Zipper Stack, which hashes all return addresses by a chain structure. This innovative design can defend against the most powerful attackers who have full control over the program's memory and even know the secret key of the hash function. This threat model is stronger than them in the relevant works. At the same time, it produces very low performance overhead. We implemented Zipper Stack by extending the RISC-V instruction set architecture and the evaluation shows that the performance overhead of Zipper Stack is only 1.86 lightweight nature of Zipper Stack makes it practicable for deployment with minimal modifications on the system. We only need two registers and a hash module, no need to make any changes to the memory allocation and page attributes. Thus, we think Zipper Stack is suitable for actual deployment.

READ FULL TEXT
research
05/24/2019

PACStack: an Authenticated Call Stack

A popular run-time attack technique is to compromise the control-flow in...
research
06/25/2018

A Leak-Resilient Dual Stack Scheme for Backward-Edge Control-Flow Integrity

Manipulations of return addresses on the stack are the basis for a varie...
research
02/18/2020

ShadowGuard : Optimizing the Policy and Mechanism of Shadow Stack Instrumentation using Binary Static Analysis

A shadow stack validates on-stack return addresses and prevents arbitrar...
research
01/23/2018

HCIC: Hardware-assisted Control-flow Integrity Checking

Recently, code reuse attacks (CRAs), such as return-oriented programming...
research
07/26/2018

ret2spec: Speculative Execution Using Return Stack Buffers

Speculative execution is an optimization technique that has been part of...
research
10/20/2021

RegGuard: Leveraging CPU Registers for Mitigation of Control- and Data-Oriented Attacks

CPU registers are small discrete storage units, used to hold temporary d...
research
03/17/2019

NetKernel: Making Network Stack Part of the Virtualized Infrastructure

This paper presents a system called NetKernel that decouples the network...

Please sign up or login with your details

Forgot password? Click here to reset