Static-Dynamic Security Testing for Vulnerability Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software security testing tools face challenges with high false-positive rates in static testing and lengthy execution times in dynamic testing, leading to incomplete vulnerability detection and manual verification processes that are impractical for large-scale assessments.

Innovation Solution

A combined static-dynamic testing approach that generates dynamic test cases based on static test results, using weakness, application context, and attack pattern datasets to verify potential security weaknesses and automatically repair defects, reducing false-positives and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If static testing is used to analyze source code for security weaknesses, then comprehensive code path coverage is achieved, but false-positive rates increase significantly

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidfalse-positive rate
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent introduces dynamic testing as an intermediary verification step between static testing and final vulnerability confirmation. Static testing first identifies potential weaknesses, then dynamic testing acts as a mediator to verify which findings are genuine vulnerabilities versus false positives, thereby maintaining high detection coverage while improving result reliability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent merges static and dynamic testing approaches into a unified security testing system. By combining the comprehensive code analysis capability of static testing with the runtime verification capability of dynamic testing, the system achieves both high vulnerability detection accuracy and low false-positive rates

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If dynamic testing is used to analyze running applications, then real runtime vulnerabilities are detected, but execution time becomes excessively long

Engineering Contradiction:
Improvevulnerability verification accuracyVSAvoidtesting execution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary static testing before dynamic testing to identify and prioritize potential security weaknesses. This preliminary action creates a focused set of test cases for dynamic testing, reducing the overall execution time while maintaining comprehensive vulnerability verification

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial action by focusing dynamic testing only on the specific code paths and functions identified as potential vulnerabilities by static testing, rather than executing exhaustive dynamic tests on the entire application. This selective approach significantly reduces execution time while maintaining high verification accuracy

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If static testing is configured to reduce false-positives, then result quality improves, but important weaknesses may go undetected

Engineering Contradiction:
Improveresult accuracyVSAvoidvulnerability detection completeness
Core Design Contradiction:
ReliabilityVSMeasurement precision

Solution Approach 1:

The patent segments the testing process into two distinct phases: a comprehensive static testing phase that identifies all potential weaknesses without filtering, and a verification phase using dynamic testing that filters out false positives. This segmentation allows each phase to optimize for its specific goal without compromising the other

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11550923B2Systems and/or methods for static-dynamic security testing using a test configurator to identify vulnerabilities and automatically repair defects
Publication Date: 2023.01.10 SOFTWARE AG
  • US11550923B2 patent drawing
  • US11550923B2 patent drawing
  • US11550923B2 patent drawing

AI summary

Certain example embodiments test an application for security vulnerabilities. Binary and/or source code representations are subjected to static testing. Static testing identifies potential security weaknesses in the application. For each potential security weakness, a corresponding dynamic test set, containing one or more test cases, is generated based on (i) the corresponding potential security weakness, and (ii) lookups to weakness, application context, and attack pattern databases. The weakness database includes different weakness types and descriptions thereof. The attack pattern database includes information about how to generate attacks for the different weakness types. An instance of the application running in a test runtime environment is dynamically tested using the dynamic test cases. The dynamic test results verify whether each potential security weakness is a real vulnerability. The dynamic test results include fewer false-positives than the raw static test results. Verified security weakness of the application are repairable automatically.