Link-Time Object File Randomization for Network Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional network security methods, such as address space layout randomization and code diversification, face limitations in effectiveness and efficiency, including increased computational overhead and vulnerability to hacker exploitation, especially when not all software and operating systems support these techniques, and are hesitant to alter binary files due to potential instability and functionality loss.

Innovation Solution

A method that randomizes the order of linking object files at link time to create unique static images of a binary file, which are then distributed to trusted network devices, ensuring each execution instance has a distinct address space layout without altering the original code or adding computational overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If address space layout randomization is used to secure networks, then security is improved, but compatibility with software and operating systems deteriorates

Engineering Contradiction:
Improvenetwork securityVSAvoidsoftware compatibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The invention segments the binary file into multiple object files during the linking stage. By dividing the binary into separate compilable units, the system can randomize their linking order to create diversified binary instances, achieving security through segmentation without requiring changes to the underlying software or operating system architecture.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The randomization of object file linking order is performed in advance during the binary creation process, before deployment. This preliminary action creates multiple unique binary instances that are then distributed to network devices, eliminating the need for runtime randomization and ensuring compatibility with existing software and operating systems.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If sub-blocks of code are moved to different memory spaces for security, then security is improved, but network latency increases

Engineering Contradiction:
Improvenetwork securityVSAvoidnetwork latency
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The invention performs code diversification during the linking stage, which is a preliminary action before the binary is deployed and executed. By randomizing the linking order of object files in advance, the system creates unique binary instances without adding any runtime overhead or computational burden during network operations, thus avoiding increased network latency.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If binary files are altered for code diversification, then security is improved, but software stability deteriorates

Engineering Contradiction:
Improvenetwork securityVSAvoidsoftware stability
Core Design Contradiction:
ReliabilityVSStability of the object's composition

Solution Approach 1:

The invention performs binary alteration in advance during the linking stage, creating diversified binary instances before deployment. This preliminary action ensures that each binary instance is pre-validated for stability and functionality, eliminating concerns about runtime instability while achieving code diversification for security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention changes the linking order parameter of object files during binary creation, rather than altering the actual code or data content. This parameter change approach maintains software stability by preserving the integrity of the original code while achieving diversification through different linking configurations.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If object files are linked in randomized order, then code diversification is improved, but manufacturing complexity increases

Engineering Contradiction:
Improvecode diversificationVSAvoidbuild process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The randomization of object file linking is performed as a preliminary step during the binary build process, before deployment. This approach integrates diversification into the existing compilation workflow without requiring complex runtime mechanisms or additional infrastructure, managing manufacturing complexity through advance preparation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10089494B2System and method for securing a network device
Publication Date: 2018.10.02 CACI LGS INNOVATIONS LLC
  • US10089494B2 patent drawing
  • US10089494B2 patent drawing
  • US10089494B2 patent drawing

AI summary

A network device is provided. The network device includes a processor and a memory with code thereupon. The code when executed by the processor causes the processor to provide object files referenced in the code, randomize an order of linking the object files in the code at a link time, and create a plurality of unique static images of a binary file based upon the randomized order.