FIPAC: Thwarting Fault- and Software-Induced Control-Flow Attacks with ARM Pointer Authentication

04/30/2021
by   Robert Schilling, et al.
0

With the improvements of computing technology, more and more applications embed powerful ARM processors into their devices. These systems can be attacked by redirecting the control-flow of a program to bypass critical pieces of code such as privilege checks or signature verifications. Control-flow hijacks can be performed using classical software vulnerabilities, physical fault attacks, or software-induced fault attacks. To cope with this threat and to protect the control-flow, dedicated countermeasures are needed. To counteract control-flow hijacks, control-flow integrity (CFI) aims to be a generic solution. However, software-based CFI typically either protects against software or fault attacks, but not against both. While hardware-assisted CFI can mitigate both types of attacks, they require extensive hardware modifications. As hardware changes are unrealistic for existing ARM architectures, a wide range of systems remains unprotected and vulnerable to control-flow attacks. In this work, we present FIPAC, an efficient software-based CFI scheme protecting the execution at basic block granularity of ARM-based devices against software and fault attacks. FIPAC exploits ARM pointer authentication of ARMv8.6-A to implement a cryptographically signed control-flow graph. We cryptographically link the correct sequence of executed basic blocks to enforce CFI at this granularity. We use an LLVM-based toolchain to automatically instrument programs. The evaluation on SPEC2017 with different security policies shows a code overhead between 54-97% and a runtime overhead between 35-105 software attacks, FIPAC outperforms related work protecting the control-flow against fault attacks. FIPAC is an efficient solution to provide protection against software- and fault-based CFI attacks on basic block level on modern ARM devices.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/07/2023

SFP: Providing System Call Flow Protection against Software and Fault Attacks

With the improvements in computing technologies, edge devices in the Int...
research
03/22/2018

Securing Conditional Branches in the Presence of Fault Attacks

In typical software, many comparisons and subsequent branch operations a...
research
03/07/2022

IOLLVM: enhance version of OLLVM

Code obfuscation increases the difficulty of understanding programs, imp...
research
01/19/2022

Enhancing the Security Privacy of Wearable Brain-Computer Interfaces

Brain computing interfaces (BCI) are used in a plethora of safety/privac...
research
05/29/2020

Fast Execute-Only Memory for Embedded Systems

Remote code disclosure attacks threaten embedded systems as they allow a...
research
07/06/2020

Automated Multi-Architectural Discovery of CFI-Resistant Code Gadgets

Memory corruption vulnerabilities are still a severe threat for software...
research
02/19/2021

Toward Taming the Overhead Monster for Data-Flow Integrity

Data-Flow Integrity (DFI) is a well-known approach to effectively detect...

Please sign up or login with your details

Forgot password? Click here to reset