Secure Software Execution via Control Flow Graph Enforcement

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesecurity against abnormal code executionVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

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

Inventive Principle:
Principle #26Copying

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

Inventive Principle:
Principle #10Preliminary action

2Reliability

If static analysis methods are used to enforce control flows, then security enforcement is implemented, but accuracy in representing dynamic behavior deteriorates

Engineering Contradiction:
Improvesecurity enforcementVSAvoidaccuracy in representing dynamic behavior
Core Design Contradiction:
ReliabilityVSMeasurement precision

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

Inventive Principle:
Principle #15Dynamics

3Reliability

If comprehensive static analysis is performed to cover all possible inputs, then security coverage is improved, but execution speed and productivity deteriorate

Engineering Contradiction:
Improvesecurity coverageVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

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

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9953158B1Systems and methods for enforcing secure software execution
Publication Date: 2018.04.24 GEN DIGITAL INC
  • US9953158B1 patent drawing
  • US9953158B1 patent drawing
  • US9953158B1 patent drawing

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.