Container-Based Fuzzing for Automated Application Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional fuzzing techniques are time-consuming and expensive to maintain, and they often focus on a limited subset of an application's functionality, failing to provide comprehensive testing.

Innovation Solution

A fuzzing system employing a container to host multiple target files, allowing for systematic invocation of application functionality to detect failures, with automation mode and log file creation for replaying failures and coverage analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If fuzzing code is hardcoded directly with target files, then testing can be performed, but it becomes time-consuming and expensive to create and maintain collections of target files

Engineering Contradiction:
Improvetesting coverageVSAvoidtime to create and maintain target files
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent separates fuzzing logic into a reusable container that can host multiple target files. The container is divided into a fuzzing engine component and a target file component, allowing the fuzzing logic to be independent and reusable across different target files, thereby reducing the time and cost of creating and maintaining test collections.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The container is designed as a universal fuzzing engine that can host and execute multiple different target files. This multi-functional container eliminates the need to create separate hardcoded fuzzing logic for each target file, significantly reducing maintenance time and enabling comprehensive testing across multiple targets.

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

2Productivity

If traditional fuzzing techniques are used, then some testing can be performed, but they are limited to testing a small subset of functionality

Engineering Contradiction:
Improvetesting efficiencyVSAvoidcomprehensive testing coverage
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The container enables dynamic selection and execution of multiple target files through systematic invocation. The fuzzing engine can adaptively choose which target files to execute based on coverage analysis, allowing comprehensive testing of application functionality while maintaining efficient test execution through automated target selection and replay capabilities.

Inventive Principle:
Principle #15Dynamics

3Reliability

If multiple target files are tested manually, then comprehensive coverage can be achieved, but automation and efficient replay of failures become difficult

Engineering Contradiction:
Improvetesting coverageVSAvoidautomated fuzzing capability
Core Design Contradiction:
ReliabilityVSExtent of automation

Solution Approach 1:

The container implements feedback mechanisms through log files that record test execution results and coverage information. This feedback enables automated replay of successful test cases and failures, allowing the system to automatically learn from previous executions and systematically explore additional functionality, thereby achieving both comprehensive coverage and high automation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs preliminary analysis of target files to generate test cases and log files before full execution. This preliminary action enables automated replay and systematic invocation of additional functionality, allowing the fuzzing engine to efficiently achieve comprehensive coverage without manual intervention for each test case.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8862940B2Integrated fuzzing
Publication Date: 2014.10.14 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8862940B2 patent drawing
  • US8862940B2 patent drawing
  • US8862940B2 patent drawing

AI summary

Integrated fuzzing techniques are described. A fuzzing system may employ a container configured as a separate component that can host different target pages to implement fuzzing for an application. A hosted target file is loaded as a subcomponent of the container and parsed to recognize functionality of the application invoked by the file. In at least some embodiments, this involves building a document object model (DOM) for a browser page and determining DOM interfaces of a browser to call based on the page DOM. The container then operates to systematically invoke the recognized functionality to cause and detect failures. Additionally, the container may operate to perform iterative fuzzing with multiple test files in an automation mode. Log files may be created to describe the testing and enable both self-contained replaying of failures and coverage analysis for multiple test runs.