Guided Micro-Fuzzing via Hybrid Program Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current fuzz testing frameworks face challenges in automatically inferring the domain of complex programs without human insight, requiring manual effort to define test harnesses for individual code segments, and lack efficient binary analysis for detecting security bugs in programs and libraries.

Innovation Solution

A root cause context aware micro-fuzzing platform utilizing binary analysis to lift machine code into an intermediate representation, allowing for precision-guided micro-fuzzing without manual test harness construction, which detects security bugs by executing selected code segments and providing a root cause context for violations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If manual test harness construction is used for individual code segments, then testing precision is improved, but device complexity and time consumption increase

Engineering Contradiction:
Improvetesting precisionVSAvoidtest harness complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system automatically generates test harnesses by analyzing the program's intermediate representation and inferring domain models, eliminating the need for manual test harness construction. The binary analysis framework self-generates the necessary testing infrastructure based on the program's structure and behavior.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent introduces an intermediate representation as a mediator between the binary code and the testing framework. This intermediate form enables automatic analysis and test generation without requiring direct manual intervention in the testing process, thus reducing complexity while maintaining precision.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If fuzz testing is applied to complex programs, then security bug detection is improved, but difficulty of automatic domain inference increases

Engineering Contradiction:
Improvesecurity bug detectionVSAvoiddomain inference difficulty
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system performs preliminary binary analysis to generate an intermediate representation and infer domain models before actual fuzz testing begins. This preliminary processing automatically extracts structural information and creates the necessary testing framework, making the subsequent fuzz testing process simpler and more reliable.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces manual domain inference mechanisms with automated binary analysis tools. Instead of requiring experts to manually analyze and infer program domains, the system uses computational analysis of binary code to automatically generate domain models and test harnesses.

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

3Productivity

If binary analysis is used for program analysis, then productivity and scalability are improved, but measurement precision requirements increase

Engineering Contradiction:
Improveanalysis productivityVSAvoidanalysis precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent segments the program analysis process into distinct phases: binary analysis, intermediate representation generation, domain model inference, and fuzz testing. Each phase processes specific portions of the program independently, improving productivity while maintaining precision through systematic analysis of each segment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transforms the program representation from binary code to intermediate representation, changing the parameter space in which analysis occurs. This transformation enables more efficient processing and automated analysis while maintaining the precision needed for accurate security bug detection through careful parameter selection and transformation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11822673B2Guided micro-fuzzing through hybrid program analysis
Publication Date: 2023.11.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11822673B2 patent drawing
  • US11822673B2 patent drawing
  • US11822673B2 patent drawing

AI summary

Program analysis is provided. An intermediate representation of a program is generated. A set of structured inputs is provided to the program. The set of structured inputs are derived from the intermediate representation. The program is executed using the set of structured inputs. A set of action steps is performed in response to observing a violation of a policy during execution of the program using the structured inputs.