Compiled Code Vulnerability Detection via Data Flow Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software vulnerability detection methods suffer from poor accuracy, require source code, and inefficiently utilize multi-core processing, leading to slow performance and exhaustive data flow mapping.
Innovation Solution
A system that analyzes compiled code using instruction models, control flow graphs, and data flow models to detect vulnerabilities without source code, employing concurrent processing and caching techniques for high-precision analysis of large software systems.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If exhaustive data flow mapping is performed in prior art systems, then completeness of vulnerability detection is improved, but performance deteriorates and processing time increases
Solution Approach 1:
The patent extracts and focuses only on unsafe data flows rather than performing exhaustive mapping of all data flows. By identifying and isolating only the critical unsafe data paths that could lead to vulnerabilities, the system achieves high detection accuracy while avoiding the performance penalty of analyzing every possible data flow in the system.
Solution Approach 2:
The patent applies partial action by performing data flow mapping only where necessary - specifically for unsafe data flows identified through static analysis. Rather than exhaustively mapping all data flows throughout the entire system, the analysis is concentrated on relevant portions that pose security risks, thereby improving both precision and productivity.
2Productivity
If multi-core processing is utilized in prior art systems, then processing capacity is improved, but coordination overhead and complexity increase
Solution Approach 1:
The patent segments the vulnerability analysis task into independent units that can be processed concurrently on multiple cores. Each core handles specific portions of the analysis (such as different function analyses or data flow segments), reducing coordination overhead while maintaining high throughput. This segmentation allows parallel processing without requiring complex synchronization mechanisms.
3Measurement precision
If source code is required for analysis in prior art methods, then analysis precision is improved, but applicability to compiled software deteriorates
Solution Approach 1:
The patent introduces an intermediary approach by performing static analysis on compiled code representations (such as assembly or intermediate representation) rather than requiring source code. This intermediary layer allows the system to maintain high analysis accuracy by examining the actual executed instructions while being applicable to any compiled software regardless of source code availability, thus bridging the gap between precision and versatility.
Data Source
AI summary
This invention teaches a system and methods of detecting software vulnerabilities in a computer program by analyzing the compiled code and optionally the source code of the computer program. The invention models compiled software to examine both control flow and data flow properties of the target program. A comprehensive instruction model is used for each instruction of the compiled code, and is complemented by a control flow graph that includes all potential control flow paths of the instruction. A data flow model is used to record the flow of unsafe data during the execution of the program. The system analyzes the data flow model and creates a security finding corresponding to each instruction that calls an unsafe function on unsafe data. The security findings are aggregated in a security report. To improve performance, the system further uses data flow merging, and caching of 1-to-many data flow maps for each basic block in the code.


