Binary Translation Mechanism for Control-Flow Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face challenges in efficiently executing complex instructions and ensuring control-flow security, particularly in multiprocessor systems where resource constraints and security threats, such as malicious attacks, can impact performance and integrity.

Innovation Solution

A binary translation mechanism is implemented within the processor to enhance control-flow security by using a dynamic binary translator (DBT) and model-specific registers (MSRs) to validate branching instructions, ensuring only authorized destinations are executed, thereby preventing unauthorized control flow redirects.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a binary translation mechanism is implemented to validate branching instructions, then control-flow security is improved, but device complexity increases

Engineering Contradiction:
Improvecontrol-flow securityVSAvoidprocessor structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A binary translation mechanism is introduced as an intermediary layer between the original binary code and the processor execution unit. This translator validates branching instructions and redirects control flow through authorized paths, thereby enhancing control-flow security without requiring fundamental changes to the processor architecture. The translator acts as a mediator that filters and approves control flow operations before they reach the execution core.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The binary translation mechanism performs preliminary validation of branching instructions before they are executed by the processor. By pre-checking control flow instructions and preparing authorized redirect paths in advance, the system prevents unauthorized control flow changes from reaching the execution unit, thus improving security while maintaining efficient processor operation.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If validation of branching instructions is performed, then security against malicious attacks is improved, but execution speed decreases

Engineering Contradiction:
ImprovesecurityVSAvoidinstruction execution speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

Control flow validation and translation are performed in advance during the binary translation phase, before execution. Authorized branching instructions are pre-validated and their target addresses are pre-computed, allowing the processor to execute approved control flow operations without real-time validation overhead, thus maintaining high execution speed while ensuring security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The binary translation mechanism is designed to be self-sufficient in validating control flow instructions using predefined security policies and authorized destination lists. Once the translation is complete, the validated instructions can be executed autonomously without requiring continuous external validation, reducing the speed penalty associated with security checks.

Inventive Principle:
Principle #25Self-service

3Productivity

If dynamic binary translation is used to optimize instruction execution, then productivity is improved, but device complexity increases

Engineering Contradiction:
Improveinstruction execution efficiencyVSAvoidtranslation mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The binary translation mechanism is implemented as a dynamic component that adapts to the specific control flow characteristics of the executed binary code. The translator can adjust its validation strictness and optimization strategies based on the runtime behavior of the program, allowing it to improve execution efficiency for different code patterns while managing its own complexity through adaptive rather than static design.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10048965B2Instruction and logic for a binary translation mechanism for control-flow security
Publication Date: 2018.08.14 INTEL CORP
  • US10048965B2 patent drawing
  • US10048965B2 patent drawing
  • US10048965B2 patent drawing

AI summary

A processor includes a front end, an execution pipeline, and a binary translator. The front end includes logic to receive an instruction and to dispatch the instruction to a binary translator. The binary translator includes logic to determine whether the instruction includes a control-flow instruction, identify a source address of the instruction, identify a target address of the instruction, determine whether the target address is a known destination based upon the source address, and determine whether to route the instruction to the execution pipeline based upon the determination whether the target address is a known destination based upon the source address. The target address includes an address to which execution would indirectly branch upon execution of the instruction.