What is an iOS App Extension, and what security boundary separates it from the containing app?
- A.A. An App Extension runs as a separate process with its own sandbox; it cannot directly access the containing app's memory, file system (outside shared containers), or Keychain (outside shared access groups), limiting the impact of a vulnerability in the extension
- B.B. App Extensions share the same process as the containing app for performance, and therefore have full access to all the containing app's data
- C.C. App Extensions run in the system daemon process (springboard), giving them elevated privileges beyond the containing app
- D.D. App Extensions can access any app's data on the device if the user grants the 'Full Access' entitlement during installation
Why A is correct
iOS App Extensions (Share Extensions, Today Widgets, Notification Service Extensions, etc.) are always launched in a separate process distinct from the containing app. This process has its own sandbox, with data sharing possible only through explicitly configured App Group containers or Keychain Access Groups. A compromised extension cannot directly read the main app's memory. The 'Full Access' setting for keyboard extensions (D) is a specific case, not a general entitlement.
Know someone studying for Mobile Security Fundamentals? Send them this one.