Synthetic Processing Diversity via Instruction Stream Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems face challenges in protecting against code injection attacks, particularly in homogeneous environments where attackers can easily craft machine code payloads due to known instruction sets, and existing solutions like Instruction Set Randomization are not foolproof.

Innovation Solution

Implementing a method that loads and switches between multiple instruction streams, each encoded in a different instruction set, to create synthetic processing diversity, making it difficult for attackers to predict and execute successful attack code by continually changing the architecture during execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple instruction streams with different instruction sets are loaded and switched during execution, then processing diversity increases and attack difficulty increases, but device complexity increases

Engineering Contradiction:
Improvesecurity against code injection attacksVSAvoidprocessing environment complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system dynamically switches between multiple instruction streams during execution, changing the active instruction set architecture at runtime. This dynamic switching makes it difficult for attackers to craft payloads that work across all possible architectures, as the target architecture changes during execution. The patent implements this by loading multiple instruction streams with different instruction sets and switching between them based on execution context.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system creates multiple copies of the same program code, each copy encoded in a different instruction set architecture. These copied instruction streams are loaded into memory and switched between during execution. This copying approach allows the system to present different architectural interfaces to attackers without requiring multiple physical hardware systems.

Inventive Principle:
Principle #26Copying

2Reliability

If Instruction Set Randomization is used to obfuscate the underlying instruction set, then attack difficulty increases temporarily, but if the randomization value is discovered, a new attack can be crafted

Engineering Contradiction:
Improveprotection against code injectionVSAvoidinstruction set consistency
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

Instead of using static randomization that can be discovered and exploited, the system employs dynamic switching between multiple instruction streams. The active instruction set changes during execution, making it impossible for attackers to craft a single payload that works across all execution contexts. This dynamic approach maintains stable protection without relying on secret randomization values.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system segments the instruction stream into multiple separate instruction sets, each representing a different architecture. Rather than randomizing a single instruction stream, the patent divides the code into multiple segments with different instruction set encodings, switching between them during execution. This segmentation ensures that even if one instruction stream is compromised, others remain protected.

Inventive Principle:
Principle #1Segmentation

3Reliability

If hardware diversity is increased to mitigate code injection attacks, then attack resistance improves, but cost and environmental constraints are violated

Engineering Contradiction:
Improveattack mitigationVSAvoidsystem implementation feasibility
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The system makes a single homogeneous processor multi-functional by enabling it to execute multiple instruction set architectures through software-based instruction stream switching. Instead of requiring multiple physical processors with different hardware architectures, the patent allows one processor to emulate multiple architectures by loading and switching between instruction streams with different encodings, thus achieving hardware diversity without additional physical hardware.

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

Solution Approach 2:

The patent replaces physical hardware diversity with software-based instruction stream diversity. Instead of using multiple physical processors with different instruction set architectures (mechanical/system-level diversity), the system uses software to load and switch between instruction streams encoded in different instruction sets, substituting a software mechanism for a hardware solution.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9218483B2Synthetic processing diversity with multiple architectures within a homogeneous processing environment
Publication Date: 2015.12.22 EVERFOX HOLDINGS LLC
  • US9218483B2 patent drawing
  • US9218483B2 patent drawing
  • US9218483B2 patent drawing

AI summary

A method of increasing processing diversity on a computer system includes: loading a plurality of instruction streams, each of the plurality of instruction streams being equivalent; executing, in a context, a first stream of the plurality of instruction streams; stopping execution of the first stream at a first location of the first stream; and executing, in the context, a second stream of the plurality of instruction streams at a second location of the second stream, the second location corresponding to the first location of the first stream.