EC-CFI: Control-Flow Integrity via Code Encryption Counteracting Fault Attacks

01/31/2023
by   Pascal Nasahl, et al.
0

Fault attacks enable adversaries to manipulate the control-flow of security-critical applications. By inducing targeted faults into the CPU, the software's call graph can be escaped and the control-flow can be redirected to arbitrary functions inside the program. To protect the control-flow from these attacks, dedicated fault control-flow integrity (CFI) countermeasures are commonly deployed. However, these schemes either have high detection latencies or require intrusive hardware changes. In this paper, we present EC-CFI, a software-based cryptographically enforced CFI scheme with no detection latency utilizing hardware features of recent Intel platforms. Our EC-CFI prototype is designed to prevent an adversary from escaping the program's call graph using faults by encrypting each function with a different key before execution. At runtime, the instrumented program dynamically derives the decryption key, ensuring that the code only can be successfully decrypted when the program follows the intended call graph. To enable this level of protection on Intel commodity systems, we introduce extended page table (EPT) aliasing allowing us to achieve function-granular encryption by combing Intel's TME-MK and virtualization technology. We open-source our custom LLVM-based toolchain automatically protecting arbitrary programs with EC-CFI. Furthermore, we evaluate our EPT aliasing approach with the SPEC CPU2017 and Embench-IoT benchmarks and discuss and evaluate potential TME-MK hardware changes minimizing runtime overheads.

READ FULL TEXT
research
03/07/2023

SCRAMBLE-CFI: Mitigating Fault-Induced Control-Flow Attacks on OpenTitan

Secure elements physically exposed to adversaries are frequently targete...
research
08/02/2022

SCFI: State Machine Control-Flow Hardening Against Fault Attacks

Fault injection (FI) is a powerful attack methodology allowing an advers...
research
07/07/2019

Detecting Fault Injection Attacks with Runtime Verification

Fault injections are increasingly used to attack secure applications. So...
research
03/23/2020

Fault Attacks on Secure Embedded Software: Threats, Design and Evaluation

Embedded software is developed under the assumption that hardware execut...
research
01/13/2023

PMFault: Faulting and Bricking Server CPUs through Management Interfaces

Apart from the actual CPU, modern server motherboards contain other auxi...
research
03/28/2023

FineIBT: Fine-grain Control-flow Enforcement with Indirect Branch Tracking

We present the design, implementation, and evaluation of FineIBT: a CFI ...
research
06/27/2019

Evaluating data-flow coverage in spectrum-based fault localization

Background: Debugging is a key task during the software development cycl...

Please sign up or login with your details

Forgot password? Click here to reset