Control Flow Integrity Verification in Intermediate Code
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If control flow verification is implemented in runtime, then detection of malicious execution paths is improved, but device complexity increases
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.
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.
Data Source
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).

