Static Dynamic Web Code Analysis for Vulnerability Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current source code analysis tools face challenges in accurately detecting security vulnerabilities due to high rates of false positives and false negatives, with static analysis prone to false positives and dynamic analysis prone to false negatives, leading to inefficiencies in identifying relevant security issues.

Innovation Solution

A combined static and dynamic analysis method is implemented, where a static source code analysis module on a server-side device analyzes source code data, requests context information from a dynamic source code analysis module on a client-side device, and updates results based on dynamic analysis data, leveraging the strengths of both approaches to reduce false positives and negatives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If static source code analysis is used, then analysis can be performed without executing code, but false positives increase

Engineering Contradiction:
Improveanalysis timeVSAvoiddetection accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

The patent combines static source code analysis (SSCA) and dynamic source code analysis (DSCA) into a unified system. The SSCA module performs static analysis to identify potential vulnerabilities, while the DSCA module executes the code to verify actual behavior. The results from both analyses are integrated to produce final security assessment results, reducing false positives while maintaining efficient analysis.

Inventive Principle:
Principle #5Merging (Combining)

2Measurement precision

If dynamic source code analysis is used, then actual code execution behavior is analyzed, but false negatives increase

Engineering Contradiction:
Improvedetection accuracyVSAvoidvulnerability detection completeness
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The system implements feedback mechanisms where the SSCA module sends analysis targets to the DSCA module, which executes the code and returns results. The DSCA module uses feedback from SSCA to focus dynamic analysis on specific suspicious code paths identified statically. This feedback loop ensures that dynamic analysis complements rather than replaces static analysis, improving overall detection completeness.

Inventive Principle:
Principle #23Feedback

3Productivity

If only static analysis is performed, then analysis speed is maintained, but detection completeness decreases

Engineering Contradiction:
Improveanalysis throughputVSAvoidvulnerability detection rate
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The analysis system is segmented into two independent but coordinated modules: SSCA module for static analysis and DSCA module for dynamic analysis. Each module operates with its own strengths - SSCA provides rapid initial screening without execution overhead, while DSCA performs targeted execution-based verification. This segmentation allows the system to maintain high productivity through parallel operation while achieving comprehensive detection through coordinated analysis.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9805203B2Cooperative static and dynamic analysis of web application code for finding security vulnerabilities
Publication Date: 2017.10.31 SAP SE
  • US9805203B2 patent drawing
  • US9805203B2 patent drawing
  • US9805203B2 patent drawing

AI summary

Implementations of the present disclosure include methods, systems, and computer-readable storage media for receiving, by a SSCA module of a server, source code data based on one or more web pages of a website, analyzing, by the SSCA module, the source code data using static analysis to provide initial results, the initial results including identifiers respectively assigned to one or more variables provided in the source code data, transmitting, by the SSCA module, a request to the website through a proxy server, the request being based on the initial results, the proxy server receiving a response and transmitting a rewritten response to a DSCA module executed on a client, receiving, by the SSCA module, updated source code data from the DSCA module, the updated source code data being provided based on the rewritten response, and updating, by the SSCA module, the initial results based on the updated source code data.