Apple, we have a problem. A bug report filed Monday through Open Radar – which mirrors bug reports developers submit to Apple's private bug tracking system – suggests that password prompts in iOS apps can be misused to steal passwords and other secrets.
In a blog post today describing the issue, developer Felix Krause, founder of fastlane.tools, explained that Apple's
UIAlertController API allows programmers to present alerts that closely mimic legit password prompts from Apple system services like iCloud, iTunes, or GameCenter.
The problem arises because Apple has trained iOS users to hand over their credentials for Apple services from within third-party apps, without any kind of mechanism for verifying the legitimacy of the prompt. Thanks to that indoctrination, a malicious developer can present a lookalike login box – a UIKit alert or action sheet – and expect the user to respond by supplying an Apple ID, a password, or similar.
At present, the risk is theoretical. Krause said in an email to The Register he wasn't aware of anyone using this technique in the wild, though it's difficult to be certain. Apple may detect deliberate deception of this sort through its iOS app review process, but a determined developer may also be able to conceal misuse long enough to see the app distributed.
Using visual trickery to steal data has been a problem for years. For example, a recent Gmail phishing attack relied on image files designed to look like attached PDFs.
Apple's Secure Coding Guide acknowledges that social engineering attacks like phishing can be difficult to combat. It cites domain name homograph attacks by which different character sets (eg. Latin and Cyrillic) can be intermixed to dupe users, noting that Safari has implemented defenses.
That's essentially what Krause is describing – an interface homograph attack. And there isn't really a method to visually separate Apple-authorized prompts from doppelgängers.
"No matter what kind of custom UI Apple would use, people could always somehow fake it," said Krause. "The problem is that now people are used to just entering the password whenever asked, and changing that behavior is really difficult and will take time."
Krause suggests one way to mitigate the risk would be for each alert to contain the app icon in the pop-up or action sheets, similar to how the app icon is shown on the lock screen next to notifications.
Even so, graphic designs can be faked.
"Another way, people on Twitter mentioned, would be a different keyboard for system password inputs," he said. "However I think the best way would be if the dialog tells the user to open the iCloud settings, instead of asking for the password directly."
Apple, as expected, did not respond to a request for comment. ®