Function Pointer Protection via Whitelist Validation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer systems face challenges in protecting function pointers from being abused as an attack vector for control-flow hijacking attacks, as current protection mechanisms often have high overheads, are not compatible with existing processes, or both.
Innovation Solution
The system and method involve supplying a library with a list of safe callback values, protecting these values, invoking callbacks, and validating them against the list to determine a status of safe or unsafe, thereby executing or aborting the callbacks accordingly.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing protection mechanisms are applied to function pointers, then security against control-flow hijacking attacks is improved, but system overhead increases and compatibility with existing processes deteriorates
Solution Approach 1:
The patent applies preliminary action by maintaining a pre-established whitelist of safe callback function pointers and validating callbacks against this whitelist before invocation. The validation mechanism checks whether each callback pointer matches an entry in the whitelist, preventing control-flow hijacking attacks by blocking unauthorized callbacks before they can execute. This approach improves security without requiring complex runtime protection mechanisms, thereby avoiding high system overhead and maintaining compatibility with existing processes.
2Reliability
If existing protection mechanisms are applied to function pointers, then security against control-flow hijacking attacks is improved, but compatibility with existing processes deteriorates
Solution Approach 1:
The patent introduces an intermediary validation mechanism that sits between the callback registration and invocation processes. The whitelist acts as a mediator, allowing the system to enforce security policies without directly modifying existing callback handling code. By validating callbacks against the whitelist through this intermediary layer, the system achieves security improvements while maintaining compatibility with existing processes, as the validation can be integrated into the existing callback infrastructure without requiring fundamental changes to process architecture.
Data Source
AI summary
A system includes a memory and a processor in communication with the memory. The processor is configured to supply a library with a list of safe callback values, protect the list of safe callback values, invoke a callback, and validate the callback against the list of safe callback values to determine a status of the callback. The status of the callback is one of safe and unsafe. Additionally, the processor is configured to execute the callback responsive to determining the status of the callback is safe. The processor is also configured to abort the callback responsive to determining the status of the callback is unsafe.


