iOS App Update Technique Puts Users At Risk (csoonline.com)
itwbennett writes: An increasing number of iOS application developers use a technique that allows them to remotely modify the code in their apps without going through Apple's normal review process, potentially opening the door to abuse and security risks for users. An implementation of this technique, which is a variation of hot patching, comes from an open-source project called JSPatch. After adding the JSPatch engine to their application, developers can configure the app to always load JavaScript code from a remote server they control. This code is then interpreted by the JSPatch engine and converted into Objective-C. 'JSPatch is a boon to iOS developers,' security researchers from FireEye said in a blog post. 'In the right hands, it can be used to quickly and effectively deploy patches and code updates. But in a non-utopian world like ours, we need to assume that bad actors will leverage this technology for unintended purposes.'
I have to think that Apple have brought this kind of thing on themselves - their ridiculous app approval system is uncertain and slow and developers are obviously going to try to find a way round it. If I find a bug in Android I fix it and release it. My iOS counterparts often have to live with the bug for weeks before they release because of the faff of the approval process.
apps using JSPatch?
I'm a consultant - I convert gibberish into cash-flow.
Next time I get whined at by middle management why iPhones are on the corporate blacklist this should do.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
The linked article is just FUD. It basically says that using JSPatch the App can circumvent the app sandbox, and without any technical exlication. Just Fud
"Total nonsense!!! The brilliant technical minds creating our computer software, firmware and hardware would NEVER (cough ... sputter .. ) put users at risk"
Maybe if I practice that over and over maybe 50 or 100 times , I'll be able to get that out with a straight face.
You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
A phone app can use an complicated technology to do something, which pc apps can do without any problems all the time.
It takes more like 2-4 hours before the update is rolled out by Google. I believe they run some tests on your update before they let it through.
I suppose the users are going to use some combination of telepathy and telekinesis to use that computer without a keyboard, mouse and monitor?
The last time I checked Apple.com, a Mac mini started at 499 USD plus tax, to which one can add either A. the display, keyboard, and mouse of one's existing non-Mac PC or B. one's existing HDMI TV and a 30 USD keyboard and mouse, bringing the total to 529 USD. This is still well shy of the $1,000 that Duckman5 quoted.
Not to mention the router and other network hardware and ISP costs they'll incur while trying to get the thing onto the internet to download a compiler and the source code.
I was assuming someone who already owns an Internet-connected PC running Windows or X11/Linux and an iPhone or iPad and is looking to replace the PC running Windows or X11/Linux with a Mac in order to receive updates to a particular Free program before App Store users receive them. How would an iPod touch or iPad user use the App Store anyway without paying "router and other network hardware and ISP costs"?
How is this different from what you can do with Cordova and Appcelerator? These frameworks allow you to create new plugins to expose any iOS APIs you want to Javascript and can load Javascript remotely.
I assume that the app cannot access any functionality that was not enabled during the App Store submission, though I'm not sure of that. Anyone any insights regarding this?
Yeah, the "converted into Objective-C" doesn't make any sense.
What it seems to actually be doing is creating an interface between Obj-C and JavaScript so that JS can call out to any Obj-C method, and can override any method as well to call into JavaScript code. Combined with converting Obj-C code into JavaScript, you can effectively patch existing (compiled) Obj-C code with downloaded JavaScript.
This probably went undetected in the review process because it just looks like a call to execute some sandboxed JavaScript, not something that has full access to the dispatch tables of Obj-C classes.
This article seems to imply that Apple's primary security model is to first verify the apps and then give them at runtime unlimited access to the system, trusting them to only do the things they promised. This seems odd, especially compared with Android, where apps are limited at runtime to whatever capabilities they were granted by the user.
This issue could be trivially solved by enforcing permissions at runtime.
Hybrid apps would have a well defined interface that the loadable code can use, with it being well isolated otherwise. This goes well beyond that, allowing the entire app to be rewritten (for example, allowing it to load arbitrary code to execute, bypassing the app store entirely).
Not only that, in order to run XCode you need to have a Mac.
That's very likely why he said: and allow iOS device users who also own a Mac
Just a guess, but let me try to be fair to Duckman5. I read the post as implying a claim that most iOS device users do not in fact already own a suitable Mac. Therefore my suggestion would apply to so few users that relying on it would not be worthwhile.
If one already owns a Mac, there is no need for any additional Mac computers. Just the one will do.
Unless the existing Mac is too old to run Xcode 7.
You do understand that this is how software use to be, right?
The company in question puts their software on their own website and "rubber stamps" their own updates.
Even the most stringent QA will miss things... users behave and use it differently quite frequently.
Yeah, I understand that is how software used to be... When a loaf of bread was fifty cents (U.S.), cars all had carbeurators, and lot of TVs still had vacuum tubes (other than the CRT).
Oh, and before everyone and his dog wasn't trying to steal your personal info off your smartphone through the internet; because smartphones didn't exist, the "internet" was still called DARPAnet, and China was still an agrarian society...
Times change. Sometimes that means old habits have to, too.
For example, Microsoft was slow to learn that the world wasn't one big, happy, computing family, and they (well, mostly their users) suffered for decades because of it.
But by the time Android came around (especially considering it is the idiot-bastard-son of Linux, which is the idiot-bastard-knockoff of Unix) there was simply NO excuse to not have a more "hardened" approach to software distribution, like iOS does.
Call it a Walled Garden or whatever, the proof is in the pudding...