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

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.