Parallel Data Flow Analysis for Software Vulnerability Research
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data flow analysis techniques are resource-intensive and time-consuming when processing large execution trace logs for software programs executed using multiple processors, necessitating more efficient methods for generating data flow graphs.
Innovation Solution
The method involves obtaining an execution trace of a software program, dividing it into sections, generating definition-and-usage chains in parallel by different processors, and combining these chains to produce a data flow graph, with information on unresolved memory locations used to connect incomplete usage nodes, facilitating vulnerability detection.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If known data flow analysis techniques are used to process large execution trace logs, then complete data flow graphs can be generated, but the process becomes resource-intensive and time consuming
Solution Approach 1:
The execution trace is divided into multiple sections, with each processor analyzing a specific section to generate partial definition-and-usage chains. This segmentation allows parallel processing of large trace logs, reducing overall analysis time and resource consumption while maintaining complete vulnerability detection coverage.
Solution Approach 2:
The patent transitions from sequential single-processor analysis to parallel multi-processor analysis, adding a dimensional aspect of concurrent processing. Multiple processors work simultaneously on different trace sections, fundamentally changing the processing architecture to achieve faster data flow graph generation with reduced resource intensity.
2Reliability
If execution traces from multi-processor software programs are analyzed using traditional methods, then accurate vulnerability detection is achieved, but the processing time and resource requirements increase significantly
Solution Approach 1:
The analysis process is segmented into independent processor tasks, where each processor handles specific trace sections and generates partial definition-and-usage chains. The combination logic integrates these partial results into a complete data flow graph, maintaining vulnerability detection accuracy while reducing analysis time through parallel execution.
Solution Approach 2:
Processors perform preliminary analysis of their assigned trace sections independently, generating partial definition-and-usage chains before combination. This preliminary action allows concurrent processing to occur, with the final combination step integrating results to ensure complete and accurate vulnerability detection without requiring sequential processing of entire traces.
Data Source
AI summary
A method for data flow analysis, comprising: obtaining, by a processing circuitry, an execution trace of a software program; dividing, by the processing circuitry, the execution trace into a plurality of sections; generating a plurality of definition-and-usage chains, at least some of the definition-and-usage chains being generated by different processors, at least some of the definition-and-usage chains being generated based on different sections of the execution trace, at least two of the definition-and-usage chains being generated in parallel with one another; combining, by the processing circuitry, the plurality of definition-and-usage chains to produce a data flow graph, the definition-and-usage chains being combined based on information provided by at least one of the processors that are used to generate the definition-and-usage chains, the information indicating one or more unresolved memory locations that are accessed by respective operations corresponding to one or more incomplete usage nodes in the definition-and-usage chains.


