Chapter 2. The Basics of Compromising iOS
Compromising iOS exposes application data to many threats and attacks, both while at rest and in the runtime. While no method of compromise detection is foolproof, there are a number of reasonable measures you can take to test the integrity of the device your applications are running on before working with sensitive data. This chapter will introduce you to everything from understanding user jailbreaks to injecting your own custom code on a device. By the end of this chapter, you’ll have compiled, signed, and injected your own code into an iOS device, circumventing the device’s security mechanisms, just as your attackers would.
Why It’s Important to Learn How to Break Into a Device
Most enterprises have already warned their employees that jailbreaking devices is dangerous. Jailbreaking opens up a device and its applications to a number of additional security risks. Detecting a device in a state where it has been jailbroken by the user can help ensure that your application is not at a higher level of risk than normal.
An attacker can jailbreak a stolen device, regardless, and can compromise the device to inject malicious code when he has acquired physical access—even for a very short length of time. Similar to jailbreaking, injecting malicious code uses the same basic concept of circumventing the device’s security mechanisms to boot custom code. This approach can be used to attack applications either by copying data or by installing malicious ...