Fuzzing, also known as fuzz testing, is an automated software testing technique that involves providing invalid, unexpected, or random inputs to a program. The aim is to identify security vulnerabilities, bugs, or crashes. This method has been instrumental in uncovering numerous critical vulnerabilities in widely-used software.
Fuzzing is valuable for security researchers, software developers, and QA engineers. Whether you're a beginner or a seasoned professional, fuzzing can enhance your ability to identify and fix vulnerabilities effectively.
Participants should have a basic understanding of:
Training Overview:
Fuzzing is a powerful technique for identifying vulnerabilities in software. This hands-on training will cover the theory and practical aspects of fuzzing, including:
Attendees will have the opportunity to practice fuzzing on both Windows and Linux platforms and apply the concepts learned to fuzz real-world software. This training is ideal for anyone with a basic understanding of software development and testing.
The training will start with user-mode fuzzing, then progress to complex topics like Linux kernel fuzzing and firmware fuzzing.
Participants will also learn about the different types of vulnerabilities that fuzzing can uncover, such as:
We will discuss the causes of these vulnerabilities and how to address them through fuzzing. Additionally, other types of fuzzers, such as dumb fuzzers and mutation fuzzers, will be introduced along with their benefits and limitations. Attendees will also use tools like GDB and Crashwalk to debug crashes and perform root cause analysis.
Training Overview:
Fuzzing is a powerful technique for identifying vulnerabilities in software. This hands-on training will cover both the theory and practical aspects of fuzzing, including:
Attendees will have the opportunity to practice fuzzing on both Linux and Windows platforms. They will apply the concepts and techniques learned in the training to fuzz real-world software.
We will also explore how to customize WinAFL to add new features and tailor it to specific needs. This training is designed to be beginner-friendly and suitable for individuals with a basic understanding of software development and testing.
Topics Covered:
By the end of the training, attendees will be equipped with the skills and knowledge to conduct effective fuzzing on real-world software and identify critical vulnerabilities.
Training Overview:
A three-day training on fuzzing, a powerful technique for identifying vulnerabilities in software. This hands-on training will cover the theory and practical aspects of fuzzing, including coverage-guided fuzzing, basic blocks and binary instrumentation, corpus collection and minimization, target selection, crash triage and root cause analysis, and real-life CVE analysis. Attendees will have the opportunity to practice fuzzing on open source software and apply the concepts and techniques learned in the training. This training is suitable for attendees with a basic understanding of software development and testing. In this training, attendees will learn about the different types of vulnerabilities that can be found through fuzzing, including buffer overflows, heap overflows, integer overflows, use-after-free errors, and out-of-bounds read/write errors. We will discuss the underlying causes and potential impacts of these vulnerabilities, as well as how to identify and address them through fuzzing.In addition to coverage-guided fuzzing, we will also introduce other types of fuzzer, such as dumb fuzzers and mutation fuzzers, and discuss their benefits and limitations. Attendees will also learn how to use tools such as GDB and Crashwalk to debug and analyze crashes, and to perform root cause analysis to identify the underlying cause of vulnerabilities.