Control Flow Integrity Verification in Intermediate Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Low-end embedded devices, despite their critical applications, have limited resources, making them vulnerable to cyber threats and unable to implement sophisticated mitigation measures for ensuring processor control flow integrity, which can lead to malicious control over execution flow.

Innovation Solution

Adjusting intermediate code files to include registration and flow validation code segments that verify the runtime execution sequence against valid execution paths, initiating predefined actions if deviations are detected, thereby ensuring control flow integrity without requiring extensive computing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sophisticated mitigation measures are applied to ensure processor control flow integrity, then security against cyber threats is improved, but resource consumption increases beyond the capacity of low-end embedded devices

Engineering Contradiction:
Improvecontrol flow integrityVSAvoidcomputing resources
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent divides control flow verification into discrete registration code segments and flow validation code segments that are inserted at specific points in the intermediate code files. Each segment performs a specific verification function (registration of execution paths, validation of control flow transitions) rather than implementing a comprehensive sophisticated mitigation measure throughout the entire system, thereby reducing overall resource consumption while maintaining control flow integrity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary analysis of intermediate code files to identify valid execution paths and critical routines before generating the final executable code. Valid execution paths are pre-registered and stored in a control flow verification data structure, allowing runtime verification to simply compare actual execution against pre-computed valid paths rather than performing complex analysis during execution, thus reducing runtime resource consumption.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If control flow verification is implemented in runtime, then detection of malicious execution paths is improved, but device complexity increases

Engineering Contradiction:
Improvedetection capabilityVSAvoidcode structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary control flow verification mechanism that operates between the application code and the processor execution. The registration code segments and flow validation code segments act as intermediaries that intercept control flow transitions, verify them against pre-registered valid execution paths, and either allow or block execution based on verification results. This intermediary layer provides detection capability without requiring fundamental changes to the underlying device architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a simplified copy of the control flow information in the form of registered valid execution paths stored in a data structure. Instead of implementing complex verification logic that analyzes control flow in real-time, the system copies the essential verification information (valid paths, critical routines) into a searchable format that enables simple comparison operations at runtime, thereby reducing device complexity while maintaining detection capability.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11119798B2Applying control flow integrity verification in intermediate code files
Publication Date: 2021.09.14 STERNUM LTD
  • US11119798B2 patent drawing
  • US11119798B2 patent drawing

AI summary

A method of generating compiled intermediate code files adjusted to apply execution control flow verification comprising receiving intermediate code file(s) generated by a compiler which comprise a plurality of routines and adjusting the intermediate code file(s) prior to generating a respective executable file for execution by one or more processors. The adjustment comprising analyzing the intermediate code file(s) to identify valid execution path(s) describing order of execution of preceding routines executed prior to execution of each critical routine, adding registration code segment(s) configured to register execution of each routine in a runtime execution sequence, adding flow validation code segment(s) configured to verify the runtime execution sequence against the valid execution path(s) before invoking the critical routine(s) and outputting the adjusted intermediate code file(s). In runtime, in case the runtime execution sequence does not match a valid execution path(s), the flow validation code segment causes the processor(s) to initiate predefined action(s).