Static-Dynamic Security Testing for Vulnerability Verification
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Reliability
If dynamic testing is used to analyze running applications, then real runtime vulnerabilities are detected, but execution time becomes excessively long
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
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
3Reliability
If static testing is configured to reduce false-positives, then result quality improves, but important weaknesses may go undetected
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
Data Source
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.


