Mozilla this week made public a new browser fuzzing framework designed to enable the fast deployment of fuzzers at scale.
Dubbed Grizzly, the framework allows fuzzer developers to focus solely on writing fuzzers, without having to worry about creating tools and scripts to run them, Mozilla explains.
Grizzly, the browser maker reveals, was created as a platform to run internal and external fuzzers in a common way using shared tools. Cross-platform, it supports running multiple instances in parallel.
The framework handles the browser management via Target (launching, terminating, monitoring logs, monitoring resource usage of the browser, handling crashes, OOMs, hangs… etc) and the management of the fuzzer/test case generator tool via Adapter (setup and teardown of tool, providing input for the tool (if necessary), creating test cases).
It is also responsible for serving test cases and reporting of results (basic crash deduplication is performed by default and FuzzManager support is also available, with advanced crash deduplication).
Extending the “Target” or “Adapter” interface also allows for extending Grizzly, Mozilla says.
Support for specific browsers can be added through Targets, as this is where “the quirks and complexities of each browser are handled.” Adapters, on the other hand, are used to add support for fuzzers.
Grizzly was mainly designed to support blackbox fuzzers. Those interested in a feedback driven fuzzing interface should use the libfuzzer fuzzing interface.
A test case reduction mode has been included in Grizzly as well, which can be used on crashes the framework finds.
Related: Google Open Sources Fuzzing Platform