Giter Site home page Giter Site logo

fc's Introduction

place-holder

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

To-Do

  • Squash Container Image

Planned Features!

  • Support afl++
  • Support fuzzilli (docker)
  • CI/CD system for continous fuzzing

Tech

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.

Test Cluster using minikube

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

Installation

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

Debugging

Use hyperkit driver for minikube if you are running OSX

$ minikube start --driver=hyperkit --cpus=4 --memory=8192 --disk-size 20GB --alsologtostderr -v=7

Youtube Demo

Distributed Fuzzing with kubernetes and AFL

Credits

License

Apache License 2.0

Free Software, Hell Yeah!

fc's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fc's Issues

Missing Docker Image

Hello, I'm a student trying to run ClusterFuzz in a parallel way. I recently run your project, but it seems missing Docker Image: antojoseph/libfuzzer.
How can I get it or I should create my owns? Do you have any suggestion?
Thanks for your time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.