Mobile Top 10 2014-M8

Back To The Mobile Top Ten Main Page

Threat Agents include entities that can pass untrusted inputs to the sensitive method calls. Examples of such entities but not limited, include users, malwares or a vulnerable app  Attack Vector Description Security Weakness Description Technical Impacts Business Impacts

Your mobile application can accept data from all kinds of sources. In most cases this will be an Inter Process Communication (IPC) mechanism. In general try and adhere to the following IPC design patterns:


 * If there is a business requirement for IPC communication, the mobile application should restrict access to a white-list of trusted applications
 * Sensitive actions which are triggered through IPC entry points should require user interaction before performing the action
 * All input received from IPC entry points must undergo stringent input validation in order to prevent input driven attacks
 * Do not pass any sensitive information through IPC mechanisms, as it may be susceptible to being read by third party applications under certain scenarios

iOS Specific Examples: Android Specific Examples
 * Do not use the deprecated handleOpenURL method to handle URL Scheme calls. This method does not contain an argument containing the BundleID of the source application.
 * Instead use the openURL:sourceApplication:annotation method and validation the sourceApplication argument against a white-list of trusted applications
 * Do not use the iOS Pasteboard for IPC communications, as it is susceptible to being set or read by all third party apps on the device.

Example Scenarios

References

An In Depth Introduction to the Android Permissions Modeland How to Secure MultiComponent Applications