Security Oriented Fuzzer: American Fuzzy Lop

ID N0WHERE:49107
Type n0where
Reporter N0where
Modified 2015-09-14T05:20:25


American fuzzy lop is a security-oriented fuzzer that employs a novel type of compile-time instrumentation and genetic algorithms to automatically discover clean, interesting test cases that trigger new internal states in the targeted binary. This substantially improves the functional coverage for the fuzzed code. The compact synthesized corpora produced by the tool are also useful for seeding other, more labor- or resource-intensive testing regimes down the road.

Compared to other instrumented fuzzers, afl-fuzz is designed to be practical: it has modest performance overhead, uses a variety of highly effective fuzzing strategies and effort minimization tricks, requires essentially no configuration, and seamlessly handles complex, real-world use cases – say, common image parsing or file compression libraries.

Security Oriented Fuzzer: American Fuzzy Lop

There are several fairly decent reasons to give afl-fuzz a try:

  • It is pretty sophisticated. It’s an instrumentation-guided genetic fuzzer capable of synthesizing complex file semantics in a wide range of non-trivial targets, lessening the need for purpose-built, syntax-aware tools. It also comes with a unique crash explorer and a test case minimizer to make it dead simple to analyze and evaluate the impact of crashing bugs.
  • It has street smarts. It is built around a range of carefully researched , high-gain test case preprocessing and fuzzing strategies rarely employed with comparable rigor in other fuzzing frameworks. As a result, it finds real bugs .
  • It is fast. Thanks to its low-level compile-time or binary-only instrumentation and other optimizations , the tool offers near-native or better-than-native fuzzing speeds against common real-world targets. The newly-added persistent mode allows for exceptionally fast fuzzing of many programs with the help of minimal code modifications, too.
  • It’s rock solid. Compared to other instrumentation- or solver-based fuzzers, it has remarkably few gotchas and failure modes. It also comes with robust, user-friendly problem detection that guides you through any potential hiccups.
  • No tinkering required. In contrast to most other fuzzers, the tool requires essentially no guesswork or fine-tuning. Even if you wanted to, you will find virtually no knobs to fiddle with and no “fuzzing ratios” to dial in.
  • It’s chainable to other tools. The fuzzer generates superior, compact test corpora that can serve as a seed for more specialized, slower, or labor-intensive processes and testing frameworks.
  • It sports a hip, retro-style UI. Just scroll back to the top of the page.

Security Oriented Fuzzer: American Fuzzy Lop Security Oriented Fuzzer: American Fuzzy Lop Security Oriented Fuzzer: American Fuzzy Lop Security Oriented Fuzzer: American Fuzzy Lop

Download & other useful links

Here’s a collection of useful links related to _ afl-fuzz _ :

The tool is confirmed to work on x86 Linux, OpenBSD, FreeBSD, and NetBSD, both 32- and 64-bit. It should also work on MacOS X and Solaris, although with some constraints. It supports programs written in C, C++, or Objective C, compiled with either gcc or clang. On Linux, the optional QEMU mode allows black-box binaries to be fuzzed, too.

There are variants and derivatives of AFL that allow you to fuzz Python , Go , Rust , or GCJ Java. There is also a closely inspired in-process fuzzer baked into LLVM .

Source && Download

Security Oriented Fuzzer: American Fuzzy Lop download Security Oriented Fuzzer: American Fuzzy Lop Security Oriented Fuzzer: American Fuzzy Lop Security Oriented Fuzzer: American Fuzzy Lop