Abstract:Control-flow attestation unifies the worlds of control-flow integrity and platform attestation by measuring and reporting a target's run-time behaviour to a verifier. Trust assurances in the target are provided by testing whether its execution follows an authorised control-flow path. The problem has been explored in various settings, such as assessing the trustworthiness of cyber-physical systems, Internet of Things devices, cloud platforms, and many others. Despite a significant number of proposals being made in recent years, the area remains fragmented, addressing different adversarial behaviours, verification paradigms, and deployment challenges. In this paper, we present the first survey of control-flow attestation, examining the core ideas and solutions in state-of-the-art schemes. In total, we survey over 30 papers published between 2016-2024, consolidate and compare their key features, and pose several challenges and recommendations for future research in the area.
What problem does this paper attempt to address?
The problem that this paper attempts to solve is the challenges that arise after the combination of Control - Flow Integrity (CFI) and platform attestation. Specifically, it is to ensure that the target device has not been tampered with at runtime and that its execution follows the authorized control - flow path. Traditional methods such as remote attestation mainly rely on the measurement of static components (such as boot loaders and other software binaries) and cannot reliably detect runtime attacks. Control - Flow Attestation (CFA), on the other hand, aims to overcome these limitations and provide trust guarantees by measuring and reporting the behavior of the target device at runtime.
### Specific description of the problem
1. **Runtime threats**: Modern computing platforms are vulnerable to runtime attacks, such as Return - Oriented Programming (ROP). This type of attack combines existing code fragments into unauthorized functions, bypassing traditional defense mechanisms (such as code signing and static integrity check methods). Such attacks emphasize the need to ensure the legality of the program execution path.
2. **Combination of Control - Flow Integrity (CFI) and platform attestation**: Although existing CFI methods can ensure the legality of the program execution path, they can usually only be checked at the compilation or linking stage and cannot dynamically monitor the behavior at runtime. Platform attestation is mainly used to verify whether the static components at system startup have been tampered with. CFA combines these two to monitor and report the control flow at runtime to ensure the integrity and credibility of the system.
3. **Fragmented solutions**: Although many CFA schemes have been proposed in recent years, these schemes are often aimed at different adversarial behaviors, verification paradigms, and deployment challenges, resulting in a still relatively fragmented field. Therefore, a comprehensive review is needed to organize and compare existing CFA schemes in order to better understand their characteristics, advantages, and disadvantages.
### Goals of the paper
The goal of this paper is to systematize the knowledge system through a comprehensive review of more than 30 published CFA - related literatures and propose directions and suggestions for future research. Specific contributions include:
- Provide the first systematized knowledge paper on control - flow attestation, covering proposals within about a decade since CFA was first introduced.
- Integrate and describe the knowledge areas explored in existing CFA schemes and their applications.
- Use unified standards to compare existing CFA schemes, analyze their methods, trust assumptions, target control - flow transfer types, and adversarial models, thereby revealing their characteristics, advantages, and disadvantages.
Through these efforts, the paper hopes to provide valuable references and guidance for future CFA research.