Static Program Analysis Report Grouping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Static code analysis tools often produce a high number of false reports due to over-approximations, leading to cluttered and difficult-to-use vulnerability reports, making it hard to identify actual security issues and take remediation actions.

Innovation Solution

Performing multiple analyses at differing levels of precision and mapping findings to generate a concise combination report that groups similar violations together, suppressing less important findings and linking them to more detailed reports for important ones, allowing for easier identification of root causes and actionable remediation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static analysis tools use over-approximations to bound the state space, then the analysis can handle infinite state spaces and provide safety guarantees, but the number of false reports increases significantly

Engineering Contradiction:
Improvesafety guaranteeVSAvoidfalse reports
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent segments the analysis into multiple levels (high-level and low-level analyses) with different approximation strengths. The high-level analysis uses strong over-approximations for safety guarantees, while the low-level analysis uses weaker approximations to reduce false reports. This segmentation allows the system to maintain reliability where needed while reducing harmful false reports in other areas.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different analysis precision locally to different parts of the program. Critical sections requiring safety guarantees receive high-level analysis with strong over-approximations, while less critical areas receive low-level analysis with weaker approximations. This local differentiation allows the system to maintain reliability where needed while reducing false reports in other areas.

Inventive Principle:
Principle #3Local quality

2Loss of information

If static analysis tools report all detected violations, then the completeness of the report is high, but the usability decreases due to the large size and poor quality of findings

Engineering Contradiction:
Improvereport completenessVSAvoidusability
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent extracts and separates high-quality findings from low-quality false reports by performing multiple analyses at different levels. The mapping module identifies and extracts only the most relevant findings (those confirmed by multiple analyses or having high confidence) while filtering out spurious reports, thereby maintaining information completeness for valid issues while improving usability by removing noise.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent merges results from multiple analyses (high-level and low-level) through a mapping module that consolidates findings. By combining the strengths of both analysis levels, the system produces a unified report that maintains completeness through comprehensive coverage while improving usability through deduplication and prioritization of high-confidence findings.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If the analysis uses stronger approximations to bound the state space, then the analysis speed increases, but the precision of the analysis decreases

Engineering Contradiction:
Improveanalysis speedVSAvoidanalysis precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent applies partial analysis precision selectively. The high-level analysis uses stronger (coarser) approximations for faster execution, while the low-level analysis uses weaker (finer) approximations for higher precision where needed. This partial application of precision allows the system to achieve good productivity overall while maintaining sufficient precision for critical verification tasks.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8935680B2Differential static program analysis
Publication Date: 2015.01.13 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8935680B2 patent drawing
  • US8935680B2 patent drawing
  • US8935680B2 patent drawing

AI summary

Systems for program analysis include a high-level scanning tool configured to perform a high-level analysis on a program using a processor to generate one or more high-level findings; one or more low-level scanning tools, each configured to perform a low-level analysis on the program using a processor to generate a low-level finding; and a mapping module configured to map the one or more low-level findings to the high-level findings to generate a concise combination report that categorizes each finding according to the highest-level analysis that produces the finding.