Skip to main content

Introduction

Every device manufacturer has included vulnerability and exploit mitigations in both hardware and software. Over time, these devices have become much more secure and do a better job protecting private information. However, these devices still allow the inclusion of legacy C/C++ code, and Objective-C is a superset of C so it inherits a lot of the memory-based vulnerabilities such as buffer overflows. Couple this with the wide array of features on the devices, and the prospect of wanting to be the single point of usage for the user, there are still plenty of exploitable vulnerabilities.

Understanding the type of vulnerabilities, the features of the devices, and a broad understanding of ARM64 assembly language can drive a researcher to discover critical vulnerabilities. In this section we will cover the techniques and features that Apple have integrated into their devices and operating environments.

Apple has an operating environment for several of their devices. While these share a common code base, there are other features included that we may not need to cover in this guide. For instance, we will not be directly looking at watchOS, tvOS, visionOS, audiOS, and iPodOS. In this guide we will focus on iOS & iPadOS - which are still very close to the same release. With the release of ARM laptops, most of the information provided here will also be relevant to macOS running on M1/M2/M3/M4 processors. However, macOS specifically will not be highlighted in this guide.

Apple provides several security guides which are actually very good. I would recommend that these be reviewed for a better understanding of each feature.

https://developer.apple.com/security/