Data Location Obfuscation via Memory Reordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedifficulty of data flow analysisVSAvoidmemory management complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvesoftware protection reliabilityVSAvoidmemory access ease
Core Design Contradiction:
ReliabilityVSEase of operation

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.

Inventive Principle:
Principle #25Self-service

3Reliability

If salted encryption is applied to data, then data protection is enhanced, but processing overhead increases

Engineering Contradiction:
Improvedata protection strengthVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9117094B2Data location obfuscation
Publication Date: 2015.08.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9117094B2 patent drawing
  • US9117094B2 patent drawing
  • US9117094B2 patent drawing

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.