Landing Pad Markers for Return Target Validation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Return-oriented programming (ROP) attacks allow hackers to execute unauthorized code by manipulating return addresses in computing devices, evading security measures like data execution prevention and code signing.

Innovation Solution

Inserting landing pads as markers in the instruction stream to validate return targets, using a combination of hardware and software to detect suspicious returns and enforce a policy to terminate the offending process, and employing colored launch and landing pads to enhance protection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If ROP techniques are used to execute code by jumping to different instructions, then code execution flexibility is improved, but system security deteriorates

Engineering Contradiction:
Improvecode execution flexibilityVSAvoidsystem security
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The compiler performs preliminary action by inserting landing pad instructions at valid return target locations during the compilation phase. This pre-marking of legitimate return addresses enables the processor to later distinguish between valid and invalid return targets, preventing ROP attacks that rely on jumping to unauthorized code locations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Landing pad instructions serve as intermediary markers between the compiler and processor. These special instructions act as a communication bridge, encoding return target validation information that the processor can use to verify whether a returned address is legitimate, thereby mediating between code execution flexibility and security requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If landing pads are inserted in the instruction stream to mark valid return targets, then return target validation capability is improved, but device complexity increases

Engineering Contradiction:
Improvereturn target validation capabilityVSAvoidinstruction stream complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The landing pad instructions serve multiple functions: they act as normal executable instructions while simultaneously encoding validation information for return target verification. This multi-functionality allows the instruction stream to maintain its normal flow while embedding security validation capabilities, avoiding the need for separate validation structures that would increase complexity.

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

Solution Approach 2:

The compiler modifies instruction parameters by inserting landing pad instructions with specific encoding patterns at return target locations. These parameter changes encode validation information within the existing instruction format, allowing the processor to detect and validate return targets without requiring fundamental changes to the instruction set architecture or processor design.

Inventive Principle:
Principle #35Parameter changes

3Object-affected harmful factors

If the processor detects suspicious returns and terminates the process, then security enforcement is improved, but system productivity decreases

Engineering Contradiction:
Improvesecurity enforcementVSAvoidsystem productivity
Core Design Contradiction:
Object-affected harmful factorsVSProductivity

Solution Approach 1:

The processor implements feedback by continuously monitoring return instructions and comparing them against the landing pad markers in the instruction stream. When a return address does not match a marked landing pad, the feedback mechanism triggers process termination. This feedback loop ensures that only validated return paths are permitted, maintaining security while minimizing false positives that would unnecessarily reduce productivity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10867031B2Marking valid return targets
Publication Date: 2020.12.15 APPLE INC
  • US10867031B2 patent drawing
  • US10867031B2 patent drawing
  • US10867031B2 patent drawing

AI summary

Systems, apparatuses, methods, and computer-readable mediums for preventing return oriented programming (ROP) attacks. A compiler may insert landing pads adjacent to valid return targets in an instruction sequence. When a return instruction is executed, the processor may treat the return as suspicious if the target of the return instruction does not have an adjacent landing pad. Additionally, each landing pad may be encoded with a color, and a colored launch pad may be inserted into the instruction stream next to each return instruction. When a return instruction is executed, the processor may determine if the target of the return has a landing pad with the same color as the launch pad of the return instruction. Return-target pairs with color mismatches may be treated as suspicious and the offending process may be killed.