Developer Demonstrates iOS Phishing Attack That Uses Apple-Style Password Request

Developer Felix Krause today shared a proof of concept phishing attack that's gaining some traction as it clearly demonstrates how app developers can use Apple-style popups to gain access to an iPhone user's Apple ID and password.

As Krause explains, iPhone and iPad users are accustomed to official Apple requests for their Apple ID and password for making purchases and accessing iCloud, even when not in the App Store or iTunes app.

Using a UIAlertController that emulates the design of the system request for a password, developers can create an identical interface as a phishing tool that can fool many iOS users.
Showing a dialog that looks just like a system popup is super easy, there is no magic or secret code involved, it's literally the examples provided in the Apple docs, with a custom text.

I decided not to open source the actual popup code, however, note that it's less than 30 lines of code and every iOS engineer will be able to quickly build their own phishing code.
Though some of the system alerts would require a developer to have a user's Apple ID email address, there are also popup alerts that do not require an email and can recover a password.

The phishing method that Krause describes is not new, and Apple vets apps that are accepted to the App Store, but it's worth highlighting for iOS users who may not be aware that such a phishing attempt is possible.

As Krause says, users can protect themselves by being wary of these popup dialogues. If one pops up, press the Home button to close the app. If the popup goes away, it's tied to the app and is a phishing attack. If it remains, it's a system request from Apple.

Krause also recommends users dismiss popups and enter their credentials directly within the Settings app.

Krause has reported the issue to Apple and recommends a fix that would include Apple asking customers to enter their credentials into the Settings app rather than directly through a popup that can be easily mimicked. Alternatively, he suggests credential requests could include an app icon to indicate that an app is asking rather than the system.

As extra protection from attacks like this, Apple customers should enable two-factor authentication as it prevents attackers from being able to log into an Apple ID account without a code from a verified device.

Top Rated Comments

(View all)

30 months ago
Always enter an incorrect password first. If it doesn't complain you entered the wrong password, you know it is a phishing thingie.
Rating: 47 Votes
30 months ago
Similarly, macOS's Authorization Service dialog box is also easily spoofed.

Similar to Windows' Control-Alt-Delete, Apple's iOS and macOS should make it impossible to spoof these dialog boxes.
Rating: 28 Votes
30 months ago
This is very smart actually... I'm surprised this isn't massively used by shady apps already.
Rating: 15 Votes
30 months ago
Yup, I’d fall for this.
And I’m paranoid.

And a bit frightening.
Rating: 11 Votes
30 months ago
I just transferred to a new iPhone and it asked many times for my apple id password at seemingly random times. Sometimes I'm never sure if I mistyped the password or it was a new request for something else. Apple needs to get more organized and at least let the user know why they have to enter the password.
Rating: 10 Votes
30 months ago

Fair point about our social conditioning on these dialogs. I don't know of a good way to address this though.

I think this one is on Apple. A user gets legitimately asked for his/her password enough times and fatigue sets in, and they stop really thinking about it.

Ultimately it's a UX problem that needs to be solved so that entering one's iCloud password is 1) hard to fake and 2) doesn't happen any more often than necessary.
Rating: 10 Votes
30 months ago

Not so clever. Old trick from the 90s. The old solution that still works: Give security-related system popups some obvious indication of legitimacy that can't be spoofed, like something in the bezel.

Hard part is sandboxing apps so they can't spoof it. TouchID in iOS is one good solution.

I guess it's a bit more advanced than this....

Rating: 7 Votes
30 months ago

Always enter an incorrect password first. If it doesn't complain you entered the wrong password, you know it is a phishing thingie.

Haha, what if the phishing thing always rejects the first password and only works when you enter the same password twice? Like in Rick and Morty...
Rating: 6 Votes
30 months ago
Here's what Apple could do. The authentic message box could say this: Sign-In Required. Please press the home button, then enter your password.

If someone wanted to fake this behavior, pressing the home button would simply quit their app. When Apple is doing it, they have enough control to program this special behavior, which is impossible to fake by mundane developers. On the iPhone X, use a swipe up, which does the same as the home button.
Rating: 4 Votes
30 months ago
I had been wondering when this would be brought up, there’s really nothing that sets apart legitimate system requests on either iOS or macOS. Let’s hope that Apple finally does something about it.
Rating: 4 Votes

[ Read All Comments ]