Synthetic Processing Diversity for Code Injection Defense

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 equivalent instruction streams, providing synthetic processing diversity by randomly selecting and shifting between these streams at various intervals, effectively creating a multi-architecture environment that forces attackers to craft payloads for multiple architectures and timing, thereby increasing the difficulty of successful attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple equivalent instruction streams are loaded and switched between, then security against code injection attacks is improved, but device complexity increases

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

Solution Approach 1:

The patent creates multiple copies of equivalent instruction streams from a single binary file. Each copy is functionally identical but can be executed at different locations in memory. This allows the system to switch between identical functional copies to prevent code injection attacks, as attackers cannot predict which stream will be executed. The copying principle resolves the contradiction by providing security through redundancy without requiring fundamentally different processing architectures.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent implements dynamic switching between instruction streams at runtime. The system randomly selects which instruction stream to execute from multiple loaded streams, creating a dynamic execution environment. This dynamic behavior prevents static analysis and code injection attacks that rely on predictable execution paths. The dynamic principle resolves the contradiction by adding security through runtime variability while maintaining the same underlying homogeneous processing architecture.

Inventive Principle:
Principle #15Dynamics

2Reliability

If instruction streams are switched at frequent intervals, then security is improved, but productivity decreases

Engineering Contradiction:
Improvesecurity against code injection attacksVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements periodic switching between instruction streams at predetermined intervals rather than continuously. The system can switch streams based on time intervals, instruction count thresholds, or random periodic events. This periodic approach maintains security by preventing code injection attacks while minimizing the performance overhead associated with frequent switching. The periodic action principle resolves the contradiction by providing security through regular stream switching without continuously impacting execution speed.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9256431B2Synthetic processing diversity within a homogeneous processing environment
Publication Date: 2016.02.09 EVERFOX HOLDINGS LLC
  • US9256431B2 patent drawing
  • US9256431B2 patent drawing
  • US9256431B2 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.