Diverse Program Instance Deployment via Segmented Code Testing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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.
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
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.
Data Source
Figure 1
Figure 2
Figure 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.