Control-Flow Integrity via Binary Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecontrol-flow integrity protectionVSAvoidsoftware modification time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improvecontrol-flow integrityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If untrusted software components are linked with managed runtime, then functionality is improved, but control-flow security risks increase

Engineering Contradiction:
Improvesoftware component integrationVSAvoidcontrol-flow security risks
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP3274901B1Control-flow integrity with managed code and unmanaged code
Publication Date: 2021.03.24 INTEL CORP
  • EP3274901B1 patent drawingFigure 1
  • EP3274901B1 patent drawingFigure 2
  • EP3274901B1 patent drawingFigure 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.