CRMay 24, 2019

PACStack: an Authenticated Call Stack

arXiv:1905.10242v563 citations
Originality Highly original
AI Analysis

This addresses the security issue of run-time attacks for software developers and systems, offering a hardware-efficient solution without requiring dedicated hardware.

The paper tackles the problem of preventing return address manipulation attacks on program control-flow integrity by introducing an authenticated call stack (ACS) approach using chained message authentication codes (MACs), with a prototype called PACStack that achieves security comparable to hardware-assisted shadow stacks and incurs only about 3% performance overhead.

A popular run-time attack technique is to compromise the control-flow integrity of a program by modifying function return addresses on the stack. So far, shadow stacks have proven to be essential for comprehensively preventing return address manipulation. Shadow stacks record return addresses in integrity-protected memory secured with hardware-assistance or software access control. Software shadow stacks incur high overheads or trade off security for efficiency. Hardware-assisted shadow stacks are efficient and secure, but require the deployment of special-purpose hardware. We present authenticated call stack (ACS), an approach that uses chained message authentication codes (MACs). Our prototype, PACStack, uses the ARM general purpose hardware mechanism for pointer authentication (PA) to implement ACS. Via a rigorous security analysis, we show that PACStack achieves security comparable to hardware-assisted shadow stacks without requiring dedicated hardware. We demonstrate that PACStack's performance overhead is small (~3%).

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes