GithubHelp home page GithubHelp logo

cpuu / awesome-fuzzing Goto Github PK

View Code? Open in Web Editor NEW
820.0 47.0 84.0 338 KB

A curated list of awesome Fuzzing(or Fuzz Testing) for software security

awesome-list awesome fuzzing fuzz-testing cpuu

awesome-fuzzing's Introduction

Awesome Fuzzing Awesome

Fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks. Typically, fuzzers are used to test programs that take structured inputs.

A curated list of references to awesome Fuzzing for security testing. Additionally there is a collection of freely available academic papers, tools and so on.

Your favorite tool or your own paper is not listed? Fork and create a Pull Request to add it!

Contents

Books

Talks

Papers

To achieve a well-defined scope, I have chosen to include publications on fuzzing in the last proceedings of 4 top major security conferences and others from Jan 2008 to Jul 2019. It includes (i) Network and Distributed System Security Symposium (NDSS), (ii) IEEE Symposium on Security and Privacy (S&P), (iii) USENIX Security Symposium (USEC), and (iv) ACM Conference on Computer and Communications Security (CCS).

The Network and Distributed System Security Symposium (NDSS)

IEEE Symposium on Security and Privacy (IEEE S&P)

USENIX Security

ACM Conference on Computer and Communications Security (ACM CCS)

ArXiv (Fuzzing with Artificial Intelligence & Machine Learning)

The others

Tools

Information about the various open source tools you can use to leverage fuzz testing. The items in this section have been organized and classified based on the standards set by the https://fuzzing-survey.org/ website. Although there are currently more than 35 categories, we have selected the most relevant ones to provide efficient information. Additionally, items that are outdated and deprecated have been excluded, and only those that are currently usable are listed.

File

  • AFL++ - AFL++ is a superior fork to Google's AFL - more speed, more and better mutations, more and better instrumentation, custom module support, etc.
  • Angora - Angora is a mutation-based coverage guided fuzzer. The main goal of Angora is to increase branch coverage by solving path constraints without symbolic execution.

Kernel

Network

API

  • IvySyn - IvySyn is a fully-automated framework for discovering memory error vulnerabilities in Deep Learning (DL) frameworks.
  • MINER - MINER is a REST API fuzzer that utilizes three data-driven designs working together to guide the sequence generation, improve the request generation quality, and capture the unique errors caused by incorrect parameter usage.
  • RestTestGen - RestTestGen is a robust tool and framework designed for automated black-box testing of RESTful web APIs.
  • GraphFuzz - GraphFuzz is an experimental framework for building structure-aware, library API fuzzers.
  • Minerva - Minerva is a browser fuzzer augmented by API mod-ref relations, aiming to synthesize highly-relevant browser API invocations in each test case.
  • FANS - FANS is a fuzzing tool for fuzzing Android native system services. It contains four components: interface collector, interface model extractor, dependency inferer, and fuzzer engine.

JavaScript

Firmware

Hypervisor

CPU

  • DifuzzRTL - DifuzzRTL is a differential fuzz testing approach for CPU verification.
  • MorFuzz - MorFuzz is a generic RISC-V processor fuzzing framework that can efficiently detect software triggerable functional bugs.
  • SpecFuzz - SpecFuzz is a tool to enable fuzzing for Spectre vulnerabilities
  • Transynther - Transynther automatically generates and tests building blocks for Meltdown attacks with various faults and microcode assists.

Lib

Web

  • TEFuzz - TEFuzz is a tailored fuzzing-based framework to facilitate the detection and exploitation of template escape bugs.
  • Witcher - Witcher is a web application fuzzer that utilizes mutational fuzzing to explore web applications and fault escalation to detect command and SQL injection vulnerabilities.
  • CorbFuzz - CorbFuzz is a state-aware fuzzer for generating as much reponses from a web application as possible without need of setting up database, etc.

DOM

Argument

Blockchain

  • Fluffy - Fluffy is a multi-transaction differential fuzzer for finding consensus bugs in Ethereum.
  • LOKI - LOKI is a blockchain consensus protocol fuzzing framework that detects the consensus memory related and logic bugs.

DBMS

  • Squirrel - Squirrel is a fuzzer for database managment systems (DBMSs).

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC0

To the extent possible under law, cpuu has waived all copyright and related or neighboring rights to this work.

awesome-fuzzing's People

Contributors

cpuu avatar ehmicky avatar fmeum avatar gpotter2 avatar nbdnnm avatar ntinosk-mtf avatar yigblst avatar

Stargazers

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

Watchers

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

awesome-fuzzing's Issues

Issues with fuzzers list and categorization

Hi, there are several missing fuzzers in the list like the popular honggfuzz and AFLplusplus.
The categorization is broken.
For instance, libFuzzer is not a Binary fuzzer, but a source-level fuzzer. AFL supports both, source and binary.
Regards the Web/Javascript there are two independet categories merged.
The first, is the JS engines fuzzers like fuzzilli and CodeAlchemist, that are C/C++ source-level fuzzers made to test JS engines, the other are JS code fuzzer that are far away different (and less complex let me to say that) than JS engines fuzzers.

Another usenix security 2018 paper on fuzzing

HI,

Thanks for your helpful list of tools and research projects on fuzzing.

I appreciate it if you also look at our paper and add it to your list:
Charm: Facilitating Dynamic Analysis of Device Drivers of Mobile Systems
https://www.usenix.org/conference/usenixsecurity18/presentation/talebi

In this paper, we made fuzzing of mobile devices' drivers more efficient and more reliable.
All the tools we developed are open source and can be found here:
https://github.com/trusslab/charm

please let me know if you need more information about our work.

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.