Code Pointer Complement for Processing Flow Security
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If existing protection mechanisms like ASLR are used, then basic security is provided, but they can be circumvented by attackers using debuggers
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.
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.
3Reliability
If code pointer manipulation detection is implemented, then protection against buffer overflow and shellcode attacks is improved, but processing overhead increases
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.
Data Source
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.


