Det var i förberedelse för Øredev, en konferens för utvecklare som skulle hållas i början på november 2014, som Emil Kvarnhammar på det svenska säkerhetsföretaget Truesec började intressera sig för sårbarheter i OS X. Eftersom han skulle presentera ett föredrag om säkerhet kände han att det hade varit intressant att visa upp en ny brist som drabbar OS X, då de sårbarheter som fanns beskrivna på nätet började kännas som gammal skåpmat vid den här tiden.

Emil Kvarnhammar– Jag blev förvånad över hur pass enkelt det var att hitta den här typen av brist i OS X-plattformen, säger Emil Kvarnhammar, som bara behövde lägga ett par dagar på att hitta och utnyttja sårbarheten som senare skulle komma att kallas Rootpipe.

Det som upptäcktes var en metod för att eskalera en användares rättigheter på den lokala datorn till root, det vill säga fullständig läs- och skrivaccess till systemet.

Eftersom vissa processer i OS X som körs med användarens rättigheter ibland måste göra systemändringar som kräver root-access – till exempel skapa nya konton, läsa nycklar i Keychain eller installera program – så måste det finnas en funktion som låter lägre priviligierade processer komma åt att göra förändringar som kräver högre rättigheter.

Det här har Apple löst genom att exponera ett gränssnitt till processer som körs kontinuerligt med root-rättigheter, genom vilket andra processer kan göra förändringar i systemet. Säkerhetsbristen bygger på att man inte verifierar hur root-gränssnittet anropas, och därigenom kunde Emil Kvarnhammar enkelt bygga ett exploit-skript som höjer användarens rättigheter till root.

Det som skiljer Rootpipe från många andra privilege escalation-sårbarheter, som den här typen av säkerhetsbrist kallas, är att den är stabil och fungerar varje gång man använder den.

Enligt Emil Kvarnhammar bygger liknande sårbarheter ofta på brister i operativsystemets kärna, vilket leder till att systemet kan bli instabilt eller krascha när man försöker utnyttja dem. Men Rootpipe bygger på en inbyggd funktion i OS X som används på ett felaktigt sätt, och därför är den också en mycket mer pålitlig och stabil sårbarhet, sett från en angripares perspektiv.

Rootpipe
Emil Kvarnhammars Rootpipe-exploit-skript under användning. Notera användarid (UID) som ändras från testuser till root efter att skriptet har körts.

I början på mars 2015 släppte Apple den senaste versionen av OS X, version 10.10.3, som innehöll en patch för Rootpipe. I patchen tillämpade man vad som kallas för Entitlements, en form av rättighetsstyrning i OS X och IOS som kontrollerar vilka processer som får utföra olika funktioner.

På grund av det massiva förändringsarbete som krävdes för att hantera sårbarheten sköts publiceringsdatumet för Emil Kvarnhammars avslöjande bloggpost om Rootpipe upp ett flertal gånger – Apple ville försäkra sig om att den senaste versionen av operativsystemet var säkert innan man gick ut med det publikt.

Apple valde även att inte patcha tidigare versioner av OS X, vilket Emil Kvarnhammar tror beror på den stora förändring som skulle krävas för att säkra dem. Apple har fått utstå omfattande kritik för det här beslutet – många ansåg det vara en kortsiktig och oansvarsfull strategi. Framförallt ökar det risken för de som av någon anledning inte vill eller kan uppdatera sina datorer till den senaste mjukvaran.

– Sett till de stora muskler som Apple har finansiellt så kan man tycka att de borde kunna åstadkomma nästan vad som helst, säger Emil Kvarnhammar.

En dryg vecka efter att den senaste säkra versionen av OS X släpptes rapporterade säkerhetsforskaren Patrick Wardle att han hade upptäckt en metod för att går runt Apples säkerhetsfix. De tekniska detaljerna rörande hans upptäckt valde han att hålla hemliga tills vidare, men han kunde på sin blogg Objective-See visa upp en video där han utnyttjar sin version av Rootpipe, nu döpt till Phoenix Rootpipe Reborn, på en fullpatchad OS X-maskin.

Phoenix Rootpipe Reborn
Patrick Wardles Phoenix Rootpipe Reborn visar att han enkelt kunde bygga ett nytt exploit-skript baserat på Rootpipe som gick runt Apples patch.

Emil Kvarnhammar har läst Wardles bloggpost och även undersökt saken själv.
– Det är möjligt att exekvera i stort sett exakt samma exploit-kod som förut, men i en godkänd kontext med rätt Entitlements, för att gå runt Apples säkerhetsfix.

Huruvida Kvarnhammar och Wardle har använt samma metod för att kringgå Apples säkerhetsfix vet man i nuläget inte eftersom båda har valt att dela sina upptäckter med Apple och avvaktar respons från dem innan de går ut med mer information publikt.

– Jag skulle gissa att Patrick Wardle har använt en annan metod, och det finns säkert många fler. Det vittnar ju om att det här uppenbarligen inte var rätt sätt att lösa bristen, säger Emil Kvarnhammar.

Patrick Wardle refererar i sin bloggpost till Twitter-kontot @osxreverser och bloggen Reverse.put.as som har publicerat en genomgång av sårbarheten och Apples patch. Där hävdar man att man enkelt kan kringgå säkerhetsfixen, men föreslår också en alternativ fix som inte kräver massiva förändringar skulle kunna implementeras av Apple. Huruvida Apple kommer lyssna på kritiken och implementera en fungerande lösning för även äldre versioner av OS X återstår att se.

Det finns enligt Emil Kvarnhammar ett flertal brister i designen av OS X som gör det enkelt att hitta sårbarheter av ett par olika typer.
– Vi har sett ett flertal attacker av typen local privilege escalation på sista tiden, och det släpps löpande sårbarheter av typen remote code execution, säger han.

Det är just kombinationen av dessa två sårbarhetstyper som är riktigt farlig. Genom att kunna exekvera kod på en maskin, exempelvis genom en sårbarhet i webbläsaren, kan man utnyttja en attack som Rootpipe och ge en användare utökade systemrättigheter. Enligt Emil Kvarnhammar är det först den allra senaste tiden som OS X-plattformen har börjat få uppmärksamhet av hackers och säkerhetsforskare. Han menar att det med största sannolikhet kommer dyka upp fler sårbarheter under den närmsta tiden.

Till skillnad från IOS, Apples operativsystem för mobiltelefoner, som har varit relativt förskonat från allvarliga säkerhetsbrister, så verkar inte OS X ha klarat sig lika bra.
– Jag trodde att OS X hade kommit lika långt som IOS, men det har visat sig att det inte är så, säger Kvarnhammar.

I dagsläget finns ingen patch för OS X som fixar sårbarheten till hundra procent. De metoder som Kvarnhammar och Wardle använde för att kringgå Apples initiala säkerhetsfix är ännu inte publika, vilket innebär att de ännu inte finns inkorporerade i de verktyg som används av hackare. Med andra ord bör man som användare vara skyddad mot Rootpipe om man använder den senaste versionen av OS X, under förutsättning att man inte är offer för en riktad attack utförd av en duktig angripare som själv räknat ut hur man kan kringgå säkerhetsfixen.

Fakta

  • Uppdatera om möjligt din dator till den senaste versionen av OS X.
  • Håll övrig mjukvara uppdaterad – en opatchad webbläsare eller e-postklient kan vara en väg in för en angripare.
  • Aktivera Filevault, den inbyggda diskkrypteringsfunktionen i OS X.
  • Minimera användandet av användarkonton med admin-behörighet.

2 oktober 2014: Emil Kvarnhammar upptäcker Rootpipe.
3 oktober 2014: Kvarnhammar tar första kontakten med Apples säkerhetsteam.
24 oktober 2014: Datum för full disclosure satt till 12 januari 2015. Full disclosure innebär att man publikt avslöjar detaljerna för en sårbarhet. Ofta med fungerande exploit-kod och genomgång av hur sårbarheten fungerar.
14 november 2014: Apple skjuter upp full disclosure.
12 januari 2015: Full disclosure skjuts upp igen till följd av ett möte mellan Truesec och Apple.
16 januari 2015: Rootpipe registereras av Apple, som kallar den CVE-2015-1130.
8 april 2015: OS X 10.10.3 släpps med säkerhetspatchen för Rootpipe.
9 april 2015: Full disclosure på Truesecs blogg.
18 april 2015: Patrick Wardle skriver om hur han kringgått Apples patch