Skip to content

Decentralized fuzzing based on untrustworthy nodes

Notifications You must be signed in to change notification settings

NikitaEvs/DissFuzz

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

DissFuzz

Decentralized fuzzing based on untrustworthy nodes.

Presentation: Google Slides or PDF.

Authors

Demo

Demo

Overview

Fuzzing is a technique employed to identify vulnerabilities in a program by automatically generating and testing diverse inputs. Running a fuzzer locally on a single machine can be time-consuming, so it can be distributed across different machine cores.

Our project, DissFuzz, is the first work to support distributed and decentralised fuzzing based on untrusted nodes:

  • The system incorporates different actors that use the blockchain for synchronisation, ensuring the security of our system.
  • To encourage user participation in the system, we introduce a digital currency.
  • To maintain the integrity and security of our system, we implement a Proof of Work (PoW) mechanism.

The objective of the project is to extend the distributed fuzzing further by eliminating the single point of trust. This is achieved through the implementation of permissionless consensus and zero-knowledge Proof-of-Fuzzing-Work implemented using Execution Hash of programs under fuzzing.

Content

Disclaimer

Since the project is based on the course's homework, the repository doesn't contain any code. Our work is an extension of the paper D. Jang, A. Askar, I. Yun, S. Tong, Y. Cai, and T. Kim, “Fuzzing@home: Distributed fuzzing on untrusted heterogeneous clients".

The majority of the codebase is written in Go. Some parts related to cryptography and LLVM generation are implemented in C++.

About

Decentralized fuzzing based on untrustworthy nodes

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published