Skip to content

Latest commit

 

History

History
101 lines (64 loc) · 7.69 KB

File metadata and controls

101 lines (64 loc) · 7.69 KB
graph LR
    Fuzzing_Session_Orchestrator["Fuzzing Session Orchestrator"]
    Input_Construction_Mutation_Engine["Input Construction & Mutation Engine"]
    System_Under_Test_SUT_Process_Monitor["System Under Test (SUT) Process Monitor"]
    Network_Traffic_Observer["Network Traffic Observer"]
    Virtual_Machine_State_Manager["Virtual Machine State Manager"]
    Inter_Process_Communication_IPC_Handler_PEDRPC_["Inter-Process Communication (IPC) Handler (PEDRPC)"]
    Crash_Data_Analyzer_Reporter["Crash Data Analyzer & Reporter"]
    Fuzzing_Session_Orchestrator -- "Requests Fuzzed Input" --> Input_Construction_Mutation_Engine
    Input_Construction_Mutation_Engine -- "Provides Fuzzed Input" --> Fuzzing_Session_Orchestrator
    Fuzzing_Session_Orchestrator -- "Controls Target Execution" --> System_Under_Test_SUT_Process_Monitor
    System_Under_Test_SUT_Process_Monitor -- "Reports Process Status/Crashes" --> Fuzzing_Session_Orchestrator
    Fuzzing_Session_Orchestrator -- "Manages Network Capture" --> Network_Traffic_Observer
    Network_Traffic_Observer -- "Provides Network Data" --> Fuzzing_Session_Orchestrator
    Fuzzing_Session_Orchestrator -- "Orchestrates VM State" --> Virtual_Machine_State_Manager
    Virtual_Machine_State_Manager -- "Confirms VM State" --> Fuzzing_Session_Orchestrator
    Fuzzing_Session_Orchestrator -- "Communicates via RPC" --> Inter_Process_Communication_IPC_Handler_PEDRPC_
    Inter_Process_Communication_IPC_Handler_PEDRPC_ -- "Facilitates RPC Communication" --> Fuzzing_Session_Orchestrator
    Fuzzing_Session_Orchestrator -- "Submits Crash Information" --> Crash_Data_Analyzer_Reporter
    Crash_Data_Analyzer_Reporter -- "Provides Crash Summaries" --> Fuzzing_Session_Orchestrator
    System_Under_Test_SUT_Process_Monitor -- "Sends Monitoring Data (via RPC)" --> Inter_Process_Communication_IPC_Handler_PEDRPC_
    Network_Traffic_Observer -- "Sends Network Data (via RPC)" --> Inter_Process_Communication_IPC_Handler_PEDRPC_
    click Fuzzing_Session_Orchestrator href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Fuzzing_Session_Orchestrator.md" "Details"
    click Input_Construction_Mutation_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Input_Construction_Mutation_Engine.md" "Details"
    click System_Under_Test_SUT_Process_Monitor href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/System_Under_Test_SUT_Process_Monitor.md" "Details"
    click Network_Traffic_Observer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Network_Traffic_Observer.md" "Details"
    click Virtual_Machine_State_Manager href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Virtual_Machine_State_Manager.md" "Details"
    click Inter_Process_Communication_IPC_Handler_PEDRPC_ href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Inter_Process_Communication_IPC_Handler_PEDRPC_.md" "Details"
    click Crash_Data_Analyzer_Reporter href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/sulley/Crash_Data_Analyzer_Reporter.md" "Details"
Loading

CodeBoardingDemoContact

Details

The Sulley fuzzing framework operates as a highly modular system, orchestrated by the Fuzzing Session Orchestrator. This central component drives the fuzzing process, coordinating the generation of diverse test cases by the Input Construction & Mutation Engine. It then dispatches these inputs to the System Under Test (SUT) Process Monitor for execution and crash detection. Network interactions are observed by the Network Traffic Observer, while the Virtual Machine State Manager ensures a clean testing environment. Communication across components, especially with remote monitoring agents, is facilitated by the Inter-Process Communication (IPC) Handler (PEDRPC). Finally, the Crash Data Analyzer & Reporter processes and categorizes any detected anomalies, providing critical feedback to the orchestrator. This design promotes clear separation of concerns, enabling robust and efficient fuzzing campaigns.

Fuzzing Session Orchestrator [Expand]

The central control unit managing the fuzzing loop, test case progression, and overall state. It coordinates interactions between all other components, driving the fuzzing pipeline.

Related Classes/Methods:

Input Construction & Mutation Engine [Expand]

Responsible for generating and transforming fuzzed inputs based on defined data structures (blocks, primitives, legos) and applying various mutation strategies to create diverse test cases.

Related Classes/Methods:

System Under Test (SUT) Process Monitor [Expand]

Monitors and controls the execution of the target application (SUT), detecting crashes, hangs, or other anomalous behavior. It provides mechanisms to start, stop, and interact with the target process.

Related Classes/Methods:

Network Traffic Observer [Expand]

Observes and records network communications between the fuzzer and the SUT. It captures and analyzes network packets to identify network-related issues or confirm data transmission.

Related Classes/Methods:

Virtual Machine State Manager [Expand]

Manages the state of virtual machines hosting the SUT, ensuring a clean and consistent environment for each fuzzing iteration by reverting to snapshots or controlling VM power states.

Related Classes/Methods: None

Inter-Process Communication (IPC) Handler (PEDRPC) [Expand]

Provides the communication backbone for the fuzzer, enabling interaction with remote monitoring agents and other distributed components using Sulley's custom PEDRPC mechanism.

Related Classes/Methods:

Crash Data Analyzer & Reporter [Expand]

Processes raw crash data, categorizes crashes, and provides mechanisms for viewing and reporting findings, crucial for understanding the impact of fuzzed inputs.

Related Classes/Methods: None