Code Pointer Complement for Processing Flow Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies are inadequate in protecting electronic devices from attacks that manipulate the processing flow, such as buffer overflow and shellcode attacks, as they require modifications to individual programs and add significant development overhead, and do not guarantee full protection against code pointer manipulations.

Innovation Solution

A method is introduced where a code pointer complement is updated in parallel with the code pointer, using a processor to maintain an initial code pointer complement and verify it against the code pointer during execution, ensuring that any manipulation of the code pointer can be detected and corrective actions taken, without modifying application programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If security countermeasures are embedded directly in programs, then protection against processing flow attacks is improved, but device complexity and development overhead increase significantly

Engineering Contradiction:
Improveprotection against processing flow attacksVSAvoidcomplexity of security countermeasures
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a code pointer complement as an intermediary mechanism that works alongside the existing code pointer without requiring modifications to the application programs themselves. The complement is maintained in a separate data structure and updated in parallel, serving as a mediator that detects code pointer manipulations without burdening the application developer with complex security implementation details.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The security mechanism is segmented into separate components: the code pointer complement is maintained independently from the application code, and the verification logic is separated from the execution flow. This allows the security function to be implemented as a standalone module that operates alongside existing programs without integrating security complexity into the application development process.

Inventive Principle:
Principle #1Segmentation

2Reliability

If existing protection mechanisms like ASLR are used, then basic security is provided, but they can be circumvented by attackers using debuggers

Engineering Contradiction:
Improvebasic security protectionVSAvoidcircumvention by debugger-based attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The code pointer complement mechanism provides continuous feedback about the integrity of the code pointer throughout program execution. By maintaining a running complement value that is updated in parallel with the code pointer, the system can detect any manipulation attempts in real-time, including those made through debugger-based attacks, and trigger appropriate security responses.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The mechanism performs preliminary verification by maintaining a pre-computed complement value that anticipates potential code pointer manipulations. Before any malicious code execution can occur, the system checks whether the code pointer has been altered from its expected value, thereby preventing or detecting circumvention attempts before they can succeed.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If code pointer manipulation detection is implemented, then protection against buffer overflow and shellcode attacks is improved, but processing overhead increases

Engineering Contradiction:
Improveprotection against buffer overflow and shellcode attacksVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges the security verification operation with the existing code execution flow by updating the code pointer complement in parallel with the code pointer during normal instruction execution. This combining approach allows security checking to occur without requiring separate verification steps, thereby minimizing processing overhead while maintaining comprehensive protection against code pointer manipulation attacks.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10552602B2System and method for protecting a device against attacks on processing flow using a code pointer complement
Publication Date: 2020.02.04 THALES DIS FRANCE SA
  • US10552602B2 patent drawing
  • US10552602B2 patent drawing
  • US10552602B2 patent drawing

AI summary

A system, method and computer-readable storage medium with instructions for operating a processor of an electronic device to protect against unauthorized manipulation of the code pointer by maintaining and updating a code pointer complement against which the code pointer may be verified. Other systems and methods are disclosed.