Container Vulnerability Scanning via Pruned Call Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development processes waste resources correcting unreachable vulnerabilities in code, as they are not executed in real scenarios, while overlooking reachable vulnerabilities.

Innovation Solution

A method and apparatus for generating a call and dependency graph of container entities using static analysis, pruning edges based on heuristics, and training to distinguish between reachable and unreachable vulnerabilities, reducing false positives and negatives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all vulnerabilities are corrected without distinction, then security coverage is improved, but resource waste increases due to correcting unreachable vulnerabilities

Engineering Contradiction:
Improvesecurity coverageVSAvoidresource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments vulnerabilities into two categories: reachable and unreachable. It constructs a call graph to identify which vulnerabilities can actually be executed and which cannot. By segmenting the vulnerability set, the system focuses remediation efforts only on reachable vulnerabilities, avoiding waste on unreachable ones while maintaining comprehensive security coverage for actual risks.

Inventive Principle:
Principle #1Segmentation

2Productivity

If static analysis is used to identify reachable vulnerabilities, then resource efficiency is improved, but measurement precision deteriorates due to false positives and negatives

Engineering Contradiction:
Improveresource efficiencyVSAvoidvulnerability detection accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent introduces a call graph as an intermediary structure between static analysis and vulnerability identification. The call graph models the execution flow and data dependencies, serving as a mediator that filters vulnerabilities based on reachability. This intermediary enables static analysis to achieve better precision by using the call graph to eliminate false positives and negatives, while maintaining resource efficiency through static rather than dynamic analysis.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If dynamic execution is used to determine vulnerability reachability, then measurement precision is improved, but productivity decreases due to execution overhead

Engineering Contradiction:
Improvereachability detection accuracyVSAvoidanalysis speed
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent replaces the mechanical execution system (dynamic runtime analysis) with a static analysis system based on call graph construction. Instead of actually executing the code to determine reachability, the system builds a static model of the program's control flow and data dependencies. This substitution maintains high measurement precision by accurately modeling execution paths while dramatically improving productivity by avoiding the overhead of dynamic execution.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS20250238519A1System and method for scanning containers for vulnerabilities
Publication Date: 2025.07.24 WHITESOURCE LTD
  • US20250238519A1 patent drawing
  • US20250238519A1 patent drawing
  • US20250238519A1 patent drawing

AI summary

A method, computerized apparatus and computer program product, the method comprising: obtaining a collection of entities including a source code file and a non-source-code file; identifying a bundle within the collection of entities; generating a call and dependency graph of the collection of entities, the graph comprising two or more nodes each associated with an entity, and at least one edge indicating a calling relationship between the nodes, said generating comprising: generating an initial call and dependency graph, indicating reachability of each of the collection of entities starting from an entry point; and pruning the initial call and dependency graph by reducing an edge according to collected heuristics, to obtain a pruned call and dependency graph; obtaining information about vulnerabilities associated with the bundle or any of the collection of entities; and providing an indication of a reachable vulnerability and an unreachable vulnerability in the pruned call and dependency graph.