-
Notifications
You must be signed in to change notification settings - Fork 1
Assumptions and Limitations
Luke Deshotels edited this page Dec 9, 2016
·
7 revisions
Assumptions
- All the mach-services we find are active
- All processes are equally exploitable
- Sandboxes profiles are assigned based on the following features
-
- Executable is a keyboard extension
-
- Executable's filepath matches './mobile/Containers/Bundle.'
-
- Executable has com.apple.private.security.container-required entitlement key
-
- Executable has seatbelt-profiles entitlement key
-
- Executable references sandbox_init or apply_container in its binary
- Our jailbreak did not modify the access control architecture
- A process does not call a library function if it does not contain a string with the name of the function. We also assume that the presence of such a string implies that the library function will be called.
- All Apple developed executable identifiers match ‘^com.apple..*’.
- The executable we analyze will all run on the device at some point / they are not just dead code
- A process can be compromised by reading a file that has been written to by another compromised process
- The following processes can be treated as entry points for attackers
-
- Third party apps
-
- Third party app extensions
-
- Afcd
-
- Siri? ** etc.
Scope Limits
- Optional access control features
-
- Network
-
- Drivers
-
- Frameworks
-
- Access Control Lists
-
- User data
- iOS versions
-
- iOS 9.0.2
- Set up two modes (with jailbreak and with firmware filesystem)