Network Whitebox Fuzzer for Session-Dependent Protocols

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional whitebox fuzzers are limited in their ability to effectively fuzz networked software targets, as they struggle with complex network protocols and session-dependent values, which restrict their capability to identify security issues and bugs.

Innovation Solution

The system employs a network whitebox fuzzer component that intercepts and modifies network communications between client and server, introducing fuzzed data at specific state inputs to simulate errors and monitor deviations, while utilizing virtualized environments and session-dependent value management to bypass authentication checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional whitebox fuzzers are used to test networked software targets, then they can perform instrumentation and dynamic analysis, but they are unable to effectively fuzz networked software due to limitations with complex network protocols and session-dependent values

Engineering Contradiction:
Improvefault detection capabilityVSAvoidcapability to handle networked software targets
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system segments network communication into discrete state inputs that can be individually fuzzed. The fuzzer identifies specific state input points in the network protocol execution flow and applies fuzzing operations at these segmented points, allowing comprehensive testing of networked software without requiring understanding of the entire complex protocol at once.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary component that manages session-dependent values and protocol state. This intermediary acts as a mediator between the fuzzer and the networked software target, handling the complexity of session management and protocol state tracking, thereby enabling the fuzzer to effectively test networked software without being burdened by these complexities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If whitebox fuzzing is applied to single-file-consuming software targets, then it can effectively identify security issues, but it cannot be applied to complex network software targets

Engineering Contradiction:
Improvesecurity issue detectionVSAvoidapplicability to different software target types
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The fuzzer is designed with universal functionality to handle both single-file-consuming software targets and complex network software targets. By implementing protocol-agnostic state input identification and session-dependent value management, the system achieves multi-functionality that allows it to adapt to different software target types while maintaining effective security issue detection capabilities.

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

Solution Approach 2:

The system changes its operational parameters dynamically based on the software target type. It adjusts its fuzzing strategy, state input identification methods, and session management approach depending on whether the target is a single-file application or a networked software system, thereby achieving effective testing across diverse target types.

Inventive Principle:
Principle #35Parameter changes

3Object-affected harmful factors

If fuzzing is performed without session-dependent value management, then it cannot bypass authentication checks in network protocols

Engineering Contradiction:
Improveability to bypass authenticationVSAvoidfuzzing system complexity
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by capturing and managing session-dependent values before fuzzing operations begin. It pre-establishes session state and authentication context, allowing subsequent fuzzing operations to bypass authentication checks effectively without requiring complex real-time authentication handling during the fuzzing process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9910766B2Whitebox network fuzzing
Publication Date: 2018.03.06 GITLAB INC
  • US9910766B2 patent drawing
  • US9910766B2 patent drawing
  • US9910766B2 patent drawing

AI summary

Software testing of networked devices using whitebox fuzzing is provided. Target network device (TC) can execute a software target that can selectively receive fuzzed data to perturb the execution of the software target. The perturbation can be correlated with the fuzzed data to detect intentional and unintentional features of the software target in. Information related to the interaction of the TC and a target network peer device (TPC) can be employed to determine a state input. Optionally, the TC can interact with the TPC normally until a determined state input, at which point, a fuzzed input can be substituted into the communication to the TC as if it were from the TPC. Resulting deviations from normal operation can then be determined and analyzed. Further optionally, a session dependent conditional and corresponding value can be determined.