Diverse Program Instance Deployment via Segmented Code Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for achieving build-time diversity in software struggle to efficiently produce and test large-scale deployments of diverse program instances, leading to unfeasible testing times and reduced confidence in security against differential attacks, collusion, and automated exploits.

Innovation Solution

The method involves partitioning software code into portions, identifying interfaces, generating diverse instances, creating test instances that represent all possible combinations, and forming deployment instances, ensuring operability through confirmed test instances, thereby increasing build-time diversity and reducing testing time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If exhaustive testing of all diverse program instances is performed, then testing completeness and security confidence are improved, but testing time becomes unfeasibly high

Engineering Contradiction:
Improvesecurity confidenceVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial action by testing only a representative subset of diverse program instances rather than exhaustively testing all instances. The system identifies and tests critical code portions and their interfaces, which provides sufficient security confidence without the prohibitive time cost of complete exhaustive testing of all possible diverse instances.

Inventive Principle:
Principle #16Partial or excessive action

2Reliability

If build-time diversity is increased to resist differential attacks, then security against attacks is improved, but the complexity of producing and testing diverse instances increases

Engineering Contradiction:
Improvesecurity against differential attacksVSAvoidcomplexity of producing diverse instances
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the software into distinct code portions with defined interfaces. This segmentation allows the system to manage build-time diversity by independently varying specific code portions while maintaining consistent interfaces, thereby reducing the overall complexity of producing diverse instances compared to varying the entire software system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates diverse instances that all share common interfaces, making these interfaces universal across all diverse versions. This universality allows the same interface definitions to work across multiple diverse implementations, simplifying the production process while maintaining security through diversity.

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

3Manufacturing precision

If all code portions are tested to ensure complete coverage, then testing completeness is improved, but the number of test cases required becomes unfeasibly large

Engineering Contradiction:
Improvetesting completenessVSAvoidnumber of test cases
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent extracts and focuses testing efforts on critical code portions and their interfaces rather than testing all code uniformly. By identifying and isolating the most important code segments that affect security and functionality, the system achieves comprehensive testing coverage with a manageable number of test cases.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP2598987B1System and method for efficiently deploying massively diverse program instances to resist differential attacks
Publication Date: 2019.03.06 IRDETO BV
  • EP2598987B1 patent drawingFigure 1
  • EP2598987B1 patent drawingFigure 2
  • EP2598987B1 patent drawingFigure 3

AI summary

A system and method for producing a massive number of diverse program instances so as to deter differential attacks, collusion, and similar hostile actions. Code portions are shown to be defined in various manners, instantiated, and aggregated. The system and method establishes a very large number of program instances that may be deployed. Furthermore, testing is accomplished over a minimal set of instances to provide for high test coverage and high confidence over the fully deployed instance set without incurring a high testing penalty.