Automated Configurable Harness for Fuzz Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current fuzz testing techniques require complex scripting and extensive expertise to develop customized harnesses for different software systems, making it time-consuming and challenging to effectively configure and execute fuzz testing across various applications with diverse input channels.

Innovation Solution

An automated, configurable harness is developed using a manifest generated from recorded interactions with the System Under Test (SUT), allowing for the encoding of inputs into archives and feeding derived inputs over specified channels, simplifying the process and reducing the need for extensive expertise.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a generic blob fuzzer is used to fuzz multiple SUTs, then the fuzzing tool can be applied broadly, but it cannot properly handle different input channels and blocking behaviors of various SUTs

Engineering Contradiction:
Improvefuzzing tool applicabilityVSAvoidfuzzing effectiveness
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the fuzzing process into distinct phases: recording phase (capturing input channels and blocking behaviors), processing phase (generating harness code and test cases), and execution phase (running fuzz tests). This segmentation allows the system to adapt to different SUTs while maintaining reliable fuzzing through phase-specific optimizations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary recording of SUT interactions to capture input channel characteristics and blocking behaviors before actual fuzzing begins. This preliminary action enables the system to generate customized harnesses that are tailored to each SUT's specific requirements, resolving the contradiction between generic applicability and reliable execution.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If customized harnesses are written manually for each SUT, then the fuzzing can be tailored to specific input requirements, but the process becomes time-consuming and expertise-intensive

Engineering Contradiction:
Improveharness customizationVSAvoidharness development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs self-service by automatically generating harness code and test cases through a recording and processing pipeline. The recorder captures SUT interactions, the processor generates customized harnesses, and the executor runs tests without requiring manual harness writing, thus eliminating time loss while maintaining customization reliability.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces the mechanical process of manual harness writing with an automated computational system. The recorder-processor-executor pipeline substitutes human expertise with algorithmic generation, transforming the time-consuming manual process into an automated workflow that produces equivalent customized harnesses.

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

3Manufacturing precision

If extensive scripting technology is used for harness generation, then the harness can be configured precisely, but the complexity of the setup increases significantly

Engineering Contradiction:
Improveharness configuration precisionVSAvoidsetup complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary processing layer between the recording phase and harness generation. The processor acts as a mediator that translates recorded interactions into customized harness code, abstracting away the complexity of scripting technology while maintaining precise configuration capabilities through structured data processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11586532B2Software test environment with automated configurable harness capabilities, and associated methods and computer readable storage media
Publication Date: 2023.02.21 GRAMMATECH INC
  • US11586532B2 patent drawing
  • US11586532B2 patent drawing
  • US11586532B2 patent drawing

AI summary

Certain example embodiments relate to software test with automated configurable harness capabilities. Certain example embodiments automatically generate harnesses and properly encoded seed inputs by recording the input operations of a system under test (SUT), identifying the processes to be fuzz tested, generating seed inputs and a manifest describing the SUT's input vectors, and generating the harness to effectively feed derived (and potentially “malformed”) input to the SUT. The techniques described herein may be used to test a computer system, e.g., to probe for potential vulnerabilities.