11 ms·
Blizzard Exempt from iOS and MacOS Security Sandbox
- chillacy 10y agoI recall a story of how the windows 95 team (or the like) was crazy dedicated to backwards compatibility, so they had a check to see if the user was running Roller Coaster Tycoon and if so, disabled virtual memory so the game would run. Though I'd like to know more details, like: * Why does blizzard need to run in the sandbox on Mac OS X? The app sandbox is opt-in (though required for App Store apps) * Can anyone set their team ID to blizzard's? * Are blizzard games attack vectors?
- Negative1 10y agoInteresting point. Never heard of any program impersonating 'Warden' for malicious purposes but it seems possible.
- ryanlol 10y agoWarden isn't particularly widespread, and impersonating it wouldn't gain you any extra privileges. Seems pretty unlikely.
- mschuster91 10y ago> * Can anyone set their team ID to blizzard's? No, at least not for apps that are distributed on the official channels and signed with an official developer cert. > * Are blizzard games attack vectors? All games are, savegame manipulation is often the first step towards jailbreaking a game console.
- ionforce 10y agoWhat if your game sucks/isn't mechanically complicated and doesn't read saves? Checkmate.
- gutigen 10y agoApparently Steam games are favourite attack vector of NSA, they love exploiting Steam games on sysadmin machines. https://www.wired.com/2016/01/nsa-hacker-chief-explains-how-to-keep-him-out-of-your-system/ https://www.wired.com/2016/01/nsa-hacker-chief-explains-how-...
- ryanlol 10y agoThe steam uri handler probably has lots of avenues of easy RCE.
- spacecowboy_lon 10y agoNo Sysadmin shoud be playing games on the systems he/she uses for admin work.
- protomyth 10y agoOh, I so wish that were true. Heck, back in the day I caught someone (thankfully not at the place I worked) running a game (some FPS) server on their exchange server box. Running Steam is well within the realm of possibilities.
- nickpsecurity 10y agoAt one building, friends and I rigged every machine to have hidden copies of Alien vs Predator and Everquest. I modified the system software to intercept keystrokes before they got to the game. One command crashed video, audio, and then whole system. I also set others to randomly crash around same time people walked in to supervise what was going on. Friends and I griped our machines were down about every day. Person in charge ordered us to keep using them and get no replacements because that served wiseasses like us. Oh, yes it did. Served us well. (evil grin) Note: Also embedded web browser into our business application in development-mode only. The GUI forms and such. Policy had IE locked down but embedded browser still worked lol. So, fast coders got the job done quickly then were bullshitting around on Internet till someone approached. One key stroke and back to boring UI testing. ;)
- AimHere 10y agoOkay, nitpick time. Your story about the game is surely wrong. Rollercoaster Tycoon was developed for Windows 95/98. Perhaps you meant it's a later version of Windows, or the game's spiritual predecessor, Theme Park, which ran in DOS.
- Maxious 10y agoThis seems to mention the virtual memory but not any specific game https://blogs.msdn.microsoft.com/oldnewthing/20160328-00/?p=93204 https://blogs.msdn.microsoft.com/oldnewthing/20160328-00/?p=...
- brynedwards 10y agoProbably SimCity, there's a bit about Microsoft adding a workaround for a bug in the game in this article http://www.joelonsoftware.com/articles/fog0000000054.html http://www.joelonsoftware.com/articles/fog0000000054.html Edit: Maybe not this since it's unrelated to virtual memory but it's along the same lines, going to some lengths to keep software compatible
- chillacy 10y agoYou're right that's the story I was thinking of. I didn't remember all the details though, I guess I knew some old version of windows, some simulation game, and something involving memory. Turns out the actual details got mixed up in my head!
- Nr7 10y agoCould've been Transport Tycoon (Deluxe) which was the previous game from the developer of RCT
- deleted 10y ago[deleted]
- mikeash 10y agoIt could be that this was done for Blizzard's iOS games, and OS X just happens to share the code.
- deleted 10y ago[deleted]
- no_news_is 10y agoI remember that backward compatibility story, but when I search for it I keep finding this post. :)
- reymus 10y agoHere's the story Joel Spolsky wrote some time ago[1]: > Windows 95? No problem. Nice new 32 bit API, but it still ran old 16 bit software perfectly. Microsoft obsessed about this, spending a big chunk of change testing every old program they could find with Windows 95. Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here's the amazing part: On beta versions of Windows 95, SimCity wasn't working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn't free memory right away. That's the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95. [1] http://www.joelonsoftware.com/articles/fog0000000054.html http://www.joelonsoftware.com/articles/fog0000000054.html
- pcwalton 10y agoThere are a lot of checks for specific apps in the Cocoa framework. It's pretty much what the undocumented CFExecutableLinkedOnOrAfter() is for (sometimes called in conjunction with a check for a specific bundle name).
- afandian 10y agoDo you have examples?
- Kallikrates 10y agoone example is Popover controls on iPhone. http://marksands.github.io/2014/05/27/how-apple-cheats.html http://marksands.github.io/2014/05/27/how-apple-cheats.html
- deleted 10y ago[deleted]
- Aissen 10y agoTweet has been deleted: https://twitter.com/i0n1c/status/738258436161449984 https://twitter.com/i0n1c/status/738258436161449984 I deleted the tweet with the picture of the sandbox because people start hyping it up without linking the clarification. And the "clarification" tweet: https://twitter.com/i0n1c/status/738084828202053633 https://twitter.com/i0n1c/status/738084828202053633 For those late to the party: the sandbox bypass exception for Blizzard only affects the access() family of syscalls - probably harmless Edit: Original tweet screenshot http://imgur.com/c8RnYjo http://imgur.com/c8RnYjo (it's still in Google cache… for now).
- personjerry 10y agoI Google'd and here is one result, showing at least one theoretical security vulnerability of access(): http://stackoverflow.com/a/14333217/3650441 http://stackoverflow.com/a/14333217/3650441 If an attacker knows what files Blizzard is calling access() on, they could likely use this exploit and execute arbitrary code.
- valleyer 10y agoThe existence of the inherent time-of-check versus time-of-use hole with access is a several steps away from "execute arbitrary code". The example given presumes you are using access on crontab (and that the app can write to it).
- yoz-y 10y agoCould they though? The way I understand the answer is that the security hole happens if a privileged user which manipulates files for an unprivileged user calls access() and then open(). In this case Blizzard's application is an unprivileged user, thus even if you manage to insert yourself between the calls, you will only be able to make Blizzards application execute code. The application still runs in a sandbox so you will not get that far.
- ryanlol 10y agoAnd for an attacker to exploit this (which in all likelihood is impossible anyways), they'd need to already be executing arbitrary code.
- unlinker 10y agoThis guy published an app that did jailbreak detection and some other stuff on the App Store, it was taken down, and has been rambling since then in a very very childish way about stuff like this: https://twitter.com/i0n1c/status/738286205708738560 https://twitter.com/i0n1c/status/738286205708738560 Truth is--he knew what was going to happen, so this looks just like another excuse to rant.
- Longhanks 10y agoHe is known in the jailbreak scene as someone who cannot stay serious - he's always involved in some kind of drama. If I recall correctly, the pangu dev team attended some of his sessions about iOS hacking and used this knowledge to create a publicly available jailbreak tool. He then started to rant about how they "stole" his technologies on twitter (see for example https://twitter.com/i0n1c/status/481020166483238912 https://twitter.com/i0n1c/status/481020166483238912). More about his childish public behavior related to the jailbreak scene can be read here: http://www.iclarified.com/41983/pangu-jailbreak-stops-using-i0n1c-bug-burns-another-exploit http://www.iclarified.com/41983/pangu-jailbreak-stops-using-...
- unlinker 10y agoYeah, I remember this. He's always taunting people about having jailbreaks and not sharing them.
- atomic_lock 10y agoThe problem at the time was that they had used his bug that he gave away only for training purposes to the people attending his class. After the first release, pangu replaced his bug by one of theirs (and both bugs were fixed by apple in a subsequent iOS release.) He probably had to spend some time finding a new bug to use in his classes so it's understandable to be pissed.
- Jtsummers 10y agoHow do you own a bug? Was the bug something in iOS? Wouldn't that be Apple's bug? A sibling post said they took his code. That's a fair complaint, was it clear when they saw it that it was not code that they could reuse?
- BakaRakuda 10y agoNobody saw this yet? https://mobile.twitter.com/gruber/status/738149554978070529 https://mobile.twitter.com/gruber/status/738149554978070529 Turns out a complete non-story.
- coldtea 10y agoNon-story? This just confirms that Blizzard indeed got an exception. The reason doesn't make it a "non-story" in any way. Nobody sane expected the reason to be anything besides something like that (e.g. some evil root access plan) -- and it's still a story.
- BakaRakuda 10y agoYes non-story, read through tweets and links in the link I posted. The "story" here was that Apple was being irresponsible by giving Blizzard an exception to the sandbox. In actuality it's little more than a shim to make a buggy Blizzard updater not crash by thinking it could do something it couldn't.
- neallindsay 10y agoSomeone should change the title on the HN story - it's just straight-up false.
- bad_user 10y agoYeah, updates from John Gruber's birdies are so reassuring.
- sprayk 10y agoHearthstone is used for competitive play on iOS devices regularly. Would this exemption let them employ some anti-cheating functionality?
- coldcode 10y agoWhen I worked at Apple before Steve came back there were tons of checks in MacOS for particular versions of apps, especially for Microsoft Word and Excel, working around their buggy behavior (or their workarounds for Apple's buggy behavior, a vicious cycle). While I have no idea if this person knows anything it would not be surprising.
- frou_dh 10y agoIn Safari under Develop in the menu bar there's an item "Disable Site-specific Hacks"
- coldpie 10y agoYeah. We port Windows applications to Mac at work. A couple years ago when Apple switched on a more stringent code signing requirement, we found many of our ports worked without the updated code signing, while some others would warn about an invalid signature. It was clear there was some internal whitelist for old, known signatures which had picked up many, but not all, of our ports. User friendly, I guess, but pretty ugly.
- rarepostinlurkr 10y agoWhat's the alternative, users wait for some porting house to finally get around to releasing an update to be compatible? Oh, you don't have it in your contract to do that work, and the parent company isn't keen to pay you to do it, sorry users. Maybe your update is now a paid update, so people can either pony up, or not upgrade, or abandon your software. Hello CS6. Was your latest update $10k? *major enterprise developer thanks you for the multi million dollar windfall your OS update gave them by forcing all their deploys to pay for a compatibility update, caused by "you". Being a major platform developer is full of hard decisions balancing user experience and security, performance and future looking direction. It's not a problem most developers have to concern themselves with in your average app.
- mikeash 10y agoHorribly misleading title here. Blizzard is exempt from one tiny piece of the sandbox, namely the sandboxing around access(). Which is nearly irrelevant.
- protomyth 10y agoWhy does Blizzard need an exception while the rest of us have to deal with it as is? Exceptions to rules mean the rules are broken.
- st3v3r 10y agoThey're Blizzard. They're bigger than you. It's like all those exceptions that Microsoft made in Windows for different legacy software programs.
- mikeash 10y agoI have no idea, why are you asking me?
- protomyth 10y agoFiguring you know the what so maybe you know the why. You often know more than most. [edit: why the heck are people voting mikeash down, legitimate question after all in tone and spirit]
- mikeash 10y agoI'd speculate that access() was inadvertently left open before, Apple subsequently sandboxed it, this broke Blizzard, and Apple put in an exemption for them to avoid breaking millions of people's games. But that's a complete guess.
- MBCook 10y agoAccording to tips John Gruber got Blizzard had a bug in one of their updaters that would crash due to the sandbox. Apple put in a check to allow the call the updater was making to succeed, but didn't actually grant any access that the updater didn't have before. Apple shipped an update to the sandbox and included a small, harmless fix to avoid issues in popular 3rd party software. Microsoft does this all the time. Also according to those same birdies, the Blizzard fixed the bug a while ago so the 'exemption' may be removed soon as it's no longer necessary.