Return Address Falsification Prevention via CPU Debug Functions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for preventing false code execution due to buffer-overflow vulnerabilities require modifying program code and are ineffective against unknown attack patterns, necessitating frequent system changes and patching, and do not deter false code execution effectively without modifying hardware or software.

Innovation Solution

A method that detects and prevents buffer-overflow attacks by backing up return addresses and using debug functions to detect falsification, producing error signals when the return address is altered, and controlling the program flow to prevent execution of false code, without modifying hardware, operating systems, or software.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If existing methods modify program code to prevent buffer-overflow, then security improvement is achieved, but system complexity and maintenance burden increase

Engineering Contradiction:
ImprovesecurityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by backing up return addresses to a safe location before they are potentially overwritten by buffer-overflow attacks. This preparatory measure ensures that the original return address is preserved and can be restored if corruption is detected, preventing false code execution without requiring complex modifications to the program code itself.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism using the debug function as a mediator between the program execution and the return address storage. The debug function acts as a protective layer that detects modifications to return addresses and triggers appropriate responses, thereby securing the system without directly modifying the core program code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If existing methods use signature-based virus detection, then known threats can be identified, but unknown attack patterns remain undetected

Engineering Contradiction:
Improvedetection capabilityVSAvoidadaptability to unknown attacks
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements feedback by continuously monitoring return addresses during program execution and comparing them against the backed-up original values. When a discrepancy is detected, the system immediately responds by terminating the program or alerting the user. This active feedback mechanism enables detection of unknown attack patterns in real-time, rather than relying on pre-programmed signatures.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent applies self-service by enabling the system to detect and respond to buffer-overflow attacks autonomously through the debug function. The system monitors its own execution state, detects modifications to critical data structures like return addresses, and takes corrective action without external intervention, thereby adapting to any attack pattern that modifies memory structures.

Inventive Principle:
Principle #25Self-service

3Reliability

If frequent system changes and patching are performed to address security vulnerabilities, then security is maintained, but time loss and productivity decrease

Engineering Contradiction:
ImprovesecurityVSAvoidtime for system changes
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by implementing permanent protective measures through the debug function that automatically detects and responds to buffer-overflow attacks. This eliminates the need for frequent patches and system changes, as the protection is built into the execution environment and activates only when needed, thereby reducing time loss and maintaining productivity.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If return address is protected by making it read-only, then false code execution is prevented, but program functionality may be impaired

Engineering Contradiction:
Improveprotection against false code executionVSAvoidprogram functionality
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies preliminary action by backing up the return address to a safe location before execution begins. This allows the return address to be read and modified during normal program operation without compromising security. The backup serves as a safety net that can be restored if corruption is detected, thereby maintaining both protection and functionality.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces the debug function as an intermediary that mediates between the read-only protection requirement and the need for program functionality. The debug function monitors access to return addresses and only intervenes when corruption is detected, allowing normal operation to proceed uninterrupted while maintaining security through the backup mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8042179B2False code execution prevention method, program for the method, and recording medium for recording the program
Publication Date: 2011.10.18 SCI PARK CORP
  • US8042179B2 patent drawing
  • US8042179B2 patent drawing
  • US8042179B2 patent drawing

AI summary

A method for preventing a return address from being falsified due to a buffer overflow during the program execution, and for detecting the buffer-overflow beforehand.When the return address is re-written during program execution, the debug function of the central processing unit is used to output an error. The falsification of the return address is detected through the error output. Then the falsified return address is re-written to a value stored in advance to enable the program to return to normal operation. When the falsification of the return address is detected, the executing program is terminated.