SHACK

iOS 11/12 Kernel Internals For Security Researchers

Instructor

Stefan Esser

Stefan Esser is best known in the security community as the PHP security guy. Since he became a PHP core developer in 2002 he devoted a lot of time to PHP and PHP application vulnerability research. However in his early days he released lots of advisories about vulnerabilities in software like CVS, Samba, OpenBSD or Internet Explorer. In 2003 he was the first to boot Linux directly from the hard disk of an unmodified XBOX through a buffer overflow in the XBOX font loader. In 2004 he founded the Hardened-PHP Project to develop a more secure version of PHP, known as Hardened-PHP, which evolved into the Suhosin PHP Security System in 2006. Since 2007 he works as head of research and development for the German web application company SektionEins GmbH that he co-founded. In 2010 he did his own ASLR implementation for Apple\u2019s iOS and shifted his focus to the security of the iOS kernel and iPhones in general. Since then he has spoken about the topic of iOS security at various information security conferences around the globe. In 2012 he co-authored the book the iOS Hackers Handbook. In 2013 he founded Antid0te UG a company that focuses on iOS security research and consulting.

Training Dates

24 - 27 March 2019

Description

For the last few years we have taught iOS and OS X/MacOS kernel security and exploitation to a wide variety of students. Techniques and vulnerabilities discussed in our training have been instrumental in the creation of several public jailbreaks between iOS 7 and iOS 10. And also several techniques used in the very latest public jailbreaks are covered in our trainings. Our previous trainees can also be seen reporting vulnerabilities to Apple these days and a few of them even work for them these days.

This course has been under constant development for years, because Apple keeps adding new security mitigations into the kernel or changes how security relevant implementations like the kernel heap work. For 2019 we will have reworked the material again to cover the latest security changes in iOS 12 and the successor of the iPhone 9/X the iPhone Xs.

We have also improved the software tools that we use during kernel security research. This course is concentrating on introducing trainees to security features of the iOS kernel and internals like how the new iOS kernel heap works. We will enable trainees to understand up to date iOS kernel security topics and understand public exploits. However this version of the course will not teach exploitation itself.

During the training, we will make devices availiable on iOS 11 to perform the hands on tasks, because they can only be performed on devices with jailbreaks available.

Topics

Introduction

  • How to set up your Mac and Device for Vuln Research/Exploit Development
  • How to load own kernel modules into the iOS kernel
  • How to write Code for your iDevice
  • Damn Vulnerable iOS Kernel Extension

Low Level ARM/ARM64

  • Differences between ARM and ARM64
  • Exception Handling
  • Hardware Page Tables
  • Special Registers used by iOS
  • ...

iOS Kernel Source Code

  • Structure of the Kernel Source Code
  • Where to look for Vulnerabilities
  • Implementation of Mitigations
  • MAC Policy Hooks, Sandbox, Entitlements, Code Signing
  • ...

iOS Kernel Reversing

  • Structure of the Kernel Binary
  • Finding Important Structures
  • Porting Symbols
  • Closed Source Kernel Parts and How to analyze them
  • ...

iOS Kernel Debugging

  • Panic Dumps
  • Working around the lack of KDP debugging
  • Kernel Heap Debugging/Visualization (new software adjusted to iOS 11-12)

iOS Kernel Heap

  • In-Depth Explanation of How the Kernel Heap works (including all the changes in iOS 12.x)
  • Different techniques to control the kernel heap layout (including non-public ones)

iOS Kernel Exploit Mitigations

  • Discussion of all the iOS Kernel Exploit Mitigations introduced
  • Discussion of various weaknesses in these protections

iOS Kernel Vulnerabilities and their Exploitation

  • Walkthrough of previously publicly exploited vulnerabilities

Course Requirements

Student Requirements

  • Students should have prior knowledge of exploitation to understand walk throughs
  • Students must be capable of understanding/programming in C
  • Students will get an introduction into ARM64 as part of the course

Software Requirements

  • IDA Pro / Hopper / Binary Ninja
  • OS X Sierra or Mojave
  • Xcode with iOS 11/12 SDK

Hardware Requirements

  • Macbook capable of running latest OS X/MacOS
  • Students can optionally bring an iOS device jailbroken on latest iOS (iOS 11.x devices will be provided)