Date | Day | Time | Duration |
20 Nov | Monday | 09:00 to 17:00 SGT/GMT +8 | 8 Hours |
21 Nov | Tuesday | 09:00 to 17:00 SGT/GMT +8 | 8 Hours |
22 Nov | Wednesday | 09:00 to 17:00 SGT/GMT +8 | 8 Hours |
This course have various hands on exercises on fuzzing open source software on linux as well as basics of kernel fuzzing using syzkaller
This training will start from user mode fuzzing and later covers complex topics like linux kernel fuzzing and firmware fuzzing etc.
In this training, attendees will also 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.
Preconfigured VM on a USB drive with all the course materials and tools installed for this training so that attendees dont need to build or configure anything.
○ Example – radmasa
○ Example – sulley
○ Examples – AFL, WinAFL, AFL++, libfuzzer, Honggfuzz
○ AFL_HARDEN, AFL_USE_ASAN,
○ AFL_DONT_OPTIMIZE etc.
○ Getting source code and dependencies
○ Compiling with AFL++
○ Collecting Corpus
○ Minimising Corpus
○ Fuzzing the program
○ Looking at issues found through fuzzing
○ Getting source code and dependencies
○ Compiling with AFL++
○ Collecting Corpus
○ Minimising Corpus
○ Fuzzing the program
○ Looking at issues found through fuzzing
o Using persistent mode to improve fuzzing speed
o Using shmem mode to improve fuzzing speed
o Using dictionaries to fuzz
o Fuzzing in Qemu Mode
o Fuzzing Different Arch Binaries with Qemu
o Using CMPLog Feature to fuzz
o Fuzzing network binaries with AFL++
o How to compile and install Hongfuzz
o How to run HonggFuzz
o How to compile and fuzz a simple program with HonggFuzz
o How to compile and install LibFuzzer
o How to Write Harness for libfuzzer
o How to compile and fuzz a simple program with libfuzzer
○ Getting source code and dependencies
○ Compiling with AFL++
○ Collecting Corpus
○ Minimising Corpus
○ Fuzzing the program
○ Looking at issues found through fuzzing
○ Getting source code and dependencies
○ Compiling with AFL++
○ Collecting Corpus
○ Minimising Corpus
○ Fuzzing the program
○ Looking at issues found through fuzzing
○ Getting source code and dependencies
○ Compiling with AFL++
○ Collecting Corpus
○ Minimising Corpus
○ Fuzzing the program
○ Looking at issues found through fuzzing
○ Getting source code and dependencies
○ Compiling with AFL++
○ Collecting Corpus
○ Minimising Corpus
○ Fuzzing the program
○ Looking at issues found through fuzzing
o How to install crashwalk
o Using Cwtriage,Cwdump
o How to use it to do automated crash triaging
o What it is and Theory
o How to set it up locally
o How to build docker images and fuzzers
o How to fuzz various Open Source Software with OSS-Fuzz
o How to extract firmwares
o How to Fuzz Softwares
o How to setup syzkaller on system
o Various tools syz-manger etc., dir structure, config files.
o How to configure and build linux kernel for fuzzing
o How to replicate old issue with corpus
o How to fuzz a simple kernel module, write syzkaller descriptions, enabling/disabling syscalls
o How to compile kernel and syzkaller with custom module and definitions
o How to fuzz using syzkaller
o How to replicate crashes
o How to debug crashes with gdb and qemu
Q&A and Conclusion
Hardik Shah (@hardik05) is an experienced cyber security professional with 17+ years of experience in the computer security industry. Currently works as a Principal Security Researcher at Vehere where he is responsible for analysing latest threats, detecting them and product improvements.
In the past he has worked with various security companies like Sophos, McAfee, and Symantec, where he has built research teams from ground zero, managed various critical cyber threats to provide
protection to customers, implemented various product features and has mentored many people.
Hardik is also known for his skills in fuzzing and vulnerability discovery and analysis.
He has discovered 35+ vulnerabilities in Microsoft and various open source software. He had conducted
workshops at various industry leading cyber security conferences such as Defcon, Bsides, RSA dark arts, and many others. Hardik enjoys analysing latest threats and figuring out ways to protect
customers from them.