//Training
session>

Hands-On Fuzzing: Identifying Vulnerabilities Across Linux and Windows Platforms

Hardik Shah

Introduction

Fuzzing is 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.

In this workshop, attendees will have the opportunity to practice fuzzing on Linux and windows platforms and apply the concepts and techniques learned in the training to fuzz real world software. The training will also showcase how can we customize WinAFL to add new features and suit our needs.

This training is suitable for attendees with a basic understanding of software development and testing and is beginner friendly.
This training will start from user mode fuzzing and later on covers 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, WinDBG and Crashwalk to debug and analyse crashes, and to perform root cause analysis to identify the underlying cause of vulnerabilities. We will also see how to debug crashes using time travel debugging on windows, measure code coverage, collect corpus and minimise them.

Training agenda:

Day 1

• Introduction
• The different types of vulnerabilities
• Hands on: Manually identifying the vulnerabilities in sample C code.
• What is fuzzing?

  • Fuzzing Process
  • Different types of fuzzer
  • Dumb fuzzer
  • Mutation fuzzer
  • Coverage guided fuzzer.

• Basic blocks and code coverage
• Binary instrumentation
• Corpus Managment
• What is AFL and AFL++?
• Different Sanitizers
• Using AFL++

Day 2

• Root cause analysis and debugging using GDB

  • Debugging crashes using GDB
  • Finding root cause
  • Crash triaging using Crashwalk
  • How to install crashwalk
  • Using Cwtriage,Cwdump
  • How to use it to do automated crash triaging

• Fuzzing real world programs
• Fuzzing TCPDump
• Fuzzing libtiff
• Fuzzing ImageMagick
• Fuzzing FFMpeg
• Fuzzing libEMF
• Fuzzing libGD
• OSS-Fuzz introduction
• Introduction to Firmware Fuzzing
• Introduction to Linux Kernel Fuzzing

Day 3

• Fuzzing open source vs close source programs
• How does winafl works?
• Instrumentation with DynamoRIO
• Fuzzing Strategies
• Using WinAFL

  • Hands on: Compile Sample C program using Visual Studio.
  • Hands on: Find Offset of Fuzz Function.
  • Hands on: Run Winafl in debug mode to check everything is working fine.
  • Hands on: Fuzz using WinAFL.
  • Hands on: Analyzing the crashes and finding root cause.

• Fuzzing real world programs.
o Write a harness/test program to read/parse MDB files.
o Write a harness to fuzz EMF files and fuzzing it using winafl.
o Write a harness to fuzz LNK files and fuzzing it using winafl.
• Checking code coverage using IDA, dynamoRIO, lighthouse
• WinAFL Customization
• Jackalope Fuzzer
• Debugging using windbg
• Question and Answers

About the trainer:

ardik Shah (@hardik05) is an experienced cyber security professional with 19+ 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 50+ 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.

Buy Tickets