ClusterFuzzLite

For several years, Google has been making a concerted effort to improve the security of open source software. The challenge for all developers is finding a way to build more secure applications without slowing down the rate at which they are deployed. Fuzz testing makes it possible to identify issues much earlier in the application development life cycle versus just before an application is deployed.

In recent years, continuous fuzzing has become an essential part of the software development lifecycle. By feeding unexpected or random data into a program, fuzzing catches bugs that would otherwise slip through the most thorough manual checks and provides coverage that would take staggering human effort to replicate. NIST’s guidelines for software verification, recently released in response to the White House Executive Order on Improving the Nation’s Cybersecurity, specify fuzzing among the minimum standard requirements for code verification.

Google announce ClusterFuzzLite, a continuous fuzzing solution that runs as part of CI/CD workflows to find vulnerabilities faster than ever before. With just a few lines of code, GitHub users can integrate ClusterFuzzLite into their workflow and fuzz pull requests to catch bugs before they are committed, enhancing the overall security of the software supply chain.

Since its release in 2016, over 500 critical open source projects have integrated into Google’s OSS-Fuzz program, resulting in over 6,500 vulnerabilities and 21,000 functional bugs being fixed. ClusterFuzzLite goes hand-in-hand with OSS-Fuzz, by catching regression bugs much earlier in the development process. Large projects including systemd and curl are already using ClusterFuzzLite during code review, with positive results.

With the release of ClusterFuzzLite, any project can integrate this essential testing standard and benefit from fuzzing. ClusterFuzzLite offers many of the same features as ClusterFuzz, such as continuous fuzzing, sanitizer support, corpus management, and coverage report generation. Most importantly, it’s easy to set up and works with closed source projects, making ClusterFuzzLite a convenient option for any developer who wants to fuzz their software. Here are some other features of this tool.

Features

  • Quick code change (pull request) fuzzing to find bugs before they land

  • Downloads of crashing testcases

  • Continuous longer running fuzzing (batch fuzzing) to asynchronously find deeper bugs missed during code change fuzzing and build a corpus for use in code change fuzzing

  • Coverage reports showing which parts of your code are fuzzed

  • Modular functionality, so you can decide which features you want to use

Supported Languages

  • C

  • C++

  • Java (and other JVM-based languages)

  • Go

  • Python

  • Rust

  • Swift

Supported CI Systems

Supported Fuzzing Engine and Sanitizers

Is there a difference between ClusterFuzz and ClusterFuzzLite?

Google says that ClusterFuzzLite can be integrated into existing workflows to fuzz pull requests, improve the chances of finding bugs/vulnerabilities earlier before anything is committed.

ClusterFuzz and ClusterFuzzLite contain some of the same features, including report creation, continuous fuzzing, and sanitizer support. They differ during setup, as ClusterFuzz is easier to set up with closed-source projects. ClusterFuzz supports Google Cloud Build, GitHub Actions, and Prow.

Getting Started

If you’re new to using libFuzzer and sanitizers, start with the Overview for an explanation of terms and the fuzzing process.

If you’re already familiar with using libFuzzer and sanitizers, start with Step 1: Build Integration.

The documentation for this tool can be read at GitHub.

Less clear, of course, is whether developers are starting to use these tools on their own or if the increased adoption is because of a concerted effort by their organization to embrace DevSecOps best practices. Regardless of the motivation, however, the overall state of application security should continue to improve as it becomes simpler for developers to invoke more advanced testing tools. If your organization wants to improve the implementation of security tools and DevSecOps best practices, check out our services in terms of security and contact us by clicking the button below.

Devops Services
Previous
Previous

Grafana Cloud: New annoucement

Next
Next

20 benefits of staff augmentation