Endbranch Instructions for Fine-Grained Control Flow Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program compiling and execution techniques are vulnerable to malicious call/jump oriented programming due to indirect branch instructions, which can be exploited to hijack the code execution flow, leading to security vulnerabilities.

Innovation Solution

The implementation of endbranch instructions with scope, granularity, and hash bit parameters to control flow integrity checks, which restrict indirect branches to within module boundaries and verify source instructions, reducing the risk of malicious control flow transfers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If indirect branch instructions are used to enable flexible control flow, then program versatility is improved, but security vulnerability increases due to malicious call/jump oriented programming

Engineering Contradiction:
Improvecontrol flow flexibilityVSAvoidsecurity vulnerability
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent segments the control flow verification into fine-grained checkpoints distributed throughout the code. Instead of a single coarse-grained check, multiple endbranch instructions are placed at specific locations to create segmented verification points that collectively cover the entire control flow path, preventing malicious jumps while maintaining legitimate flexibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary action by pre-computing and storing hash values of valid source instructions that can jump to each endbranch target. During execution, the hash of the actual source instruction is compared against the pre-stored hash values, enabling rapid verification before the jump occurs and blocking malicious control flow transfers.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If control flow integrity checks are implemented to prevent malicious exploits, then security is improved, but performance overhead increases due to verification complexity

Engineering Contradiction:
Improvecontrol flow integrityVSAvoidexecution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the verification parameter from comparing full instruction sequences or addresses to comparing compact hash values. This parameter transformation reduces the verification operation to a simple hash comparison, significantly decreasing the computational overhead while maintaining the integrity check's effectiveness in preventing malicious control flow transfers.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces hash values as an intermediary representation between the source instruction and the verification process. Instead of directly analyzing or comparing complex instruction structures, the system uses hash values as a simplified mediator that captures the essential identity of valid source instructions, enabling fast verification with minimal performance impact.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If fine grained control flow enforcement is implemented, then security against malicious exploits is improved, but device complexity increases due to additional verification mechanisms

Engineering Contradiction:
Improvesecurity against exploitsVSAvoidverification mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses copying by storing hash values of valid source instructions in a data structure (such as a hash table or array) that can be efficiently queried during execution. This copied representation of validity information allows the verification mechanism to operate with simple lookup and comparison operations, reducing the complexity of the verification logic while maintaining fine-grained security enforcement.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11327755B2Fine grained control flow enforcement to mitigate malicious call/jump oriented programming
Publication Date: 2022.05.10 INTEL CORP
  • US11327755B2 patent drawing
  • US11327755B2 patent drawing
  • US11327755B2 patent drawing

AI summary

In one embodiment, a processor comprises a decoder to decode a first instruction, the first instruction comprising an opcode and at least one parameter, the opcode to identify the first instruction as an instruction associated with an indirect branch, the at least one parameter indicative of whether the indirect branch is allowed; and circuitry to generate an error message based on the at least one parameter.