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 over 15 years of professional expertise and leadership in the information security industry. Current 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 lead the security research efforts for the Talos Security Intelligence and Research Group at Cisco Systems, Inc. Previous research endeavors focused on the development of advanced fuzzing and crash analysis technologies facilitating the automation of the vulnerability triage and discovery process. Richard has delivered training and presented annually at top-tier industry conferences worldwide for over a decade and is an invited speaker and trainer at several leading events. Richard was also co-founder of the Uninformed Journal and is on the committee for the USENIX Workshop on Offensive Technologies.
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 at any scale. 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.