Distributed fuzzing infrastructure with k8s, ceph for state sharing and elk stack for monitoring!
- scale your fuzzing workloads
- resilient sate sharing using ceph
- cluster performace monitoring with elastic,metric-beats and kibana
- Squash Container Image
- Support afl++
- Support fuzzilli (docker)
- CI/CD system for continous fuzzing
FuzzCube uses a number of open source projects:
- afl - the mighty afl
- libFuzzer - powerful in-process fuzzing
- k8s - Container Orchestration!
- ceph - Distributed Object Storage
- elastic - Visibility for k8s.
And of course FuzzCube itself is open source with a public repository on GitHub.
FuzzCube requires a working k8s cluster to run. Install minikube and deploy the yaml spec to start fuzzing.
#install minikube
$brew install minikube
#or to update your existing installation
$brew update
$brew upgrade minikube
#deploy a k8s cluster with 4 cpu , 8gigs of memory , 20 gigs of storage and log startup to console
$minikube -p clustername start --cpus=4 --memory=8192 --disk-size 20GB --alsologtostderr -v=7
# deploy dashboard for a neat UI to see everything in your cluster
$minikube dashboard -p clustername
#deploy metrics-server required by k8s to measure performance
$minikube addons -p clustername metrics-server
# to view resource utilization in the cluster
$kubectl top pod --all-namespaces | sort --reverse --key 3 --numeric
#to check what cluster you are working with
$kubectl config get-contexts
# get all pods in the cluster ( all -namespaces )
$kubectl get pods -A
# get a shell inside a pod inside the cluster (for debugging )
$kubectl exec -it podnamehere /bin/bash
to deploy the fuzzer , have kubectl configured to use the cluster of choice . If you follow the above steps , this will be done for you!
$ git clone https://github.com/antojoseph/fc
$ cd fc
$ kubectl apply -f spellbook.yaml
$ kubectl apply -f afl.yml
$ kubectl apply -f libfuzzer.yml
$ kubectl apply -f debug.yml
For production environments...
$ change your ceph configuration to multi-node for resilience
Use hyperkit driver for minikube if you are running OSX
$ minikube start --driver=hyperkit --cpus=4 --memory=8192 --disk-size 20GB --alsologtostderr -v=7
- saadrana219 - for sharing your wisdom
Apache License 2.0
Free Software, Hell Yeah!