CI Fuzz supports different Linux distributions to set up fuzzing locally. Developers can also fuzz continuously after the local setup within a Continuous Integration, we support all major continuous integrations.
You can install and run CI Fuzz locally on Debian/Ubuntu/Linux Mint, on RHEL/Centos/Fedora and Arch Linux. The following applications need to be installed on your Linux system in order to run CI Fuzz:
We use docker to execute the fuzz tests. This makes it easier to migrate existing fuzz tests into cloud and continuous integration systems and prevents the tests from corrupting data on your local machine.
Installing docker differs from distribution to distribution, as explained here: https://docs.docker.com/engine/install/
It usually boils down to one of the following:
$ sudo [apt install/yum install/pacman -S] docker
Make sure to also follow the post-install steps described here.
Create a group called
docker and add your own user to this group:
$ sudo groupadd docker $ sudo usermod -aG docker $USER
Log out and log back in so that your group membership is re-evaluated. Then, verify that you can run docker commands without sudo:
docker run hello-world
In order to test your Java applications, or any services that use Java frameworks like Spring Boot / JEE / XCF, you will need to install a current Java Runtime Environment. We suggest installing at least version 10 of the OpenJDK Java Runtime. Other versions may very well work too, but your mileage may vary.
$ sudo [apt install/yum install/pacman -S] jre10-openjdk
If you want to use the CI Fuzz IDE extension, you need to have Visual Studio Code installed. You can install VS Code via packages provided on their website: https://code.visualstudio.com/#alt-downloads
You can use Microsoft’s official distribution independent Visual Studio Code snap at https://snapcraft.io/code
$ sudo snap install code --classic
Right now, Windows/Mac support is not yet finished. We do support fuzzing of windows software, but with a consultancy overhead. Contact us at firstname.lastname@example.org for more information.