FireEye, a mobile security company based in California, said the problem, which it calls “Masque Attack,” allows attackers to potentially gain access to vast amounts of personal information.
In a video demonstration of the attack, an iPhone was sent a URL to install a new version of the Flappy Bird game. When the link was clicked, the phone asked the user to confirm installation of the game, but upon that confirmation what was actually downloaded and installed was a compromised version of the Gmail app.
The new Gmail app, installed over the top of the real one, mimicked the real one, making it difficult for a user to detect the change. But in the background, it uploaded the entire mailbox to a server run by the attacker. A second part of the attack, also demonstrated in the video, allowed an attacker access to all SMS text messages sent to the phone.
Access to both email and SMS messages is frightening enough, but is especially problematic as both are used for password reset links and security PIN codes for access to apps and, sometimes, bank accounts.
The vulnerability exists in iOS versions 7.1.1, 7.1.2, 8.0 and 8.1.1 beta and is possible because iOS doesn’t check the validity of the app’s bundle identifier – an ID string carried by each app that is supposed to be unique. If a fake app uses the same bundle identifier as a legitimate app, iOS doesn’t question it, even if its from a different source, said FireEye.
The only apps resistant to the attack are those that are preinstalled.
FireEye said it notified Apple about the problem on 26 July.
Users can protect themselves against such attacks by only installing apps from Apple’s app store or a trusted enterprise store. Users are advised against clicking ‘install’ on pop-ups from third-party websites, no matter what reassurances are given, and clicking ‘don’t trust’ if a phone presents a pop-up saying the developer is not trusted.
To see if any apps have already been installed this way, iOS 7 users can check the provisioning profiles under Settings > General > Profiles for suspicious entries, said FireEye. Phones running the latest iOS 8 don’t show provisioning profiles, so such a check is not possible, the company said.