Advanced Fuzzing and Crash Analysis
4-Day Training | Virtual
| 21-24 November 2021

Advanced Fuzzing and Crash Analysis

This class is designed to introduce students to the best tools and technology available for automating vulnerability discovery and crash triage with a focus on delivering a practical approach to finding vulnerabilities in real world targets.
Principal Security Researcher, FUZZING IO

Available seats

TBA

Difficulty

Advanced
US$ 4,299

Attend in-person

TBA

Attend online

via livestream

Date

21-24 November 2021

Time

10:00 to 18:00 PST/GMT-8
To be announced
This class is designed to introduce students to the best tools and technology available for automating vulnerability discovery and crash triage with a focus on delivering a practical approach to applying this technology in real deployments.

Through an applied understanding of introductory program analysis and binary translation, techniques for finding various bug classes and methods for improved crash debugging will be discussed. We will take a deep dive into fuzzing, covering all aspects of this practical approach to finding bugs. As the most approachable and versatile of the available tools, the student will apply various fuzzing techniques to several real-world pieces of software. Students will learn strategies for analyzing attack surface, writing grammars, and generating effective corpus. We will explore in detail the latest innovations such as harnessing code coverage for guided evolutionary fuzzing and symbolic reasoning for concolic fuzzing.

We approach crash analysis through the lens of scriptable debuggers and program analysis. We will apply tools like reverse debugging and memory debuggers to assist in interactively diagnosing root cause of crashes. Then we will leverage the power of dynamic taint tracking and graph slicing to help isolate the path of user controlled input in the program and identify the exact input bytes influencing a crash. Lastly, we will look at possible ways to determine the impact of a vulnerability.

This class will focus on x86/x64 architecture and target file parsers, network parsers and browsers on both Windows and Linux environments.

Students should be prepared to tackle challenging and diverse subject matters and be comfortable writing functions in C/C++ and Python to complete exercises. Attendees should have basic experience with debugging native x86/x64 memory corruption vulnerabilities on Linux or Windows.

This class is meant for professional developers or security researchers looking to add an automation component to their software security analysis. Students wanting to learn a programmatic and tool driven approach to analyzing software vulnerabilities and crash triage will benefit from this course.

  • Learn an effective strategy for using the latest tools & technology to discover vulnerabilities
  • Master the latest fuzzing techniques for file, network, and browser fuzzing
  • Learn grammar fuzzing, evolutionary fuzzing, in-memory fuzzing, and symbolic fuzzing
  • Best practices for corpus generation, fuzzer deployment, and targeting
  • Leverage dynamic binary translation for efficient tracing and deep program inspection
  • Learn how to leverage time travel debugging for crash triage on Linux and Windows
  • Introduction to intermediate languages for program analysis
  • Apply powerful techniques like taint analysis and graph slicing towards crash analysis

Students should have the latest VMware Player, Workstation, or Fusion working on their machine.

+Testimonials

There are courses that are super focused on a specific topic and when you try to research contents yourself, it might cost you more than the course in the end. Example: my recent fuzzing course by @richinseattle – researching that by myself: half year. At least. – Julien Ahrens @MrTuxracer via Twitter Jul 8

The best courses save you months of self research, and if you ask the right questions during the course, you can get insights that take years of experience to know yourself. Richard’s course is excellent and he’s always helping me with my newb fuzzing questions!. – Pedro Ribeiro @pedrib1337 via Twitter Jul 8

The technical setup part of the course was done extremely well.

Apart from the topic as a whole I especially liked the insights stemming from decades of experience.

Defintely a yes: even with the limitations of virtual attendance this is a deep diving course that is invaluable.

This was a very interesting experience. Extremely complex subjects presented in approachable manner. A lot of practical examples. Plenty of material for further study. I would definitely recommend this or any class with this trainer.

I would definitely recommend this training. I learned allot of new techniques and i am very happy that we have still access to the trainer after the training since its advanced material.

I would definitely recommend the class to my peers, Richard is really great in explaining the subjects and for me it’s tremendously helpful in viewing his workflow in analyzing and debugging everything.

Richard Johnson did a very good job. Communication is clear and effective, demonstrations and explanations make sense and I managed to learn alot.

Knowledgable and passionate about the subject. Easy to discuss topics regarding fuzzing with instructor. Great to see him doing live demos to see his thought process.

As expected, Richard has a solid hold on the subject and was very helpful to share information with lots of examples. Jaewon was helpful in assisting the exercises. Good experience.

This training is what I wanted. – Thank you for great training!

Richard was awesome! Very knowledgeable and professional. I learned a ton

The training was really great. I found bunch of 0days since I took it. I liked it so much that I do recommend it everywhere I go 🙂 especially to my RedTeam friends.

I thought I was already quite good at fuzzing all the things, but, apparently, I was wrong. I learned a ton of new things including underestimated details. Thanks @richinseattle for this intense training! #security

+agenda

Title

Details

Date

Analysis of generational and mutational fuzzing
  • Attack surface analysis
  • Effective mutation engines
  • Effective corpus generation
  • Protocol and file format grammars
  • Crash detection
21-24 November 2021
Fuzzing file and network parsers with coverage guided fuzzing
  • Fuzz any Ubuntu/Debian package with AFL
  • Modifying targets and writing harnesses with LibFuzzer
  • Fuzzing closed source parsers with QEMU and Dyninst
21-24 November 2021
Best practices for high performance fuzzing
  • System configuration
  • Corpus generation techniques
  • Cross-fuzzing difficult parsers
21-24 November 2021
Dynamic Binary Translation for Fuzzing and Triage
  • Effectively instrument Linux and Windows with binary translation
  • Introduction to Valgrind, Dr. Memory, and Address Sanitizer
  • Introduction to PIN, DynamoRIO, and Dyninst internals
  • Identifying hook locations with Debuggers and DBI
  • Fuzzing kernels and other architectures with QEMU
21-24 November 2021
Fuzzing parsers with WinAFL
  • Optimizing harnesses for exported APIs
  • Hooking closed source command line applications
  • Deep hooks into private library functions with global state
  • Fuzzing internal data streams in complex OLE objects
21-24 November 2021
Fuzzing browsers with evolutionary grammar fuzzing
  • Understanding grammars and object models
  • Fuzzing object models with dynamic grammar fuzzing
  • Improving grammar fuzzers with feedback metrics
21-24 November 2021
Time Travel Debugging
  • Introduction to time travel debugging
  • Crash analysis with reverse debugging on Linux
  • Crash analysis with reverse debugging on Windows
21-24 November 2021
Taint assisted root cause analysis
  • Introduction to dynamic taint analysis
  • Taint slicing for root cause analysis
21-24 November 2021
Symbolic and Concolic Execution
  • Introduction to constraint solving
  • Concolic execution for test case generation
  • Hybrid fuzzing with concolic execution
21-24 November 2021

Book your spot for this training

+TRAINERS

Richard Johnson
Principal Security Researcher, FUZZING IO

Richard Johnson is a computer security specialist with a focus on software vulnerability analysis. Currently Principal Security Researcher at FUZZING IO, a research and development company offering professional training and consulting services, Richard offers over 18 years of professional expertise and leadership in the information security industry including past positions as Director of Security Research at Oracle Cloud Infrastructure and Research Lead roles at Cisco Talos and Microsoft.

Richard has published research papers focus on the development of advanced fuzzing and crash analysis technologies facilitating the automation of the vulnerability triage and discovery process. Richard has also delivered training and presented annually at top-tier industry conferences worldwide for over a 15 years and is an invited speaker and trainer at several leading events. Richard was also co-founder of the Uninformed Journal and was on program committees for the USENIX Workshop on Offensive Technologies, Recon, and Toorcon.

+OTHER COURSES YOU MIGHT BE INTERESTED IN

x86-64 All You Can Learn Buffet!
US$ 4,299
x86-64 All You Can Learn Buffet!

This class is run a little different from most classes. We provide you purpose-built recorded lectures instead of trapping you in realtime with live-lectures. But fear not, the instructor is always right there eagerly waiting to mingle with the students and answer any questions you have. (The instructor really likes being asked questions. It shows you're paying attention ;)). One of many benefits is that you can watch lectures at 2x speed and zoom ahead of the other students and get to the hands on labs quicker. Or if there's bits of material you already know, you can just skip them and move on to the bits you don't know! Another big benefit is that you get to take the full lectures and labs with you! That means if you forget stuff and then need it in 6 months, you can quickly re-bootstrap yourself! Or you can watch the class twice, to really grow those neural connections and cement it in your brain! And unlike live lectures, our lectures are always getting more factually accurate, by having any accidental errors edited out.


Go HERE to join the 2-day x86-64 Assembly class. Or,
Go HERE to join the 2-day x86-64 OS Internals class. Or,
Go HERE to join the 4-day x86-64 Reset Vector Firmware class.
4-Day Training Hybrid
x86-64 Reset Vector Firmware
US$ 2,299
x86-64 Reset Vector Firmware

This class is designed to give you all the background you need to understand how x86-64 reset vector firmware works, and what the most common security misconfigurations are. It will prepare you to be able to read and understand the existing attack and defense research in the space, taking an explicit walk through of the attack and defense moves and counter-moves threat tree. And as always, this classes teaches you to be comfortable with Reading The Fun Manual (RTFM!) to go seek out the most accurate details of how things work, and to see out new problems in new areas that no one's read yet with a security mindset.

You can also opt to attend this class on 23 & 24 Nov instead. To do so, just email info@cyberweek.ae

Go HERE to join the 2-day x86-64 Assembly class. Or,
Go HERE to join the 2-day x86-64 OS Internals class. Or,
Go HERE to join the 4-day x86-64 All You Can Learn Buffet class.
2-Day Training Hybrid
x86-64 OS Internals
US$ 2,299
x86-64 OS Internals

This class teaches you about the fundamental hardware mechanisms which all operating systems, virtualization systems, and firmware *must* interact with in order to run successfully on x86 hardware. This is taught in a *mostly* OS-agnostic way focusing on Intel-isms rather than OS-isms (albeit with using Windows as reinforcement, thanks to its excellent kernel-level debugging support.) This class also teaches you to be comfortable with Reading The Fun Manual (RTFM!) to give you self-sufficiency when seeking out the most accurate details of how things work.

You can also opt to attend this class on 23 & 24 Nov instead. To do so, just email info@cyberweek.ae

Go HERE to join the 2-day x86-64 Assembly class. Or,
Go HERE to join the 2-day x86-64 Reset Vector Firmware class. Or,
Go HERE to join the 4-day x86-64 All You Can Learn Buffet class.
2-Day Training Hybrid
x86-64 Assembly
US$ 2,299
x86-64 Assembly

This class teaches you how to disassemble binaries, read x86-64 assembly language, and debug black-box binaries in WinDbg and GDB. This knowledge of assembly is the fundamental skill which is required to learn reverse engineering and vulnerability exploitation. Reverse engineering is in turn a fundamental skill which is required for malware analysis and vulnerability hunting.

 

You can also opt to attend this class on 23 & 24 Nov instead. To do so, just email info@cyberweek.ae

 
Go HERE to join the 2-day x86-64 OS Internals class. Or,
Go HERE to join the 2-day x86-64 Reset Vector Firmware class. Or,
Go HERE to join the 4-day x86-64 All You Can Learn Buffet class.  
2-Day Training Hybrid