Control-Flow Integrity via Binary Translation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing control-flow integrity solutions are inadequate for ensuring robust protection across both managed and unmanaged code environments, particularly when different types of software are used together, as they often require significant human effort and may not fully address control-flow risks.
Innovation Solution
The implementation of a data processing system that uses hardware mechanisms to enforce control-flow integrity by converting managed and unmanaged code into hardened forms through binary translation, incorporating CFI features such as tags and instructions to ensure secure control flow, even across different code types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software is rewritten or recompiled to incorporate CFI features, then control-flow integrity protection is improved, but development time and human effort increase significantly
Solution Approach 1:
A binary translator is introduced as an intermediary component that automatically converts existing binaries into hardened versions with CFI features. This translator acts as a mediator between the original software and the CFI enforcement mechanism, eliminating the need for developers to manually modify code while still achieving robust control-flow integrity protection.
Solution Approach 2:
The system provides self-service by automatically detecting and hardening binaries without requiring developer intervention. The binary translator operates autonomously to identify control-flow instructions, generate CFI tags, and insert protective instructions, thereby eliminating the time-consuming manual modification process while maintaining security.
2Reliability
If CFI hardware mechanisms are used to ensure control flow integrity, then security against malware is improved, but the complexity of the system increases
Solution Approach 1:
The patent replaces complex software-based control-flow validation mechanisms with hardware-based CFI instructions and tags that leverage processor capabilities. This substitution reduces the software complexity burden by using hardware assistance for control-flow verification, making the overall system more efficient despite the added hardware dependency.
3Adaptability or versatility
If untrusted software components are linked with managed runtime, then functionality is improved, but control-flow security risks increase
Solution Approach 1:
The system segments control-flow validation into distinct phases: a translation phase where the binary translator analyzes and marks control-flow instructions in untrusted code, and an execution phase where CFI instructions validate control transfers. This segmentation allows untrusted components to be integrated while maintaining security through phased validation, preventing unauthorized code execution without isolating functionality.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A data processing system (DPS) supports control-flow integrity (CFI). The DPS comprises a processing element with a CFI enforcement mechanism that supports one or more CFI instructions. The DPS also comprises at least one machine-accessible medium responsive to the processing element. Managed code in the machine-accessible medium is configured (a) to execute in a managed runtime environment (MRE) in the data processing system, and (b) to transfer control out from the MRE to unmanaged code, in response to a transfer control statement in the managed code. The machine-accessible medium also comprises a binary translator which, when executed, converts unmanaged code in the data processing system into hardened unmanaged code (HUC) by including CFI features in the HUC. The CFI features comprise one or more CFI instructions to utilize the CFI enforcement mechanism of the processing element for transfers of control initiated by the HUC. Other embodiments are described and claimed.