Platform Agnostic Kernel Fuzzing

By James Loureiro on 15 August, 2016

James Loureiro and Georgi Geshev presented 'Platform Agnostic Kernel Fuzzing' at Def Con 24.

A number of toolsets have been around for a while which propose methods for identifying vulnerabilities in kernels, in particular POSIX kernels. However, none of these identified a method for generic fuzzing across Windows and POSIX kernels and have not been updated for some time.

This presentation outlined the research which has occurred in order to find exploitable bugs across both Windows and POSIX kernels, focusing on fuzzing system calls and library calls in the Windows environment. System calls are briefly explained, how they work and how these can be fuzzed in order to find bugs. The presentation then moved on to explaining core libraries in the Windows environment and how to fuzz these effectively.

Other issues with creating a kernel fuzzing environment were discussed, such as effective logging of calls in which the machine could BSOD and kernel panic, and how to correctly reproduce vulnerabilities that have been identified by the fuzzer. Also covered is efficient scaling of a kernel fuzzer so that a number of virtual machines are in operation that can generate a large number of crashes.

Finally, a brief summary of the vulnerabilities that have been identified is provided.

The core framework plus Windows examples can be found on Github