Skip to content

Commit 87e7721

Browse files
authored
Update Mobile_Application_Security_Cheat_Sheet.md
1 parent bbf7918 commit 87e7721

File tree

1 file changed

+6
-28
lines changed

1 file changed

+6
-28
lines changed

cheatsheets/Mobile_Application_Security_Cheat_Sheet.md

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -268,19 +268,19 @@ enable sensitive actions even when the device is locked.
268268
- There are several scenarios in which a user can execute a Shortcut
269269
while the device is locked:
270270

271-
1. If a Shortcut is added as a widget to Today View, it can be accessed
271+
1. If a Shortcut is added as a widget to Today View, it can be accessed
272272
and executed while the device is locked.
273-
2. If a Shortcut is assigned to the Action Button (on iPhone 15 Pro and
273+
2. If a Shortcut is assigned to the Action Button (on iPhone 15 Pro and
274274
iPhone 16 Pro models), it can be executed by pressing the Action Button
275275
while the device is locked.
276-
3. If a Shortcut is assigned to the Control Center (on iOS/iPadOS 18+),
276+
3. If a Shortcut is assigned to the Control Center (on iOS/iPadOS 18+),
277277
it can be executed by pulling up the Control Center and pressing the
278278
Shortcut button while the device is locked.
279-
4. A Shortcut can be invoked via Siri while the device is locked.
280-
5. If a Shortcut is added to the user's Home Screen (on iOS/iPadOS 18+),
279+
4. A Shortcut can be invoked via Siri while the device is locked.
280+
5. If a Shortcut is added to the user's Home Screen (on iOS/iPadOS 18+),
281281
it can be directly executed by tapping the Shortcut button on the user's
282282
lock screen while the device is locked.
283-
6. If a Shortcut is set to run at a specific interval or a specific time,
283+
6. If a Shortcut is set to run at a specific interval or a specific time,
284284
it can execute even if the device is locked.
285285

286286
- Sensitive app functionalities triggered via Shortcuts should always
@@ -291,21 +291,6 @@ executing sensitive shortcuts. Implement checks with
291291
`UIApplication.shared.isProtectedDataAvailable` to restrict execution
292292
of sensitive actions when the device is locked.
293293

294-
- iOS/iPadOS Shortcuts allow for automation of app functions, which may enable sensitive actions even when the device is locked.
295-
296-
- There are several scenarios in which a user can execute a Shortcut while the device is locked:
297-
298-
1. If a Shortcut is added as a widget to Today View, it can be accessed and executed while the device is locked.
299-
2. If a Shortcut is assigned to the Action Button (on iPhone 15 Pro and iPhone 16 Pro models), it can be executed by pressing the Action Button while the device is locked.
300-
3. If a Shortcut is assigned to the Control Center (on iOS/iPadOS 18+), it can be executed by pulling up the Control Center and pressing the Shortcut button while the device is locked.
301-
4. A Shortcut can be invoked via Siri while the device is locked.
302-
5. If a Shortcut is added to the user's Home Screen (on iOS/iPadOS 18+), it can be directly executed by tapping the Shortcut button on the user's lock screen while the device is locked.
303-
6. If a Shortcut is set to run at a specific interval or a specific time, it can execute even if the device is locked.
304-
305-
- Sensitive app functionalities triggered via Shortcuts should always require device unlock before execution.
306-
307-
- **How**: Store secure tokens in Keychain that the app validates before executing sensitive shortcuts. Implement checks with `UIApplication.shared.isProtectedDataAvailable` to restrict execution of sensitive actions when the device is locked.
308-
309294
#### Siri Permissions
310295

311296
- Siri can access app functionalities through voice or [Type to Siri](
@@ -339,9 +324,6 @@ the app without proper authentication. (See Apple Developer's
339324
[Supporting universal links in your app](
340325
https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app)
341326
documentation for more information.)
342-
- Deep links offer direct access to specific app screens, which could potentially bypass authentication if not secured, allowing unauthorized users access to secure sections of the app.
343-
- An example of this on Microsoft Authenticator for iOS (which was remediated in July 2024) allowed users to bypass App Lock by simply navigating to `msauth://microsoft.aad.brokerplugin/?`, which would open Authenticator and dismiss the Face ID/Touch ID/passcode prompt.
344-
- **How**: Implement authentication checks on any view controllers or endpoints accessed via deep links. Configure and validate Universal Links using apple-app-site-association files for secure deep linking. Sanitize and validate all parameters received through deep links to prevent injection attacks. Ensure unauthorized users are redirected to the login screen, preventing direct access to sensitive parts of the app without proper authentication. (See Apple Developer's [Supporting universal links in your app](https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app) documentation for more information.)
345327

346328
#### WidgetKit Security
347329

@@ -366,10 +348,6 @@ features requiring user permissions.
366348
between app and widgets.
367349
- Use ATS (App Transport Security) to enforce strong security policies for
368350
network communication.
369-
- Configure appropriate background refresh policies to prevent sensitive data updates while the device is locked.
370-
- Implement proper privacy-related configurations in `Info.plist` for features requiring user permissions.
371-
- Use App Groups with appropriate security configurations when sharing data between app and widgets.
372-
- Use ATS (App Transport Security) to enforce strong security policies for network communication.
373351
- Do not store sensitive data in `plist` files.
374352

375353
For further reading, visit the

0 commit comments

Comments
 (0)