image

Apple IOKit goudmijn voor hackers

donderdag 1 juli 2010, 00:06 door Redactie, 11 reacties

De Belgische beveiligingsonderzoeker Ilja van Sprundel zal vandaag tijdens Hack in the Box Amsterdam verschillende nieuwe lekken in Apple's IOKit demonstreren, waarmee volledige controle over Mac OS X systemen is te krijgen. IOKit is de voornaamste interface voor het schrijven van drivers in Mac OS X. Van Sprundel ontdekte dat de werking van IOKit grotendeels ongedocumenteerd is, zo laat hij in een interview met Security.nl weten.

Tijdens zijn "reis" door de IOKit liep hij tegen verschillende kwetsbaarheden aan, waarvan sommige zeer ernstig. Matt Oh van beveiligingsbedrijf Websense noemde het werk van de Belg al de mogelijk volgende goudmijn voor hackers.

Naïef
Niet alleen is de documentatie gebrekkig, Van Sprundel heeft ook het idee dat de code nauwelijks bekeken is. Iets dat hem erg verbaasde. "De code zit heel erg naïef in elkaar", zo merkt hij op. Vooralsnog is zijn werk alleen lokaal te gebruiken, bijvoorbeeld als een aanvaller zijn rechten wil verhogen. De IOKit werkt als een soort toegang tot systeem drivers, die vervolgens te misbruiken zijn. Daarbij maakt de Belg onderscheid tussen de drivers van Apple en derden. Die laatste zouden slechter in elkaar zitten en daardoor meer gelegenheid tot misbruik bieden.

Het feit dat de IOKit opensource is maakte het leven van de hacker een stuk eenvoudiger. "Ik ben geen held in binary analysis", zo laat hij weten. Toch wil dat niet zeggen dat opensource software eenvoudiger te hacken is. "Je moet de code ook kunnen interpreteren en over de juiste skill set beschikken."

Driver
Microsoft introduceerde met Windows Vista een verbeterd driver model. In het geval van kernel-mode drivers voor 64-bit versies, worden alleen getekende drivers geaccepteerd. Zelfs met administratorrechten is het niet mogelijk om ongetekende kernel-mode drivers te installeren. Van Sprundel is niet helemaal overtuigd van het signed driver model. "Het probleem hier is dat je een nieuwe trust-boundary introduceert, waar een administrator niet meer het recht heeft om eender welke driver te laden."

Volgens de Belg is dit model heel erg moeilijk te onderhouden, omdat de veronderstelling was (en eigenlijk nog altijd is) dat een administrator alles kan en mag doen met zijn eigen systeem, en dat drivers meestal heel erg flexibel zijn in wat ze doen en toelaten als je een administrator bent, ook diegene die getekend zijn. "Het is over het algemeen dan ook heel erg triviaal om als administrator willekeurige code in de kernel uit te voeren. Alles wat je in principe moet doen is eender welke signed driver vinden die je toelaat een driver te laden, of met een heel erg simpele security bug in die je alsnog toelaat code uit te voeren in de kernel."

De onderzoeker merkt op dat de administrator- kernel trust-boundary iets heel nieuw is, en heel veel ontwikkelaars weten er niet van of geloven er niet echt in. "Dit gezegd zijnde is het geen slecht idee, maar in praktijk werkt het niet. Of Apple dat al dan niet moet doen, daar ben ikneutraal over. Ik denk dat ze er ongeveer even ver met komen als Microsoft, en dat is mijns inzien niet erg ver."

Apple
Van Sprundel heeft inmiddels contact met Apple over het lek gehad. Contact dat volgen hem prima verliep en nog altijd verloopt. In het verleden kreeg Apple regelmatig het verwijt dat het slecht zou communiceren met beveiligingsonderzoekers, maar daar heeft de Belg geen last van.

Voor zijn onderzoek schreef hij zijn eigen framework. Uitgebreide details over hoe de lekken in elkaar zitten zal hij niet prijsgeven totdat Apple ze gepatcht heeft. Wel verschijnt er vandaag een IOKit fuzzer, waarmee iedereen zelf aan de slag kan gaan. Apple vroeg de onderzoeker om verantwoordelijk met zijn ontdekking om te gaan.

Hij begrijpt de discussie rond full-disclosure, maar de meeste leveranciers hebben inmiddels een security team en willen lekken ook wel verhelpen. In januari rapporteerde hij ook al een lek aan Apple, dat begin juni werd gepatcht. Toch vindt Van Sprundel een periode van zes maanden niet te lang. "Lekken zijn vaak eenvoudig te fixen, maar er komt veel testing bij kijken."

Windows
De bekende Mac-hacker Charlie Miller liet in het verleden meerdere keren weten dat de beveiliging van Windows 7 beter is dan die van Mac OS X. Ook Van Sprundel is het daarmee eens. Hij spreekt van een inhaalmanoeuvre waar Apple mee bezig is, maar vooralsnog loopt "Cupertino" achter op Redmond. "Dat kun je niet in één dag goed maken, dat kost de nodige investeringen en tijd." Toch zijn er wel verbeteringen in de code zichtbaar. "Maar in vergelijking met Windows lopen ze tien jaar achter denk ik, maar er komt verbetering in."

Reacties (11)
01-07-2010, 10:05 door P5ycH0
Als je fysieke toegang tot een systeem kan krijgen, moet je uberhaupt geen hoge verwachtingen hebben van beveiliging...
01-07-2010, 13:46 door Anoniem
@P5ycH0: voor deze lekken heb je niet perse fysiek toegang nodig tot het systeem. een guest account is al voldoende.
01-07-2010, 19:14 door Anoniem
Door Anoniem: @P5ycH0: voor deze lekken heb je niet perse fysiek toegang nodig tot het systeem. een guest account is al voldoende.

@Anoniem van 13:46 Zoek het woord 'fysiek' eens op in het woordenboek voordat je hier iets neerplempt!
01-07-2010, 23:17 door GerBNL
Okay, ik mag graag klagen over berichten van lui als Cluley, dan moet ik ook maar eens een pluim uitdelen als er een bericht langskomt dat me wel bevalt. Dit is dus zo'n bericht. Het is informatief, opbouwend en bevat geen modieuze bangmakerij. Kudo's dus!
02-07-2010, 14:06 door Anoniem
De ondertekende drivers zullen naast een beveiligingsmaatregel ook ingegeven zijn door bijvoorbeeld Nvidia die niet meer ongetekende drivers (die tijdelijk beter waren dan de hunne) overboord wilde krijgen. Ze hebben samen met MS een deal gemaakt.
04-07-2010, 16:18 door Anoniem
OK, maar wat als je een firewall tussen de MAC en het internet hebt staan??
05-07-2010, 10:38 door Anoniem
weggejorist
05-07-2010, 13:45 door Anoniem
Apple's IOKit is toch hetzelfde als de Unix IOKit???? teminste IOKit is opensource ook die van OSX dat betekend dat de IOKit bij bv FreeBSD, Ubuntu enz. ook hetzelfde probleem hebben.

Of zie ik het verkeerd...
05-07-2010, 13:54 door Anoniem
Ik heb de stukjes even gelezen en het gaat allemaal om 'zou kunnen', 'is mogelijk dat', 'als iemand dit gaat misbruiken dan', 'bug is moeilijk te vinden'.
Kortom, de gebruikelijke tendentieuze shit die ik al tien jaar hoor zonder dat iemand zijn Mac is overgenomen door een groep zombies uit Roemenië.
05-07-2010, 16:45 door Anoniem
Het grootste lek is altijd de gebruiker. Dus daar zou ik mij meer zorgen over maken.
Wie zelf al een root account heeft aangemaakt zit trouwens goed, want bij mijn weten kan Unix maar 1 root-account per systeem bevatten. Ik geloof niet dat je met die IO-Kit achter het wachtwoord van de Root kan komen zonder eerst als root te zijn ingelogd.
Misschien is het mogelijk om op een andere HD of partitie een systeem met een root account te installeren.
Als dat inderdaad kan, dan pas is het systeem zo lek als een mandje.
06-07-2010, 09:01 door Anoniem
Door Anoniem: Apple's IOKit is toch hetzelfde als de Unix IOKit???? teminste IOKit is opensource ook die van OSX dat betekend dat de IOKit bij bv FreeBSD, Ubuntu enz. ook hetzelfde probleem hebben.

Of zie ik het verkeerd...
Ben je misschien in de war met WebKit?
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.