Malware Could Grab Data From Stock iPhones
Ardisson writes "Swiss iPhone developer Nicolas Seriot presented last night a talk on iPhone Privacy in Geneva. He showed how a malicious application could harvest personal data on a non-jailbroken iPhone (PDF) and without using private APIs. It turns out that the email accounts, the keyboard cache content and the WiFi connection logs are fully accessible. The talk puts up several recommendations. There is also a demo project on github."
I felt a great disturbance in the Smug, as if millions of fanboys suddenly cried out in terror and were suddenly silenced.
__ Someday, but not this morning, I'll finally learn to use the preview button.
This isn't any different from any other computer. Users can run software that has access to their personal files.
There's actually not much surprising here (at least for an iPhone developer) but two things were interesting:
1) It can read EXIF data from your image library (including GPS tags if any) by just reading the library directly. In theory you are not supposed to do that, and go through an API - which annoyingly gives you only raw image data with no EXIF.
2) Your "location" is reported, without the dialog that normally arises asking you if you want to reveal your location. Alarming at first, until you look and realize what it's really done is found the last location Maps knew about. Since you don't run Maps all the time this data really doesn't mean that much and is not real time as you get with real CoreLocation calls.
One other thing of note is that a great deal of this involves poking about in /var/mobile/... at preference and temporary files. Given that Apple is now scanning for strings in app review, I'm not sure if an app that included these techniques would actually make it to the app store. Even if you obsfucated the string the filesystem could simply report if anything under that directory were being accessed and what the call stack was like, though I think it unlikely they would go to these lengths.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
so apple products aren't secure. could have fooled me with the mind set around here.
If you mod me down, I will become more powerful than you can imagine....
It's great that there are those making people aware of what data might be accessed by malicious apps on any platform. The question is can this be avoided ? Restricting the data this app was able to access would also stop applications from doing some pretty useful things: accessing the address book, reading files on the filesystem, autocomplete (this is the keyboard cache mentioned), accessing pictures, etc. This is a balancing act between allowing enough freedom to produce good software and being too restrictive but safer. The alternatives here are complete sandboxing of applications or some Microsoft UAS style dialogs all over the place.
If all else fails, immortality can always be assured by spectacular error.
Isn't it more of a case that someone has found a bug, and now it's over to Apple to fix it?
Or is that just applying far to much logic to an Apple related topic...
It depends on manual app approval process and ability to ban/sue developers who abuse the system. There is probably also a kill switch to delete the app from existing devices that Apple hasn't yet had to activate for catastrophic malware. Runtime-enforced security has been tried with J2ME and nobody liked the app functionality. In fact people are not willing to live with Java's limitations on desktop either. Perhaps someday such a system will become viable with much more powerful mobile hardware and better thought out security system that allows more functional legitimate apps (for example, user will be able to give an app access to some or all e-mail as an intuitive option).
It is different from Android, actually. Android runs each app under a separate user ID, and one app can't access another app's data unless the other app explicitly allows it to. Typically this access will go through the standard Android permission system, so the user will see when they install the app that it's requesting permission to read their SMS logs or whatever.
Visual IRC: Fast. Powerful. Free.
That's interesting, it's basically using RBAC ?
If all else fails, immortality can always be assured by spectacular error.
The security the iPhone uses is called a "closed system" and an "approval process," both of which I believe we've heard about here before in great detail, and the attack they're talking about is nothing more than a trojan, essentially. There have already been a few such apps that have sprung up over the years on the iPhone (I recall hearing reports of one that harvested your contacts), but Apple has been quick to squash them so far. Whether that will continue or is even a viable strategy as things scale up remains to be seen, however.
In the wild Apple product that is as easy as MS.
Domestic spying is now "Benign Information Gathering"
No, it's a case of a binary with permissions being able to access public APIs (as intended). Most platforms currently have this problem in some form - if you run an authorised program you must trust the author to some extent, though I think Android has some better controls. So they really need a chance in policy rather than to fix a bug (though perhaps filesystem access to user prefs could be considered a bug).
Apple have sandboxed apps, so they can't access data from other apps or the main system (save user prefs) unless it's through public APIs.
What this article points out is that those public APIs provide access (because it is useful, and sometimes essential for apps tp function) to your address book, phone number etc. and also to the file system for your user, under 'var/private/mobile' which lets you see the system prefs (most of which are accessible via private apis anyway). The keyboard cache (though without passwords) is worrying though, so this is a hole that needs fixed.
What Apple could do is offer more fine grained control (as they do with location services for example) so that apps cannot access data like phone numbers without explicit permission from the user. Obviously this needs some thought, as the last thing you want is a forest of permission dialogs for each app when it starts up, but it's certainly doable without much trouble. The file system access to system preferences would probably need to be locked down too.
However this is not some new security breach or bug - it's been known about since day one, but it is something that needs to be pointed out repeatedly until Apple fixes it, because most users will not be aware of it, and it does have privacy implications.
Note that apps we run on our desktop systems (Mac, Windows, Linux) currently have few such controls and have access to a lot of data about us which we might prefer to keep private - similar sandboxing is required there too.
Whilst I'm not disagreeing with you, Android has a very good security model and enforcing separate UID's and permissions is essential towards that but... This still wont stop the less intellectually endowed users from just clicking yes and permitting malware to read their private data.
To paraphrase Ron White, there is no pill to fix stupid, you cant fix stupid and neither can Google.
In other words we'll still suffer from the stupid acts of moronic users, the good part is that more astute users will suffer from less attacks.
Calling someone a "hater" only means you can not rationally rebut their argument.
""Swiss iPhone developer Nicolas Seriot presented last night a talk on iPhone Privacy in Geneva"
No, Nicolas Seriot did not present a talk to "last night". Nor was was his talk about "iPhone Privacy in Geneva".
Try this: "Last night in Geneva, noted Swiss iPhone developer Nicolas Seriot presented a talk on iPhone Privacy".
There. Fixed that for you.
Isn't it more of a case that someone has found a bug, and now it's over to Apple to fix it?
;-)
It's not a bug, it's an undocumented feature.
The simple fact is that people trust phones with far too much information, given their inherent lack of security.
Theres an App for that?
Visit the Arcade Restoration Workshop @ http://www.arcaderestoration.com
When you consider what Jailbreak *is* (root-level exploit) I thought this was already fairly well established? Especially when you consider how quickly each successive jailbreak has been released, and how little effort some have required. Say what you will about their histories, but Apple still hasn't gotten the wake-up call regarding how paranoid you really have to be for software security - something MS had thoroughly bashed into its head over the last decade.
Keyboard cache is a good example - turns out that the keystrokes entered during bootup (such as to enter a hard drive decryption passpharse/PIN) remain in memory and can be retrieved after the system has booted. Obviously, this is a problem for things like TrueCrypt, and Microsoft's BitLocker. Except, by the time the vulnerability was revealed, Microsoft had already fixed it. That kind of twisty thinking is what Apple has yet to show any particular knack for.
There's no place I could be, since I've found Serenity...
This baby is overclocked and water cooled, running at 2.3 Ghz!
It's so fast when talking on the phone, my friends sound like Alvin and the Chipmunks.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe." Albert Einstein
You install an application on your computer. That application has access to stuff stored on your computer. This is news?
Wake us up when you have a remote exploit.
Yeah right! macfags and sexual intercourse.. not gonna happen.
Just like on Windows , your non techie user is just going to end up learning a pavlovian response to any such permissions dialog and just click OK no matter what. Yes , you can blame the user but ultimately these are supposed to be simple to use gadgets for people who have more important (to them) things in their life to worry about than application access permissions they probably don't even understand. So you can't really blame users for treating a gadget thats marketed as simple to use in a simple way.
a cyanide pill should do the trick.
waiting for ad.doubleclick.net
It's more like PPBA in reality.
Mod me down, my New Earth Global Warmingist friends!
If they can access the keychain, then it is a flaw. The keychain is stored encrypted and controlled by a daemon (which sets the flag preventing debuggers from attaching when it starts). When an app requests data from the keychain, it must be authorised by the user to access that specific key. It is not able to access any other key and the authorisation is invalidated if the binary is modified.
I am TheRaven on Soylent News
so apple products aren't secure
"Secure" is a relative term. My house is reasonably secure from burglars, but compared to my bank it's not secure at all. Compared to a lean-to in the woods my house is incredibly secure.
There is no such thing as absolute security, but Mac users don't have to worry about picking up a virues just by surfing the internet. Neither do Linux users. Apparently, iPhone users do in fact have to wory about having info stolen; at least until they fix this design flaw.
Free Martian Whores!
No, it's a case of a binary with permissions being able to access public APIs (as intended). Most platforms currently have this problem in some form - if you run an authorised program you must trust the author to some extent, though I think Android has some better controls.
Blackberries have very granular access controls. When an application tries to do something it isn't authorized to do, the user is asked for permission (or these permissions can be allowed/denied at the server level).
Everything from access the gps, access email, sms, address book, http connections, https connections can be allowed/denied separately.
So google maps on my blackberry is configured to connect to google (to download maps), but nothing else. It can't connect to the internet at large. This greatly reduces security concerns.
You have to install the malicious app for it to do anything anyway. The "Send My Data to Hackers" app would not pass approval. Case closed; no big deal.
The other day I downloaded a contact manager to my iphone, and was shocked and dismayed to realize it had access to all my contacts. Something tells me the personal finance apps I sometimes used might actually have access to some of my financial data! In other words... what a dumb presentation. Of course trusted applications running on a computer will have access to some of the data on that same computer. Otherwise, what's the point? Would saving all this data on your desktop be any safer? How can I live in a world where computers can do things?!!
Why is it that every time something like this is discovered for Microsoft, it's their fault because they should have provided a more secure operating system. When something like this happens for other companies, malware is a fact of life.
The days when you can trust all application developers to play nice are gone.
They were gone before the Internet was called the Internet.
If you install every application that shows up on your computer without paying any attention to what you're getting... you're going to be sorry. I've cleaned up enough malware from people's computers over the past twenty years to know that.
If an application has the ability to do useful things, it has the ability to do dangerous things. Sandboxing applications while still letting them be useful is no more than rough mitigation, and no alternative to common sense. The soft chewy center will always be with us on any system containing non-volatile state... even the minimal state associated with web applets has been exploited.
Security is like sex. Once you're penetrated you're fucked.
Typically this access will go through the standard Android permission system, so the user will see when they install the app that it's requesting permission to read their SMS logs or whatever.
Which to me is a missing feature in Android -- the ability to enable/disable each permission individually.
As it stands now, you're presented with a laundry list of permissions which the app requests upon installation, and you either accept it wholesale, or cancel the installation.
I think Java ME does it correctly. You can look at the app's properties and enable/disable each policy, and even set it to ask once, or everytime that feature runs.
Sure, this would break the business model of most of those advertisements-supported apps (just disable internet access if it's not required for anything else), but the user would get much better control and security in return.
And this would be why there is an app approval process, controlled by Apple and why you can't just load any app you want onto a non-jailbroken phone...
Apple's review process would see and flag apps such as this and not allow them on the app store, and thus not allow them to be placed onto non-jailbroken phones - thus rendering this entire "exploit" a bunch of bunk.
Not much of an exploit if it can't ever get onto the phones in the first place!
Amazing comment. Thanks for the explanation!
I hit my thumb with a hammer once. Make that twice, three times, four... I'll probably do it again in my lifetime.
Can you, as an astute user, claim that you've never hit OK to a dialog by mistake? Maybe you were expecting one dialog, but received another.
This post contains benzene, nitrosamines, formaldehyde and hydrogen cyanide.
It is news on smart phones which started with lessons learned from Desktop and mobile trojans themselves. Apple ignored those lessons and now paying for it.
http://wiki.forum.nokia.com/index.php/Symbian_Platform_Security_Model
http://developers.sun.com/mobility/midp/articles/permissions/
http://technet.microsoft.com/en-us/library/cc512651.aspx
In fact, security scene kind of gave up on iPhone&iPod. Let whoever buys makes his/her own mind.
J2ME which Android was based on had that concept for years. It is a J2ME concept, you know, the VM which trendy developers ignore for years while it is well beyond 700M installed base.
One day, one dirty rival of Apple or a psychopath will use one of these "theoretical" exploits which Apple keeps ignoring for years. You won't need to check news that day, your newspaper won't simply arrive since the Quark/Indesign Machine they use won't function.
I don't hope for it but Apple is really inviting it...
Trust me, it won't be that easy on Windows Mobile. Windows Mobile has a security model similar to Symbian and J2ME.
Well worth the read. Thanks for sharing this information. I got a chance to know about this.
Pariuri Sportive
Apple may not have the best approval process based on how engineers review apps for functionality, but this is NOT the only process apps go through...
Apple has a whole series of programs that crawl the source code of each app (which is how apps are submitted, not in compiled form). First of all, they look for apps that touch unapproved APIs, and summarily reject them (with thus far 1 exception noted recently, and they were told not to include that function in their next release...) next, any app that accesses contact information, account information, or sends and receives data from external sources is HIGHLY scrutinized, far more than other apps. Red flags are reised by scripts and programs analyzing code, and people read THE CODE to see what the app does, in addition to simply using it.
Further, all connectivity in and out of the devices used for app testing is monitored.
Any app entering the apple review process that attempt to copy and distribute user data will be quickly and easily spotted.
In the very early days of the app review process, many of these automated tools did not exist, and several apps that violated apple's policies did slip through. This has been resolved, in the favor of reject first, appeal and release second. Getting an app that violates user security, or steals data, through the app store at this time can basically be considdered a non-existant threat. Even if they could, you still have to convince people to download the app, and run the app, for it to do anything... which means the apps going to actually have to be a developed program with a hidden tojan. Also, any app that accesses contact information or location information has a pop-up by the iPhone OS security subsystem requiring user authorixzation, so an app that does so better have a good reason for doing it the user will believe... ...and what's it going to get? contacts? e-mail addresses? It can't get passwords, it can't monitor your website activity through safari, you have no file system for it to read files in... even IF there was a realeased threat, what it can get is negligible and worthless.
There is no contest in life for which the unprepared have the advantage.
You can actually do the same thing with every operating system out there. So suck it non Apple fan boys! There are even demo apps for android and windows mobile.
Why bother
Um you actually need access to the keyboard cache for some programs. It's a very useful thing to have. There is very little difference between what happens here and in any other OS using standard APIs I can really screw up a windows box if you will just run my program. So given that, let's see how many other OSs we can screw up using standard APIs.
Why bother
something MS had thoroughly bashed into its head over the last decade.
And yet they are still by far the most exploited and exploitable OS in the world. Simply knowing about the fact that you need to be secure does nothing to protect any users.
Why bother
You can look at the app's properties and enable/disable each policy,
Until you make the whole app useless and you might as well not install it. If you are in fact knowledgeable enough to know what all those things are anyway.
Why bother
And how paranoid do you have to be? It's silly. Any lock can be opened, there is no such thing as complete security.
Apple is still making money hand over fist and there's yet to be an iPhone malware released that actually compromised a large number of users' data.
I bet their security team is really paranoid, but have to deal with their usability and other teams to make sure that the paranoia doesn't lead to unusable software/interfaces.
Make sure everyone's vote counts: Verified Voting
No, what you say is wrong.
Firstly, Apple examine binaries not source code. Secondly, they're looking for non-malicious usage of private APIs. It's quite easy to build dynamic/obfuscated code that their simple symbol dump process can't detect. Thirdly, as the presentation notes, nothing stops an app from changing its behavior after it was reviewed based on an internet fetch, or date. Fourthly, I don't know how you can think data transfers are "monitored". It's easy to hide data such that it looks boring (like a database lookup) but is actually holding encrypted data.
If you really think overworked humans who review many apps every day can do a useful analysis of natively compiled code, I have a bridge I'd like to sell you ....
So basically you're saying Android is doing as much as it can do about what it can control, and not much about things it can't control. None of that is good news for Apple who is not doing enough of the former and pissing off a lot of people with their attempts at the latter.
I guess the app would install normally with full access, but you'd have an advanced preferences screen where you could set these options.
I don't agree with the idea of limiting important functionality because of novice users.
If OSX was on 85% was of the worlds desktops it would be by far the most exploited and exploitable OS in the world.
I don't always use unix-like operating systems; but when I do, I prefer FreeBSD.
No more than any other UNIX system is, this is true. Unix has also had the security thing pounded into them but they still make mistakes. What's your point.
Why bother
My post has links to security models of all 3 smart phone platforms. Sorry if I have broken your "but everything has these problems" Apple apology. No, they don't. They don't trust to fresh idiot interns to run commands like monkeys from a chart, they put actual OS security frameworks/sandboxes and so far, they all work in HUNDREDS OF MILLIONS OF DEVICES from Bangladesh to Sweden.
Capiche?
We've all done that, which was your point.
Android lacks a centralised place to enable/disable permissions, to be fair Android is less then 2 years old and I'm certain there would be a third party program that could do this.
However the permission system in Android works when you install an application Android checks which API's it accesses and tells the user (Phone, Internet, GPS, Text messaging and so on), if you click no it will not install the application.
Calling someone a "hater" only means you can not rationally rebut their argument.
My post has links to security models of all 3 smart phone platforms.
You obviously didn't read any of them. For one example, here's the data security model for Symbian:
This is exactly the same as on a desktop, and even MORE open than what's being complained about in this story.
You can actually do the same thing with every operating system out there. So suck it non Apple fan boys! There are even demo apps for android and windows mobile.
Actually your statement is only true for proprietary operating systems and proprietary applications on proprietary hardware.
If you use Linux or Unix and have "root" access (sudo, su or acutal root, with a strong password of course) then you have the ability to go in and figure out what piece of garbage code has opened you up to the world. Not saying everyone could do this, only that you have a shot at it.
This is also why you NEVER auto update, auto install ANYTHING, without adequate testing in a sandbox first.
To be secure takes time (to secure your OS, network and apps), testing, and monitoring. Few people do any of those three, and they pay the price for it.
Its not about FREE, its about control and access. If you do not have control, you are always dependent on others. That is crazy!
Is your Internet Throttled? Install DD-Wrt, OpenWRT or Tomato to learn the truth! Google: 1Gbps/1Gbps: 5 Communities
Yes, malware could grab data from stock iPhones in much the same way that I could be President of the United States. Wikipedia has the scoop, plus a lot of other juicy details, here: http://en.wikipedia.org/wiki/United_States_Constitution
Granted, the probability of my becoming Prez is likely lower; particularly if my opponents find out that I hang out around here.
Um you actually need access to the keyboard cache for some programs.
Of course, but I wonder if it should be a per-application cache rather than storing all sorts of strings from all apps (I think it is global). That would make more sense, and remove any possibility of malicious use.
There is very little difference between what happens here and in any other OS using standard APIs I can really screw up a windows box if you will just run my program.
Agreed, but that doesn't mean we shouldn't look for something better. I would welcome the chance to restrict desktop apps with policies I decide myself as to which data etc they can access on my computer - default to a locked down configuration and let me allow them access if I wish. The vast majority of apps don't need the address book for example.
The iPhone is not configurable by the user enough in my opinion - they could do more, which is what this guy is pointing out. Why can't you decide which apps access your phone number or address book? Why can't you limit the access of apps to the file system.
I'd certainly like to, on Windows, OS X and Mobile OS X, but at present the iPhone has some controls but not quite enough in this respect, and the desktop OS's have pitiful access control for normal users (as you point out).
I'm not sure exactly what it is you are talking about. You didn't read the summary or the article? If you run a program that you just legitimately installed it can harvest any data in your personal space. Regardless of the OS or security settings. I have no idea what it is you just said.
Why bother
If it were global it would have made a great way to cut and paste but obviously since that wasn't possible via standard APIs I doubt it was global.
Why bother
default to a locked down configuration and let me allow them access if I wish.
Wow, sounds like exactly what Vista did and everybody immediately turned off because it was annoying as hell.
Why bother
Wow, still no actual content that is relevant to the article. Argent here is correct you don't even understand what it is you are defending or why you are bashing me for defending what it is I'm defending, which I wasn't actually defending, I was merely pointing out a small fact that escaped your attention.
Why bother