Semantically Equivalent Source Code Variant Synthesis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cybersecurity approaches are inadequate in protecting complex software systems from cyberattacks, as they rely on detecting viral signatures or syntactic diversification, which are not effective against sophisticated attacks that can target multiple versions of object code simultaneously.

Innovation Solution

The generation of semantically equivalent variants of computer source code using a component-based synthesizer, based on input and output constraints and a schema, to create distinct but equivalent code variants that are highly unlikely to be compromised by a single cyberattack, with a cybersecurity validator comparing results to detect any discrepancies indicative of an attack.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If syntactic diversification is used to create distinct object codes from the same source code, then protection against cyberattacks is improved, but the approach is only effective against at most one version of object code and sophisticated attacks can succeed against multiple versions simultaneously

Engineering Contradiction:
Improveprotection against cyberattacksVSAvoideffectiveness against multiple attack versions
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The source code is divided into multiple distinct source code components that can be independently synthesized. Each component represents a segment of the overall functionality, allowing the system to generate multiple semantically equivalent variants through different component combinations and arrangements.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The synthesizer changes structural parameters of the code by varying the arrangement, nesting, and composition of source code components while maintaining semantic equivalence. This includes changing control flow structures, data flow paths, and component hierarchies to create diverse yet functionally identical code variants.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If complex software systems are used to increase functional capabilities, then system functionality is improved, but the systems become increasingly prone to errors and cyberattacks

Engineering Contradiction:
Improvefunctional capabilitiesVSAvoidprone to errors and cyberattacks
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

Complex software systems are broken down into smaller, manageable source code components with well-defined interfaces and responsibilities. This segmentation reduces the complexity of individual components, making them less prone to errors and easier to verify for security vulnerabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary synthesis of multiple semantically equivalent code variants before deployment. By pre-generating diverse code versions and validating them, the system proactively identifies and eliminates potential errors and security vulnerabilities before they can be exploited.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If multiple source code components are synthesized to create semantically equivalent variants, then protection against cyberattacks is improved, but the device complexity increases

Engineering Contradiction:
Improveprotection against cyberattacksVSAvoidsynthesizer system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The source code synthesizer is designed as a universal system that can generate multiple semantically equivalent variants from a single set of components. This multi-functional capability allows the same synthesizer to produce diverse code versions for different deployment scenarios, reducing the need for multiple specialized tools.

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

Solution Approach 2:

Instead of manually creating multiple code variants, the system automatically copies and transforms source code components through synthesis. The synthesizer replicates the functionality across multiple variants by systematically varying component compositions, reducing the manual effort and complexity associated with creating diverse code versions.

Inventive Principle:
Principle #26Copying

4Difficulty of detecting and measuring

If conventional viral signature detection is used to detect cyberattacks, then detection capability is provided, but the approach is not sufficiently effective especially as software becomes highly distributed

Engineering Contradiction:
Improvedetection capabilityVSAvoideffectiveness against distributed attacks
Core Design Contradiction:
Difficulty of detecting and measuringVSReliability

Solution Approach 1:

Instead of detecting attacks after they occur through viral signature matching, the system inverts the approach by proactively generating multiple semantically equivalent code variants that are inherently resistant to detection. This preventive strategy makes it difficult for attackers to compromise distributed software systems.

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The synthesizer incorporates feedback mechanisms to continuously improve code variant generation based on security analysis. By monitoring which variants are more resistant to detected attack patterns, the system adapts its synthesis strategies to produce increasingly secure code versions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11392699B2Device, method, and system for synthesizing variants of semantically equivalent computer source code using computer source code components to protect against cyberattacks
Publication Date: 2022.07.19 THE UNITED STATES OF AMERICA AS REPRESENTED BY THE SECRETARY OF THE NAVY
  • US11392699B2 patent drawing
  • US11392699B2 patent drawing
  • US11392699B2 patent drawing

AI summary

A device, method, and system for synthesizing variants of semantically equivalent computer source code using computer source code components to protect against cyberattacks. An input constraint, an output constraint, and a schema are received from a user. A component-based synthesizer generates first computer source code including a first computer source code component based on the input constraint, the output constraint, and the schema. The component-based synthesizer generates second computer source code including a second computer source code component based on the input constraint, the output constraint, and the schema. The second computer source code is generated as a semantically equivalent variant of the first computer source code to provide for protection against a cyberattack. The invention may also include a dynamic component library.