This will be a presentation offered at the 37th Chaos Computer Conference. Slides and recording are not yet available because it hasn't happened yet :)
Fahrplan entry on CCC website.
Blurb
The maintainers of the AFLplusplus open-source project show crazy new ways to (ab)use QEMU to explore difficult, binary-only targets through fuzzing.
We present a proof of concept using AFL++ and QEMU to find command and SQL-injections, going beyond the classic fuzzing for memory corruption.
We also present a scalable approach to fuzzing binary-only code with LibAFL and QEMU, showcasing how to build a custom fuzzer to test Android libraries without using a phone.
Description
In this talk, the maintainers of the AFLplusplus organization present the QEMU-based instrumentation engines developed as part of AFL++ and LibAFL to fuzz advanced binary-only targets. We discuss our extensions to QEMU, the well-known emulator, to allow high-performance, cross-architecture fuzzing and target instrumentation. Finally, we demo a proof of concept using AFL++ to find injection vulnerabilities in the binaries, going beyond the typical fuzzing for memory corruptions.
We then present LibAFL QEMU, a library that offers convenient APIs to hook the target using Rust. Unlike other public fuzzers, tools built with LibAFL can scale over cores and machines to find vulnerabilities faster and at a large scale. We also showcase how we built a custom fuzzer for a binary-only Android library using this new emulator API for fuzzing that scales to 96 cores almost linearly, reaching a whopping number of executions per second!