37C3 - Fuzz Everything, Everywhere, All at Once

Discover how LibAFL can find memory corruption vulnerabilities and bugs in targets like firmware and Android code.

Key takeaways
  • Fuzzing is a popular technique for finding memory corruption vulnerabilities, but it can also be used to find other types of bugs, such as injection vulnerabilities.
  • LibAFL is a scalable fuzzing engine that can be used to fuzz a wide variety of targets, including firmware and Android code.
  • LibAFL uses a custom QEMU-based emulator to allow for efficient fuzzing of systems that would be difficult or impossible to fuzz using traditional fuzzing techniques.
  • One of the key benefits of libAFL is its ability to scale to large numbers of cores, allowing for much faster fuzzing times.
  • The library has a number of hooks that can be used to customize its behavior and allow for the insertion of custom code at specific points in the target program.
  • LibAFL is open source and has been used by a number of different researchers and companies to fuzz a wide variety of targets.
  • The library has a number of features that make it particularly well-suited for fuzzing firmware and other types of embedded systems, including its ability to fuzz in-memory code and its support for ARM and other embedded architectures.
  • LibAFL can also be used to fuzz systems that are currently protected by a bug, but will be vulnerable in the future, allowing researchers to identify potential vulnerabilities before they are exploited.
  • The library’s ability to fuzz at the binary level, rather than the source code level, makes it particularly well-suited for fuzzing systems that are not open source.
  • LibAFL can be used to fuzz a wide variety of targets, including Android code, firmware, and Windows systems.
  • The library has a number of features that make it particularly well-suited for fuzzing systems that are running on hardware, including its ability to fuzz at the binary level and its support for ARM and other embedded architectures.
  • LibAFL can also be used to fuzz systems that are running on virtual machines, including virtual machines that are running on a different architecture than the host machine.