Biting the Apple that feeds you - macOS Kernel Fuzzing

By James Loureiro on 25 September, 2017

James Loureiro

25 September, 2017

This talk aimed to cover the research which has been undertaken following on from the Defcon presentation on MWR's platform agnostic kernel fuzzing, to automatically identify critical flaws within Apple macOS.

It was observed that there have been limited attempts to create automated kernel fuzzing solutions for macOS, hence the drive to modify our existing frameworks to support the platform and develop support utility tooling to aid vulnerability research.

This talk focused on how the researchers approached developing fuzzing automation to test the core subsystems of the XNU kernel and the insights gained. The talk also highlighted architectural differences between other supported platforms which needed to be addressed whilst performing integration into the framework.

The old adage of 'different fuzzers find different bugs' was explored, as was the effectiveness of using targeted fuzzing for specific components considered most likely to yield vulnerabilities.

An in-memory fuzzer based on a combination of static and dynamic analysis was also constructed to target these components with the aim to achieve greater code coverage, efficiency and to allow attacks on other privileged components within macOS via IPC.

Finally we discussed the issues discovered by the fuzzers and highlight future improvements which could be made to the tooling going forward to increase coverage and effectiveness.