Threaded Linking Pointer Mechanism for ROP Attack Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current security defenses, such as shadow stacks, are inadequate in mitigating Return-oriented Programming (ROP) and Jump-oriented Programming (JOP) attacks, which exploit pointers used in rebase and binding operations within data processing systems.

Innovation Solution

Implementing a linked list table structure that includes a first component for storing linking data and a second component with instructions to perform rebase and bind operations based on a linked list chain, enhancing security by authenticating pointers and preventing unauthorized code execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If shadow stacks are implemented to mitigate ROP and JOP attacks, then security against these attacks is improved, but the solution has limitations and remains inadequate

Engineering Contradiction:
ImprovesecurityVSAvoideffectiveness against ROP/JOP attacks
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the pointer validation process into multiple components: a linked list table structure with separate data storage and instruction execution components, threaded validation operations that process pointers individually through authentication mechanisms, and modular table data structures. This segmentation enables comprehensive security validation that shadow stacks cannot provide, directly addressing the limitation of shadow stacks against ROP/JOP attacks

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary threaded validation mechanism that mediates between pointer generation and code execution. The linked list table structure acts as an intermediary layer that authenticates pointers before they can be used, preventing ROP/JOP attacks by validating pointer integrity through authentication operations rather than allowing direct execution

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If pointers are authenticated and linked list table structure is implemented, then security against ROP and JOP attacks is enhanced, but device complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidsystem structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the pointer authentication mechanism with the existing rebase and bind operations by implementing validation within the same linked list table structure that stores linking data. This integration allows security validation to occur as part of the normal linking process rather than as a separate complex system, reducing overall device complexity while maintaining enhanced security

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The linked list table structure serves multiple functions: it stores linking data for rebase and bind operations, provides a framework for threaded pointer validation, and enables authentication of pointers. This multi-functionality reduces the need for separate dedicated security structures, thereby reducing device complexity while achieving enhanced security

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11308160B2Threaded linking pointer mechanism
Publication Date: 2022.04.19 APPLE INC
  • US11308160B2 patent drawing
  • US11308160B2 patent drawing
  • US11308160B2 patent drawing

AI summary

One embodiment provides for a computer-implemented method comprising generating a linked list table including a first component having linking data to be stored in a table data structure for one or more rebase and bind operations and second a component having instructions to implement the table data structure to perform the rebase and bind operations according to a linked list chain and executing the instructions in the second component of the linked list table to perform the one or more rebase and bind operations based on the linked list chain.