Adaptive Black-Box Testing for Software Vulnerability Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamic analysis tools for software testing often fail to detect persistent security vulnerabilities and redundant testing areas due to incomplete modifications in software applications, leading to inefficiencies in identifying and addressing vulnerabilities.

Innovation Solution

A method for progressive black-box testing that involves identifying changed instructions, assessing test success, and deciding on subsequent testing based on these factors to ensure thorough vulnerability detection and minimize redundant testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the black-box tester uses the same test payloads in subsequent testing cycles, then testing consistency is maintained, but persistent security vulnerabilities are not detected

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidtesting efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The testing system dynamically adapts test payloads based on detected instruction changes in the software application. When changes are detected, the system generates modified test payloads tailored to the changed instructions, enabling detection of persistent vulnerabilities while maintaining testing efficiency through targeted testing only where needed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system implements feedback by monitoring whether detected vulnerabilities are resolved through code changes. The black-box tester uses this feedback information to determine whether to re-test using the same payloads or generate new payloads, creating a closed-loop testing process that improves both accuracy and efficiency.

Inventive Principle:
Principle #23Feedback

2Reliability

If the black-box tester performs comprehensive testing on all areas, then testing thoroughness is improved, but redundant testing increases

Engineering Contradiction:
Improvetesting thoroughnessVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments the software application into distinct instructions or code regions. By tracking which specific instructions were executed during vulnerability testing, the system can determine exactly which areas need re-testing after modifications, eliminating redundant testing of unchanged areas while maintaining comprehensive coverage of modified sections.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The testing strategy applies local quality by tailoring test payloads specifically to changed instructions rather than uniformly testing the entire application. This localized approach ensures thorough testing of modified areas while avoiding redundant testing of stable areas, optimizing both thoroughness and time efficiency.

Inventive Principle:
Principle #3Local quality

3Reliability

If the tester modifies test payloads based on detected changes, then vulnerability detection improves, but testing complexity increases

Engineering Contradiction:
Improvevulnerability detection capabilityVSAvoidtesting system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The testing system performs self-service by automatically analyzing detected code changes and autonomously generating appropriate test payloads without requiring manual intervention. The system self-adapts its testing strategy based on the changes detected in the software application, improving vulnerability detection while managing complexity through automation.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9201769B2Progressive black-box testing of computer software applications
Publication Date: 2015.12.01 HCL TECH LTD
  • US9201769B2 patent drawing
  • US9201769B2 patent drawing
  • US9201769B2 patent drawing

AI summary

Testing computer software applications by performing a first black-box test on a computer software application, identifying any instructions of the computer software application that were reached by a payload of the first black-box test, determining a degree of success of the first black-box test in accordance with predefined success criteria, determining whether any of the instructions that were reached by the payload changed after performing the first black-box test, deciding whether to perform a second black-box test on the computer software application, where the deciding whether to perform the second black-box test is based on whether any of the instructions that were reached by the payload of the first black-box test changed after performing the first black-box test, and the degree of success of the first black-box test.