HITB-Invoice-Logo

deep knowledge technical trainings

AUGUST 22 / 23 / 24 / 25 @ INTERCONTINENTAL SINGAPORE

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 applying this technology in real deployments.

$4,299.00

Duration

4-day

Delivery Method

Virtual

Level

advanced

Seats Available

20

REGISTRATION CLOSED

DATE: 30th August- 2nd September 2022

TIME: 10:00 to 18:00 PDT/GMT-7

Date Day Time Duration
30 Aug Tuesday 10:00 to 18:00 PDT/GMT-7 8 Hours โ€“ Presentations & Hands-on exercises
31 Aug Wednesday 10:00 to 18:00 PDT/GMT-7 8 Hours โ€“ Presentations & Hands-on exercises
01 Sept Thursday 10:00 to 18:00 PDT/GMT-7 8 Hours โ€“ Presentations & Hands-on exercises
02 Sept Friday 10:00 to 18:00 PDT/GMT-7 8 Hours โ€“ Presentations & Hands-on exercises

 


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.

 

Topics Covered
  • Analysis of generational and mutational fuzzing
    – Attack surface analysis
    – Effective mutation engines
    – Effective corpus generation
    – Protocol and file format grammars
    – Crash detection
  • 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
  • Best practices for high performance fuzzing
    – System configuration
    – Corpus generation techniques
    – Cross-fuzzing difficult parsers
  • 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
  • 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
  • Fuzzing browsers with evolutionary grammar fuzzing
    – Understanding grammars and object models
    – Fuzzing object models with dynamic grammar fuzzing
    – Improving grammar fuzzers with feedback metrics
  • Time Travel Debugging
    – Introduction to time travel debugging
    – Crash analysis with reverse debugging on Linux
    – Crash analysis with reverse debugging on Windows
  • Taint assisted root cause analysis
    – Introduction to dynamic taint analysis
    – Taint slicing for root cause analysis
  • Symbolic and Concolic Execution
    – Introduction to constraint solving
    – Concolic execution for test case generation
    – Hybrid fuzzing with concolic execution

Researcher

National University Singapore

Dr. Wang Kailong is currently a research fellow at National University of Singapore (NUS). He received his PhD degree from School of Computing NUS in 2022. He has worked as a Research Assistant in NUS while pursuing his PhD degree from 2016 to 2021. His research interests include mobile and web security and privacy, and protocol verification. His works have appeared in the top conferences such as WWW and MobiCom.

Co-Founder & CTO

Authomize

Mr. Gal Diskin is a cybersecurity and AI researcher. He was previously the VP & head of Palo Alto Networks’ Israeli site, and is a serial entrepreneur. Mr. Diskin’s research has been featured in HITB, Defcon, Black Hat, CCC, and other conferences, spanning fields from low level security research such as hardware vulnerabilities, binary instrumentation, and car hacking to high level research on AI detection methods, Enterprise security, and Identity security. Mr. Diskin was also the technical lead and co-founder of Intel’s software security organization, as well as the CTO of Cyvera and HeXponent (co-founder) before their acquisition.

Senior Security Researcher

Huajiang โ€œKevin2600โ€ Chen (Twitter: @kevin2600) is a senior security researcher. He mainly focuses on vulnerability research in wireless and Vehicle security. He is a winner of GeekPwn 2020 and also made to the Tesla hall of fame 2021. Kevin2600 has spoken at various conferences including KCON; DEFCON and CANSECWEST.

Why You Should Take This Course

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.

Who Should Attend

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.

Key Learning Objectives

[“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”]

Prerequisite Knowledge

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.

Hardware / Software Requirements

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