Compiled Code Vulnerability Detection via Data Flow Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidprocessing speed
Core Design Contradiction:
Measurement precisionVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #16Partial or excessive action

2Productivity

If multi-core processing is utilized in prior art systems, then processing capacity is improved, but coordination overhead and complexity increase

Engineering Contradiction:
Improveanalysis throughputVSAvoidsystem coordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If source code is required for analysis in prior art methods, then analysis precision is improved, but applicability to compiled software deteriorates

Engineering Contradiction:
Improveanalysis accuracyVSAvoidsoftware format compatibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10599852B2High performance software vulnerabilities detection system and methods
Publication Date: 2020.03.24 SECURISEA INC
  • US10599852B2 patent drawing
  • US10599852B2 patent drawing
  • US10599852B2 patent drawing

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.