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.
Take a deep dive into fuzzing targeting real-world parsers, codecs, DOMs, and scripting engines used in the top web browsers and learn strategies for analyzing attack surface, writing grammars, and generating effective inputs. 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 advanced debuggers and program analysis. We will apply tools like time-travel (reverse) debugging and memory sanitizers to assist in interactively diagnosing the 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.
This class will focus on x86/x64 architecture and target file parsers, network parsers and browsers on Windows and Linux environments.
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.
Students should be prepared to tackle challenging and diverse subject matter 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.
Cloud based VMs will be provided for the class. Students will be able to download the VMs for offline use outside of class.
Richard Johnson is a computer security specialist with a focus on software vulnerability analysis. Currently the Director of Security Research for Oracle Cloud Infrastructure and owner of Fuzzing IO, a research and development company offering professional training services, Richard offers 20 years of professional expertise and leadership in the information security industry. Professional responsibilities include defining and executing on a proactive offensive security research strategy for a world leading cloud infrastructure and development team at Oracle. This work encompasses all parts of the cloud stack including hardware validation on third party components; zeroday research on hypervisors, kernels, and third-party code; and deep dives on the proprietary services offered to end users.
Prior to Oracle, Richard led the security research efforts for the Talos Security Intelligence and Research Group at Cisco Systems, Inc. Previous research focused on the development of advanced fuzzing and crash analysis technologies facilitating automation of the vulnerability triage and discovery process. Richard has delivered training and presented annually at top-tier industry conferences worldwide for over 15 years and is an invited speaker and trainer at several leading events. Richard was also co-founder of the Uninformed Journal and has sat on the committees for the USENIX Workshop on Offensive Technologies (WOOT) and the Toorcon and RECON security conferences.