Distributed file fuzzing
AssigneeMicrosoft Corporation
InventorsDavid J. Conger, Kumar Srinivasamurthy, Robert S. Cooper
Life of this patent
Estimating the term…
Abstract
Embodiments provide a distributed file fuzzing environment. In an embodiment, a number of computing devices can be used as part of a distributing fuzzing system. Fuzzing operations can be distributed to the number of computing devices and processed accordingly. A group or team can be defined to process particular fuzzing operations that may be best suited to the group. The time required to perform a fuzzing operation can be reduced by distributing the fuzzing work to the number of computing devices. A client can be associated with each computing device and used in conjunction with fuzzing operations.
Claims20
A computer-readable medium storing executable instructions which, when executed, manage file fuzzing by:
- associating a group of computing devices with a fuzzing task, wherein the fuzzing task includes a number of fuzzing operations;
- distributing the number of fuzzing operations to a plurality of computing devices of the group, wherein each computing device of the plurality is to perform at least one of the number of fuzzing operations as part of contributing to distributed fuzzing operations of the fuzzing task;
- determining an appropriate fuzzer for each computing device of the plurality based in part on characteristics of a corresponding computing device;
- determining appropriate fuzzer files for the plurality of computing devices based in part on appropriate fuzzers and corresponding fuzzing operations to be executed by the plurality of computing devices;
- executing the fuzzing operations using the plurality of computing devices to provide an output of fuzzing information as part of the distributed fuzzing operations;
- receiving the output of fuzzing information associated with execution of the number of fuzzing operations using the plurality of computing devices;
- and,
- storing the output of fuzzing information associated with the fuzzing task.
A system to manage fuzzing operations as part of providing a distributed fuzzing environment, the system comprising:
- a plurality of computing devices wherein each computing device of the plurality is to perform at least one fuzzing operation as part of contributing to distributed fuzzing operations of a fuzzing run;
- a serving component in communication with the plurality of computing devices to manage a distribution of the fuzzing operations to the plurality of computing devices associated with the fuzzing run, wherein the serving component includes functionality to:
- identify a fuzzer associated with the fuzzing operations including determining an appropriate fuzzer for each computing device of the plurality based in part on characteristics of a corresponding computing device;
- determine appropriate fuzzer files for the plurality of computing devices based in part on appropriate fuzzers and corresponding fuzzing operations for execution by the plurality of computing devices;
- a client component associated with each computing device of the plurality to define run parameters associated with the fuzzing run, wherein the client component is configured to determine an application footprint of an associated computing device;
- and,
- a store component including memory to store fuzzing information associated with the distribution of the fuzzing operations.
A method of file fuzzing comprising:
- collecting information associated with a group of computing devices to be used in the file fuzzing, wherein the collected information includes operational capability of each computing device of the group of computing devices, wherein each computing device of the group is to perform at least one fuzzing operation as part of contributing to distributed file fuzzing operations;
- receiving an indication of a fuzzer to use for the file fuzzing including determining an appropriate fuzzer for each computing device of the group based in part on characteristics of a corresponding computing device;
- receiving a fuzzing file associated with the file fuzzer including determining appropriate fuzzer files for the group of computing devices based in part on appropriate fuzzers and corresponding fuzzing operations to be executed by the group;
- executing the fuzzing operations using the group of computing devices to provide an output of fuzzing results as part of distributed file fuzzing;
- compiling the fuzzing results associated with the group of computing devices;
- and,
- storing the fuzzing results.
Dependencies are inferred from the claim text.