The controls in this group ensure that the app uses platform APIs and standard components in a secure manner. Additionally, the controls cover communication between apps (IPC).
The app only requests the minimum set of permissions necessary.
All inputs from external sources and the user are validated and if necessary sanitized. This includes data received via the UI, IPC mechanisms such as intents, custom URLs, and network sources.
The app does not export sensitive functionality via custom URL schemes, unless these mechanisms are properly protected.
The app does not export sensitive functionality through IPC facilities, unless these mechanisms are properly protected.
WebViews are configured to allow only the minimum set of protocol handlers required (ideally, only https is supported). Potentially dangerous handlers, such as file, tel and app-id, are disabled.
Object deserialization, if any, is implemented using safe serialization APIs.
The app protects itself against screen overlay attacks. (Android only)
Verify that the app prevents usage of custom third-party keyboards whenever sensitive data is entered.
The OWASP Mobile Security Testing Guide provides detailed instructions for verifying the requirements listed in this section.
Android: Testing Platform Interaction - https://github.com/OWASP/owasp-mstg/blob/master/Document/0x05h-Testing-Platform-Interaction.md
iOS: Testing Platform Interaction - https://github.com/OWASP/owasp-mstg/blob/master/Document/0x06h-Testing-Platform-Interaction.md
For more information, see also:
OWASP Mobile Top 10: M1 (Improper Platform Usage) - https://www.owasp.org/index.php/Mobile_Top_10_2016-M1-Improper_Platform_Usage
CWE 20 (Improper Input Validation) - https://cwe.mitre.org/data/definitions/20.html
CWE 749 (Exposed Dangerous Method or Function) - https://cwe.mitre.org/data/definitions/749.html