Weighted Control Flow Graph for Security Vulnerability Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current static analysis methods for identifying security vulnerabilities in web applications often fail to effectively highlight critical paths leading from user-provided data to security-sensitive operations without proper downgrading, making it difficult for developers to pinpoint and address potential threats.

Innovation Solution

A system and method that assigns edge weights to paths in a control flow graph, allowing for the identification and customization of security reports by filtering paths based on total edge weights, thereby highlighting potential security vulnerabilities and facilitating targeted analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional static analysis methods are used to identify security vulnerabilities, then all paths from sources to sinks are detected, but the results are difficult to interpret and prioritize

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidreport interpretability
Core Design Contradiction:
Measurement precisionVSEase of operation

Solution Approach 1:

The patent applies parameter changes by assigning weight values to different edges in the control flow graph based on security risk factors. This transforms the binary path detection into a weighted scoring system where paths are ranked by their total edge weights, making it easier to prioritize vulnerabilities while maintaining detection accuracy

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent uses visual differentiation (color coding) to highlight paths with higher edge weights in the control flow graph. This visual representation allows developers to quickly identify and prioritize critical security paths without manually analyzing all detected vulnerabilities

Inventive Principle:
Principle #32Color changes

2Reliability

If all paths in the control flow graph are analyzed equally, then comprehensive coverage is achieved, but critical vulnerabilities are not prioritized

Engineering Contradiction:
Improvesecurity analysis completenessVSAvoidvulnerability remediation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent transforms uniform path analysis into differentiated analysis by assigning varying edge weights to different graph edges based on security characteristics. This allows the system to maintain comprehensive path coverage while simultaneously identifying and prioritizing high-risk paths for immediate remediation

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements partial action by allowing users to focus analysis on specific subsets of paths based on weight thresholds or custom criteria. This enables teams to address critical vulnerabilities first while maintaining the option to analyze remaining paths at a later stage

Inventive Principle:
Principle #16Partial or excessive action

3Ease of operation

If custom filtering criteria are applied to security paths, then relevant vulnerabilities are highlighted, but the analysis may miss lower-priority issues

Engineering Contradiction:
Improvereport customizationVSAvoidvulnerability detection completeness
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent implements dynamic filtering that allows users to adjust criteria and re-run analysis as needed. The system maintains the full control flow graph with all paths preserved, enabling flexible querying at different stages without permanently losing data or detection capability

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9740868B2Customizing a security report using static analysis
Publication Date: 2017.08.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9740868B2 patent drawing
  • US9740868B2 patent drawing
  • US9740868B2 patent drawing

AI summary

Respective edge weights are assigned to edges of a plurality of paths in a control flow graph representing a model of data flow of a computer program. Edge weights assigned to each edge are processed to determine a total edge weight for the respective paths, the total edge weight for a respective path being a sum of the edge weights assigned to the respective edges of the path. At least one path in the control flow graph whose total edge weight satisfies a particular total edge weight criteria can be identified, and the control flow graph can be updated to indicate to the user the at least one path in the control flow graph whose total edge weight satisfies the particular total edge weight criteria. The updated control flow graph can be presented to the user.