New in OS X: Get MacRumors Push Notifications on your Mac

Resubscribe Now Close

Developer Warns Against Using In-App Browsers on iOS Due to Potential for Keylogging

Craig Hockenberry, one of the developers behind Twitterriffic, has written a blog post warning iOS users about in-app browsers, which he says are "considered harmful." According to Hockenberry, and as outlined in a video, an in-app browser has the ability to record what's being typed, even at a secure login screen.

This means an unscrupulous developer could potentially create an app with an in-app browser to capture the usernames and passwords of users who login to websites like Twitter or Facebook with the browser. Many existing apps use in-app browsers to allow users to do things like login with an already existing social media account simply to make the login process easier, but it appears there's also potential for abuse.

A few things to note about what you're seeing:

The information at the top of the screen is generated by the app, not the web page. This information could easily be uploaded to remote server.

This is not phishing: the site shown is the actual Twitter website. This technique can be applied to any site that has a input form. All the attacker needs to know can easily be obtained by viewing the public facing HTML on the site.

The app is stealing your username and password by watching what you type on the site. There's nothing the site owner can do about this, since the web view has control over JavaScript that runs in the browser.
Hockenberry says that acquiring usernames and passwords works in both iOS 7 and iOS 8, and may also work in earlier versions of iOS, but he is quick to point out that it is not a bug, as the techniques demonstrated in the video can be used for "good as well as evil."

Hockenberry does not have a clear solution in mind for Apple, as fixing the core behavior of both WebKit and UIWebView would require the company to update every version of iOS that included Safari and WebKit, but he does suggest the company could protect users with OAuth.

As for end users, Hockenberry warns not to enter private information when using an app that's not Safari. Browsing web content is safe, but he recommends that users open a link in Safari if there are any concerns about private information. More details on the security of in-app browsers, OAuth, and Hockenberry's recommendations can be found in his original blog post.


Top Rated Comments

(View all)

23 months ago
I use 1Password, which has an in-app browser. Kind of ironic, really...
Rating: 24 Votes
23 months ago
And the good news just keeps on coming. I have a feeling Tim Cook will be drinking heavily this weekend.
Rating: 21 Votes
23 months ago
InAppGate

BrowserGate

FMLgate
Rating: 16 Votes
23 months ago
this would be a problem on any phone not just a ios device.
Rating: 10 Votes
23 months ago

I'm sure he'll be crying into the billions Apple made this week.


Rating: 10 Votes
23 months ago

I'm sure he'll be crying into the billions Apple made this week.


Financially they won't take much of a hit (although AAPL is kind of a separate thing). But what's more valuable than Apple's pile of cash? Their brand. And that is taking a pretty good beating in recent weeks, from the leaked iCloud accounts, the botched keynote video live stream, Tim Cook's awkward moment with Bono that makes them look old and uncool even to old people, the free U2 album download that no one wanted forced on them, the horrendous iPhone 6 preorder fiasco, various iPhone 6 issues, many annoying iOS 8.0 issues (including all HealthKit apps getting pulled from the App Store), to todays botched 8.0.1 "fix" that disables the primary communication stream of iPhones. I mean they will get through it, but it's been kind of rough.
Rating: 9 Votes
23 months ago

I use 1Password, which has an in-app browser. Kind of ironic, really...


Keep in mind the very core of this.

but he is quick to point out that it is not a bug, as the techniques demonstrated in the video can be used for "good as well as evil."


We do not grab any information from the web browser at this time. Though in the future we may try to implement similar features as our desktop version allowing something like AutoSave functionality. At that point we would be getting the data in the webpage so as to save the data for you.

If we were to ever use features like Craig mentions it would only be for good.

Curious about this as well. I use 1Password for password storage only. I have never used the in-app browser. Never liked that.


As mentioned above, we do not gather any data about the pages you're visiting. That would be a breach of trust.

What we could do is use this or similar technology as our desktop browser extension to help save new usernames/passwords but if we did that it would be something you could turn on or off at your discretion.

How can anyone trust Agile to store the passwords but not the in-app browser? If Agile wants your passwords, it certainly doesn't have to grab them via the browser.


:)

I like the way you think. But, given what I've mentioned above, we don't currently do any gathering of data from the built in web browser. If we did it would only be to allow AutoSave type of functionality and would be an optional feature.

All we've ever wanted to do was help people be secure and we wouldn't breach the trust that our users have for us.
Rating: 7 Votes
23 months ago

This has been the case since like forever. And you pretty much have to assume some level of ill-intent with literally every app that has an in-app browser, right? Why would they even go through the trouble versus simply launching you into Safari unless they wanted to at least track your interests, if not out-right steal your data?

The only time an in-app browser should exist is if all browsing in it is limited to the app-owner's own web content.


As a developer because we care about the end user experience and it's nicer than bouncing between apps all the time.

I don't see any issue, why would you even download an app from a developer/company you didn't trust.
Rating: 6 Votes
23 months ago

Curious about this as well. I use 1Password for password storage only. I have never used the in-app browser. Never liked that.


How can anyone trust Agile to store the passwords but not the in-app browser? If Agile wants your passwords, it certainly doesn't have to grab them via the browser.
Rating: 6 Votes
23 months ago

It's quite simple. Use a browser made by Google for sensitive data. Don't use one made by John Nobody for that kind of stuff.

Kinda sad you had to ask actually.


Kind of sad that you think sensitive data should be trusted with Google. ;)
Rating: 6 Votes

[ Read All Comments ]