Automated Binary Vulnerability Analysis via Taint and Symbolic Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for identifying security vulnerabilities in binaries rely on expert analysis, leading to potential delays or misses in detection due to a shortage of expertise, necessitating an automated approach to quickly and precisely locate vulnerabilities and their causes.

Innovation Solution

An automated binary vulnerability analysis method involving dynamic analysis through primary and secondary executions, using taint analysis and symbolic execution to identify and locate vulnerabilities by recording symbolic constraints and suspicious elements, and determining the existence of vulnerabilities by comparing these elements with instructions satisfying the constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If expert analysis is used to identify security vulnerabilities in binaries, then detection accuracy may be maintained, but detection speed and consistency deteriorate due to shortage of expertise

Engineering Contradiction:
Improvevulnerability detection accuracyVSAvoidvulnerability detection speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs self-service by automatically analyzing binaries through symbolic execution and taint analysis, eliminating the need for manual expert analysis. The automated vulnerability detection system identifies and locates security issues without human intervention, thereby maintaining detection accuracy while significantly improving detection speed and consistency.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical system of manual expert analysis with an automated computational system. By substituting human experts with an automated analysis engine that uses symbolic execution and taint analysis, the system maintains reliability while dramatically improving productivity in vulnerability detection.

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

2Measurement precision

If manual expert analysis is used to locate vulnerability causes, then precise localization may be achieved, but time consumption increases significantly

Engineering Contradiction:
Improvevulnerability location precisionVSAvoidtime to locate vulnerability cause
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system automatically locates vulnerability causes through self-service analysis, using symbolic execution to trace execution paths and taint analysis to track data flow. This automated process precisely identifies the location of vulnerability causes without requiring manual expert intervention, thereby maintaining measurement precision while eliminating time loss.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary action by pre-computing symbolic constraints and taint propagation paths before actual vulnerability detection. This preparatory work enables rapid and precise localization of vulnerability causes during the analysis phase, maintaining precision while significantly reducing the time required to locate issues.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If automated vulnerability detection is implemented, then detection speed and consistency improve, but system complexity increases due to need for dynamic analysis infrastructure

Engineering Contradiction:
Improvevulnerability detection efficiencyVSAvoidanalysis system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system applies segmentation by dividing the vulnerability detection process into distinct modular components: symbolic execution engine, taint analysis module, constraint solving component, and vulnerability reporting system. This modular architecture improves detection efficiency while managing system complexity through clear separation of concerns and independent, reusable modules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system achieves universality by designing a multi-functional analysis platform that can detect various types of vulnerabilities (buffer overflows, use-after-free, format string vulnerabilities) using the same core infrastructure. This multi-functionality improves detection efficiency across different vulnerability types while avoiding the complexity of maintaining separate specialized tools for each vulnerability class.

Inventive Principle:
Principle #6Universality (Multi-functionality)

4Measurement precision

If symbolic execution and taint analysis are used together, then vulnerability identification accuracy improves, but computational overhead increases

Engineering Contradiction:
Improvevulnerability identification accuracyVSAvoidcomputational resource consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system merges symbolic execution and taint analysis into a unified framework where both techniques work synergistically. Symbolic execution provides precise control-flow analysis while taint analysis tracks data-flow propagation, together achieving high vulnerability identification accuracy. The merged approach optimizes computational resource consumption by sharing intermediate results and avoiding redundant analysis between the two techniques.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10339322B2Method and apparatus for identifying security vulnerability in binary and location of cause of security vulnerability
Publication Date: 2019.07.02 KOREA INTERNET & SECURITY AGENCY
  • US10339322B2 patent drawing
  • US10339322B2 patent drawing
  • US10339322B2 patent drawing

AI summary

Provided are a binary vulnerability analysis method performed by a computing device is provided, and the binary vulnerability analysis method includes a primary execution step of recording a symbolic constraint of a vulnerability associated with an execution flow path causing a crash to a target binary to be analyzed and a suspicious element on the execution flow path by performing taint analysis through a primary execution of the target binary; and a secondary execution step of performing a secondary execution, which is a symbolic execution, on the execution flow path and, if an instruction satisfying the symbolic constraint is found, determining that the vulnerability exists in the target binary by comparing the suspicious element and the found instruction.