Obfuscating Address Space Layout Randomization Mappings

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems remain vulnerable to return-oriented programming (ROP) attacks, where attackers manipulate existing instructions in memory to gain unauthorized control, despite secure programming practices and hardware-based security measures.

Innovation Solution

Implementing fine-grained address space layout randomization by shuffling virtual memory pages into randomized clumps, obfuscating memory mappings to prevent attackers from predicting function locations and executing arbitrary instructions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If address space layout randomization is implemented to mitigate ROP attacks, then system security is improved, but the complexity of memory management increases

Engineering Contradiction:
Improvesystem securityVSAvoidmemory management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary component (the mapping module or dynamic linker) that sits between the process and the randomized memory addresses. This intermediary maintains the address mapping information and resolves function addresses indirectly, preventing attackers from directly exploiting memory layout while preserving normal system operation. The intermediary handles the complexity of managing randomized addresses without requiring changes to the core memory management subsystem.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Object-affected harmful factors

If fine-grained randomization of memory pages is implemented, then resistance to ROP attacks is improved, but the difficulty of detecting and measuring function addresses increases

Engineering Contradiction:
ImproveROP attack vulnerabilityVSAvoidfunction address predictability
Core Design Contradiction:
Object-affected harmful factorsVSDifficulty of detecting and measuring

Solution Approach 1:

The patent divides the memory address space into multiple segments or clumps of pages, each randomized independently. Instead of randomizing individual pages or the entire address space as a single unit, the segmentation approach creates intermediate-level randomization units. This provides sufficient obfuscation to prevent ROP attacks while maintaining manageable complexity in the randomization scheme.

Inventive Principle:
Principle #1Segmentation

3Reliability

If indirect calls are configured without disclosing function locations, then security against code injection is improved, but the ease of operation for legitimate function calls decreases

Engineering Contradiction:
Improvesecurity against code injectionVSAvoidfunction call simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent performs preliminary actions by pre-establishing indirect call mechanisms (such as function pointer tables or descriptor structures) before execution. The mapping information is prepared in advance, and the indirect call infrastructure is set up beforehand, so that legitimate function calls can proceed without requiring direct address disclosure. This preliminary setup maintains security while preserving operational ease during actual function execution.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10311227B2Obfuscation of an address space layout randomization mapping in a data processing system
Publication Date: 2019.06.04 APPLE INC
  • US10311227B2 patent drawing
  • US10311227B2 patent drawing
  • US10311227B2 patent drawing

AI summary

A data processing system can use a method of fine-grained address space layout randomization to mitigate the system's vulnerability to return oriented programming security exploits. The randomization can occur at the sub-segment level by randomizing clumps of virtual memory pages. The randomized virtual memory can be presented to processes executing on the system. The mapping between memory spaces can be obfuscated using several obfuscation techniques to prevent the reverse engineering of the shuffled virtual memory mapping.