Static Analysis Tool Reducing Violation Report Volume
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Static analysis of computer programs often generates overwhelming reports with thousands of findings, many of which are spurious, due to undecidability and missing specifications, leading to poor usability and missed actual issues.
Innovation Solution
The method involves encoding the program to add sufficient correctness conditions that, if satisfied, render the program correct, thereby reducing reported violations by identifying and addressing the root cause of issues, and presenting these conditions to the user for verification.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If static analysis reports all potential violations to ensure completeness, then the coverage of security findings is improved, but the report size becomes prohibitively large and usability deteriorates
Solution Approach 1:
The patent segments the security report into two distinct parts: (1) a concise summary of assumptions and root causes, and (2) detailed violation information. This segmentation allows users to first review the high-level summary to understand the core issues, then drill down into detailed violations only when necessary, thereby reducing the initial cognitive load while maintaining complete information availability.
Solution Approach 2:
Instead of presenting all violations first and asking users to filter them, the patent inverts the approach by presenting assumptions and root causes first, then showing violations only where needed. This inversion shifts the focus from listing all problems to explaining the fundamental issues, making the report more actionable and easier to understand.
2Ease of operation
If static analysis uses conservative merging criteria to reduce report size, then the report becomes more manageable, but valuable information is lost due to aggressive merging
Solution Approach 1:
The patent applies different levels of detail to different parts of the report. The assumption summary provides high-level overview information, while individual violation entries provide detailed local information. This local quality approach ensures that aggressive merging is avoided for detailed information while still providing summary-level consolidation to improve manageability.
Solution Approach 2:
The patent adds a hierarchical dimension to the report structure with two levels: (1) assumption level summary, and (2) violation level details. This dimensional change allows users to navigate the report at different levels of granularity, preventing information loss while maintaining manageability through the hierarchical organization.
3Measurement precision
If static analysis provides detailed violation information for each finding, then the precision of security analysis is improved, but the overall report size becomes prohibitively large
Solution Approach 1:
The patent segments the report into a compact assumption summary section and a detailed violation section. The assumption summary captures the essential precision information about root causes and correctness conditions in a condensed format, while detailed violation information is provided only when users need to investigate specific issues, thereby reducing overall report volume while maintaining analysis precision.
Solution Approach 2:
The patent extracts the most critical precision information (assumptions and root causes) from the detailed violation data and presents it separately in the summary section. This extraction allows users to access high-precision analysis results without being overwhelmed by redundant detailed information, effectively reducing report volume while preserving measurement precision.
Data Source
AI summary
An embodiment comprising a method is associated with static analysis of a program, which detects violations of conditions of the program correctness specification. The method includes selectively encoding the program and adding one or more correctness conditions to the encoded program, wherein the added conditions comprise a set of assumptions that render the program correct with respect to one or more properties pertaining to detected violations. The set of assumptions are reported to a program user, together with a request to the user to verify the validity of each assumption of the set.


