Application Randomization Mechanism for Reconnaissance Defense

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems are vulnerable to reconnaissance attacks as attackers can gather crucial information about server operating characteristics, which can be exploited for infiltration, and existing methods to limit this information are not universally applicable or effective.

Innovation Solution

The implementation of a system-wide application randomization mechanism (SWARM) that generates randomized instances of software components with unique operating characteristics, providing false information to attackers and evolving system characteristics over time, using ephemeral virtual machines and modified system call conventions, ABI changes, and configuration randomization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If server applications are configured to limit information disclosure, then security against reconnaissance is improved, but compatibility with non-configurable applications and protocols deteriorates

Engineering Contradiction:
Improvesecurity against reconnaissanceVSAvoidcompatibility with applications
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces a proxy layer between applications and network services that intercepts and randomizes information before it reaches the network. This intermediary mechanism allows applications to function normally while the proxy handles information randomization, resolving the contradiction between security and compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes parameters such as server version numbers, protocol identifiers, and configuration values to create randomized instances. By modifying these parameters rather than changing the fundamental application interface, the system maintains compatibility while improving security.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If system information is made static and fixed, then ease of operation is improved, but vulnerability to reconnaissance attacks increases

Engineering Contradiction:
Improvesystem stabilityVSAvoidreconnaissance attack effectiveness
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent implements dynamic randomization where system information changes between different instances. Each instance presents different configuration values, server identifiers, and operational characteristics, making the system resilient to reconnaissance while maintaining normal operation for legitimate users.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

By randomly changing system parameters such as configuration values, version strings, and operational characteristics between instances, the system creates uncertainty for attackers while preserving functional stability for authorized operations.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple instances of software components are generated with different configurations, then effectiveness against reconnaissance is improved, but device complexity increases

Engineering Contradiction:
Improvereconnaissance resistanceVSAvoidsystem configuration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments the randomization function into separate modular components: a randomization engine, configuration managers for different software components, and instance creators. This segmentation reduces overall system complexity by organizing the complexity into manageable, independent modules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a universal randomization framework that can generate multiple instances of different software components (applications, services, protocols) using the same core randomization mechanisms. This multi-functionality reduces complexity by reusing the same randomization infrastructure across different components.

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

4Ease of operation

If server applications reveal detailed information about installed modules and configuration, then ease of operation is improved, but security against infiltration deteriorates

Engineering Contradiction:
Improveapplication functionalityVSAvoidinfiltration vulnerability
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The proxy layer acts as an intermediary that sits between applications and network requests, allowing applications to operate with full functionality while the proxy filters and randomizes the information exposed to network traffic, preventing infiltration while maintaining ease of operation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system extracts sensitive configuration and version information from applications and replaces it with randomized placeholders or false information in network communications. This extraction and replacement maintains application functionality while removing the harmful information that would aid infiltration.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10412114B1Application randomization mechanism
Publication Date: 2019.09.10 ARCHITECTURE TECH CORP
  • US10412114B1 patent drawing
  • US10412114B1 patent drawing
  • US10412114B1 patent drawing

AI summary

An example method includes providing, by a computing system, first randomized configuration information, generating, by the computing system and based on the first randomized configuration information, a first unique instance of a software component, providing second randomized configuration information, wherein the second randomized configuration information is different from the first randomized configuration information, and generating, based on the second randomized configuration information, a second unique instance of the software component that is executable on the runtime computing system. The first and second unique instances of the software component comprise different instances of the same software component that each are configured to have uniquely different operating characteristics during execution on the runtime computing system, and the first and second unique instances of the software component are each further configured, during execution on the runtime computing system, to output false information to an external computing system.