Program Generation With Selective CFI for Lower Execution Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing buffer overflow attack countermeasures, such as Control Flow Integrity (CFI), face challenges like increased execution overhead and implementation difficulties on low-performance processors, and do not effectively align with the importance of functions or execution environments.

Innovation Solution

A program generation method that identifies functions with high tampering likelihood and determines the scope of CFI application based on control flow type, inserting processing instructions to execute the control flow correctly and minimize overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If CFI is applied to all functions in the program, then security against buffer overflow attacks is improved, but execution overhead increases and processor performance deteriorates

Engineering Contradiction:
Improvesecurity against buffer overflow attacksVSAvoidexecution overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies CFI selectively to specific functions identified as having high tampering likelihood based on control flow analysis, rather than uniformly to all functions. This localized approach concentrates security resources on critical paths while leaving less sensitive functions unprotected, thereby reducing overall execution overhead while maintaining security where most needed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent segments the program into different control flow types (forward edge and backward edge) and applies CFI differently to each segment. Forward edge control flows receive one type of CFI protection while backward edge control flows receive another type, allowing optimization of protection strategies for different execution paths and reducing unnecessary overhead in less critical segments.

Inventive Principle:
Principle #1Segmentation

2Reliability

If CFI is applied to all functions in the program, then security against buffer overflow attacks is improved, but device complexity increases

Engineering Contradiction:
Improvesecurity against buffer overflow attacksVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements CFI with different levels of complexity tailored to specific control flow types. Forward edge control flows use simpler verification mechanisms while backward edge control flows use more sophisticated techniques, allowing the system to achieve comprehensive security without uniformly high complexity across all functions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent divides the CFI implementation into distinct segments based on control flow type, with separate handling for forward edge and backward edge cases. This segmentation allows each segment to be optimized independently, reducing overall implementation complexity by avoiding the need to apply the most complex solution uniformly throughout the entire program.

Inventive Principle:
Principle #1Segmentation

3Reliability

If CFI scope is expanded to protect more functions, then security is improved, but execution time increases

Engineering Contradiction:
Improvesecurity coverageVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent identifies and protects only those functions with high tampering likelihood based on control flow analysis, rather than expanding CFI to all functions. This targeted approach achieves adequate security coverage by focusing on critical functions while avoiding the time overhead of protecting less vulnerable functions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies CFI partially to only the necessary control flow paths (forward and backward edges with high tampering likelihood) rather than excessively applying it to all possible functions. This partial application achieves sufficient security coverage while minimizing execution time loss.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250272073A1Program generation method, program generation device, and storage medium storing program generation program
Publication Date: 2025.08.28 DENSO CORP
  • US20250272073A1 patent drawing
  • US20250272073A1 patent drawing
  • US20250272073A1 patent drawing

AI summary

A program generation method includes acquiring a program, extracting functions within program code included in the program and a control flow, which is a call/return relationship of the functions, identifying a first function among the functions that has a high tampering likelihood in the control flow, identifying a second function among the functions that is reachable to the first function, determining a scope of application of control flow integrity (CFI) including the first function and the second function according to a type of the control flow, and inserting a processing instruction into the program code to execute the control flow correctly within the scope of application.