Pointer Encryption for Buffer Overflow Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for protecting computer systems from data corruption, such as stack and heap buffer overflow attacks, are inefficient and only partially effective, allowing attackers to still cause unintended behavior by exploiting corrupted pointers.

Innovation Solution

A system and method that analyze the modification state of memory segments to ensure read-only access, halting the computer process when access is not restricted to read-only, thereby preventing damage from corrupted pointers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If memory protection techniques (stack canary, heap decoys, W^X) are implemented, then security against buffer overflow attacks is improved, but device complexity and efficiency are worsened

Engineering Contradiction:
Improvesecurity against buffer overflow attacksVSAvoidcomplexity of memory protection mechanisms
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the parameter of pointer representation by encrypting pointers using a cryptographic function with a secret key. This transforms pointers from plain memory addresses to encrypted values, fundamentally changing how pointers are stored and transmitted without adding complex protection layers around memory regions

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent replaces mechanical/memory-based protection mechanisms (stack canaries, heap decoys, W^X memory permissions) with a cryptographic substitution approach. Instead of relying on hardware-enforced memory protection or software wrappers, the solution uses cryptographic transformation of pointers to achieve security with simpler implementation

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If pointer encryption is implemented, then security against pointer corruption is improved, but processing speed is worsened

Engineering Contradiction:
Improvesecurity against pointer corruptionVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent performs pointer encryption as a preliminary action during function call setup, before the actual computation occurs. The encrypted pointer is prepared in advance and passed to the target function, which then decrypts it. This preliminary encryption approach ensures security is established before any potential corruption can occur, while minimizing ongoing performance impact

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the pointer handling process into distinct encryption and decryption phases. The encryption occurs at the call site, the encrypted pointer is transmitted through potentially unsafe code, and decryption occurs at the target function. This segmentation isolates the cryptographic operations to specific points, minimizing their impact on overall processing speed

Inventive Principle:
Principle #1Segmentation

3Reliability

If wrapper functions replace library functions, then security against unsafe function usage is improved, but adaptability and coverage are worsened

Engineering Contradiction:
Improvesecurity against unsafe function usageVSAvoidcoverage of protected functions
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent creates a universal protection mechanism that works with any function taking pointer parameters, regardless of whether the function itself is unsafe. By encrypting pointers at the call site rather than wrapping individual functions, the solution provides universal coverage across all pointer-using functions in the program, including those not traditionally considered unsafe

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9026859B1Safer mechanism for using pointers to code
Publication Date: 2015.05.05 GOOGLE LLC
  • US9026859B1 patent drawing
  • US9026859B1 patent drawing
  • US9026859B1 patent drawing

AI summary

Systems, methods, and computer storage mediums are provided for mitigating damage to data caused by a computer process having a corrupted pointer. An exemplary method includes receiving a pointer to a memory address. The pointer is received in conjunction with a command of the computer process to access data stored at the memory address, where the data is intended to be stored in a memory segment that allows for read-only access. The memory segment that includes the memory address is analyzed to determine a modification state for the memory segment, where the modification state indicates the type of access that the memory segment allows. The computer process is halted when the modification state indicates that the memory segment allows for other than read-only access.