Data Location Obfuscation via Memory Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software running on untrusted hosts is vulnerable to inspection and modification, as existing protection schemes are not economically viable against determined attackers, and there is a need to increase the time and effort required to attack software to make the costs outweigh the benefits.
Innovation Solution
Implementing data location obfuscation techniques, such as periodic reordering and shuffling of data in memory, combined with salted encryption, and scrambling of pointer references, mediated by a secure memory management component to complicate data flow analysis and memory traces, while preserving program functionality.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Difficulty of detecting and measuring
If data is stored in memory with standard access patterns, then program functionality is simple and efficient, but data flow patterns are easily analyzed and memory traces are straightforward to follow
Solution Approach 1:
The patent introduces a secure memory management component as an intermediary layer between the program and physical memory. This component mediates all memory accesses by translating program memory requests into actual memory locations, thereby hiding the true data flow patterns from attackers while maintaining program functionality. The intermediary manages the mapping between program-visible memory addresses and actual physical memory locations, preventing direct analysis of data flows.
Solution Approach 2:
The patent implements dynamic reordering of data in memory at periodic intervals. Instead of static memory allocation, the system continuously changes the mapping between program memory addresses and physical memory locations. This dynamic behavior causes memory traces to become unpredictable and difficult to analyze, as the same logical address may map to different physical locations at different times during program execution.
2Reliability
If data is periodically reordered in memory, then data flow patterns are obscured and security is improved, but program access to memory becomes more complex
Solution Approach 1:
The secure memory management component is designed to operate transparently to the program, handling all the complexity of memory reordering and address translation automatically. The program continues to use memory in the standard way without needing to be aware of or manage the reordering operations. The memory management component serves itself by maintaining internal mappings and handling translations, freeing the program from dealing with the complexity directly.
3Reliability
If salted encryption is applied to data, then data protection is enhanced, but processing overhead increases
Solution Approach 1:
The patent applies salted encryption selectively to specific data structures and memory regions that contain sensitive information or control flow data, rather than encrypting all memory uniformly. By identifying and protecting only the critical portions of data locally, the system achieves strong protection for security-critical elements while minimizing the processing overhead associated with encryption. Non-critical data can be accessed and processed without encryption overhead.
Data Source
AI summary
Programs running on an open architecture, such as a personal computer, are vulnerable to inspection and modification. This is a concern as the program may include or provide access to valuable information. As a defense, the actual location of data can be hidden throughout execution of the program by way of periodic location reordering and pointer scrambling, among other things. These techniques serve to complicate static data flow analysis and dynamic data tracking thereby at least deterring program tampering.


