Secure Software Execution via Control Flow Graph Enforcement
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for enforcing intended control flows in software execution, such as static analysis, are inadequate as they may not accurately represent dynamic behavior and require significant processing overhead, failing to prevent abnormal code execution effectively.
Innovation Solution
The system records function calls made by software during controlled executions and forces subsequent runs to follow a recorded pattern, using a control flow graph to monitor and enforce safe function call pathways, thereby preventing abnormal code execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If static analysis of assembly code is used to enforce control flows, then security against abnormal code execution is improved, but processing overhead and complexity increase significantly
Solution Approach 1:
The patent creates a control flow graph that copies and represents the execution paths of benign inputs. Instead of performing complex static analysis on all possible inputs, the system captures the actual control flow patterns from representative benign executions and uses this copied model to enforce security during runtime, significantly reducing processing overhead while maintaining security
Solution Approach 2:
The system performs preliminary analysis by executing benign inputs beforehand to generate the control flow graph. This preliminary action captures the expected control flow patterns in advance, so that during actual software execution, only simple pattern matching is needed rather than complex real-time analysis, reducing processing overhead
2Reliability
If static analysis methods are used to enforce control flows, then security enforcement is implemented, but accuracy in representing dynamic behavior deteriorates
Solution Approach 1:
The patent transitions from static analysis to dynamic analysis by actually executing benign inputs to generate the control flow graph. This dynamic approach captures the real runtime behavior of the software including all conditional branches and loops that are triggered by benign inputs, providing accurate representation of dynamic behavior that static analysis cannot achieve
3Reliability
If comprehensive static analysis is performed to cover all possible inputs, then security coverage is improved, but execution speed and productivity deteriorate
Solution Approach 1:
The system performs partial analysis by selecting and executing a representative set of benign inputs rather than analyzing all possible inputs. This partial action is sufficient to capture the essential control flow patterns needed for security enforcement, achieving adequate security coverage without the prohibitive cost of exhaustive analysis, thus maintaining execution speed
Data Source
AI summary
The disclosed computer-implemented method for enforcing secure software execution may include (1) providing at least one known benign input to an executable file that is susceptible to abnormal code execution, (2) observing a series of function calls made by the executable file as the executable file processes the known benign input, (3) storing the series of function calls as a control flow graph that represents known safe function call pathways for the executable file, and (4) forcing a subsequent execution of the executable file to follow the series of function calls stored in the control flow graph to protect the executable file against abnormal code execution. Various other methods, systems, and computer-readable media are also disclosed.


