Pointer Encryption for Buffer Overflow Protection
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Reliability
If pointer encryption is implemented, then security against pointer corruption is improved, but processing speed is worsened
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
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
3Reliability
If wrapper functions replace library functions, then security against unsafe function usage is improved, but adaptability and coverage are worsened
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
Data Source
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.


