Binnenkort zal de definitieve versie van iOS 4.3 verschijnen en zal ook de iPad 2 gelanceerd worden. In dit artikel kun je alvast meer lezen over de werking van de huidige generatie jailbreaks en de (on)mogelijkheden met betrekking tot het jailbreaken van iOS 4.3 op de iPhone, iPod touch en iPad. Daarnaast vind je in dit artikel meer informatie over wat je kunt verwachten met betrekking tot het jailbreaken van de iPad 2.
De werking van de huidige generatie jailbreaks
De meest recente (versie van de) jailbreaks limera1n, greenpois0n, redsn0w, PwnageTool en sn0wbreeze zijn in de basis allen gebaseerd op een exploit die is gevonden door George Hotz (geohot) in de bootrom van de iPhone 3GS, iPhone 4, 3e en 4e generatie iPod touch, de originele iPad en de 2e generatie Apple TV. De bootrom is de eerste code die gedraaid wordt in het opstartproces van de iDevices, is bovendien niet softwarematig te updaten en is dan ook hét mikpunt om deze toestellen te jailbreaken.
De bootrom-exploit van geohot is in principe tethered, dat wil zeggen dat je het toestel aan een ander apparaat (zoals een computer) moet verbinden om deze op te kunnen starten. Deze beperking kan weggenomen worden door de bootrom-exploit te combineren met een userland-exploit, oftewel code die gebruik maakt van een kwetsbaarheid in de kernel van iOS. Voor iOS 4.1 werd een dergelijke userland-exploit geleverd door @comex en voor iOS 4.2.1 door het Chronic Dev Team. De combinatie van een bootrom-exploit met een userland-exploit levert dus de felbegeerde untethered jailbreak op.
De toevoeging van ASLR en het jailbreaken van iOS 4.3
Zoals je eind januari al op iPhoneclub kon lezen zal Apple met firmwareversie 4.3 ook Address Space Layout Randomization (ASLR) toevoegen aan de beveiliging van iOS. De toevoeging van ASLR zal het lastiger maken om nieuwe userland-exploits succesvol te gebruiken. Op dit moment is het daarom alleen mogelijk om een tethered jailbreak uit te voeren op de Gold Master van iOS 4.3. Een nieuwe userland-exploit zal vermoedelijk op korte termijn na de release van iOS 4.3 door Stefan Esser beschikbaar worden gemaakt. Dit feit is opmerkelijk omdat deze beveiligingsexpert eind vorig jaar nog werkte aan een eigen implementatie van ASLR voor iOS in de vorm van Antid0te.
De toevoeging van ASLR aan de iDevices zal bovendien echter (onder andere) problemen opleveren met de huidige versie van MobileSubstrate, zo waarschuwt ook BigBoss. Dit raamwerk voor jailbreaksoftware is ervoor bedoeld om fouten die optreden bij het ingrijpen in het besturingssysteem in goede banen te leiden en wordt gebruikt door populaire tweaks zoals Winterboard, SBSettings, BiteSms, FolderEnhancer, et cetera. Het is daarom af te raden om een jailbreak van iOS 4.3 uit te voeren, totdat daarvoor een untethered jailbreak beschikbaar is en MobileSubstrate daarnaast een update heeft gehad.
Bestaande exploits en het jailbreaken van de iPad 2
Een veelgestelde vraag is of de iPad 2 direct te jailbreaken zal zijn, maar helaas is daar op dit moment nog niets met zekerheid over te zeggen. Zoals hierboven wordt beschreven, is de jailbreak van iOS 4.1 en 4.2.1 gebaseerd op de combinatie van een bootrom-exploit voor de verschillende iDevices en een userland-exploit voor een bepaalde firmwareversie. Hoewel op dit moment in ieder geval Stefan Esser en comex over een userland-exploit voor iOS 4.3 beschikken, is het nog onduidelijk of de huidige bootrom-exploits ook geschikt zullen zijn voor de iPad 2.
De bekendmaking van de limera1n-exploit dateert van 9 oktober 2010 en het is dus goed mogelijk dat Apple de kwetsbaarheid waar deze exploit gebruik van maakt op heeft gelost in de bootrom van de iPad 2. Ter vergelijking werd de bootrom-exploit (24kpwn) die aanwezig was in de iPhone 3G en 2e generatie iPod touch in februari 2009 gelekt en was deze nog aanwezig bij de lancering van de iPhone 3GS op 19 juni 2009, maar bleken er andere beveiligingsmaatregelen genomen te zijn om de exploit minder bruikbaar te maken. In de 3e generatie iPod touch die op 9 september 2009 werd gelanceerd en latere versies van de iPhone 3GS was de 24kpwn-exploit definitief verleden tijd.
Het Chronic Dev Team beschikt verder over de SHAtter-exploit die gebruikt maakt van een andere kwetsbaarheid in de bootrom. Tot grote frustratie van de auteurs lekte de code van de SHAtter uit binnen enkele dagen nadat de limera1n-exploit bekend werd (in de vorm van de gelijknamige jailbreaktool). In eerste instantie leek het bereik van het originele lek beperkt, maar de exploit werd door onbekenden diverse malen opnieuw op Internet geplaatst. Als gevolg van het feit dat de exploit herhaaldelijk is gelekt, is het aannemelijk dat deze bootrom-exploit inmiddels ook bij Apple bekend is. Afhankelijk van het moment dat Apple op de hoogte is geraakt van de kwetsbaarheid waar SHAtter gebruik van maakt zou de iPad 2 mogelijk nog met deze bootrom-exploit te jailbreaken kunnen zijn.
Naast het realiseren van een untethered jailbreak op basis van deze bootrom-exploits is het mogelijk om een dergelijke jailbreak te realiseren met een drietrapsraket van userland-exploits. Als eerste moet er dan met behulp van een exploit de mogelijkheid worden verkregen om arbitraire code te draaien (code execution). Aangezien belangrijke processen zoals MobileSafari in de beschermde user-omgeving draaien, zal vervolgens de volledige toegang tot de iDevice moeten worden verkregen (privilege escalation). Tot slot dient ervoor te worden gezorgd dat de jailbreak ook actief blijft nadat de iDevice opnieuw is opgestart (memory persistence). Eerder baseerde comex de jailbreaks Spirit en Jailbreakme.com op deze methode, maar het is niet bekend in hoeverre de hacker over de drie benodigde exploits beschikt.
Tot slot beschikt George Hotz nog over een ongepubliceerde iBoot-exploit. In het opstartproces volgt iBoot na de bootrom en LLB maar voor het laden van de iOS-kernel. Deze iBoot-exploit zou volgens MuscleNerd van het iPhone Dev Team op zichzelf voldoende moeten zijn om een untethered jailbreak te realiseren op niet nader genoemde iDevices en firmwareversies. Aangezien geohot een stap terug uit de jailbreakscene heeft gedaan door zijn Twitter-account en blog te sluiten, is informatie over zijn huidige projecten schaars. Sindsdien is geohot bovendien verwikkeld geraakt in een rechtzaak met Sony, die mogelijk zijn aandacht opeist.
Verklarende woordenlijsten
- Bootrom: de bootrom is de eerste code die er na het aanzetten van de iPhone of iPod touch wordt gedraaid en is vergelijkbaar met de BIOS van een computer. De bootrom is read-only en de eerste schakel in de chain of trust van een iDevice. In de DFU-modus wordt eerst de bootrom geïnitialiseerd en kan je vervolgens met een (gesigneerde) firmware herstellen. Als de iDevice in de normale modus wordt gestart, controleert de bootrom de LLB en start deze vervolgens. Voor een untethered-jailbreak is het over het algemeen nodig dat de chain of trust tijdens deze eerste schakel gebroken wordt (tenzij deze intact blijft zoals bij een userland-jailbreak).
- LLB: de Low Level Bootloader is de stap na de bootrom in het opstartproces van een iPhone en iPod touch. De LLB heeft een aan de bootrom vergelijkbare functie en overschijft de bootrom in het RAM geheugen, waardoor het reverse engineeren van de bootrom wordt bemoeilijkt. Vervolgens controleert en start de LLB de volgende stap in het opstartproces: iBoot.
- iBoot: is de laatste en meest gecompliceerde stap in het opstartproces. iBoot biedt de mogelijkheid voor recovery mode, laadt de kernel van iPhone OS en ook de device tree. iBoot controleert daarnaast de communicatie via de recovery modus en naar de kernel.
- Exploit: Het jailbreaken van een iDevice begint met het zoeken naar een kwetsbaarheid (vulnerability) in de code van Apple, die vervolgens met behulp van een exploit gebruikt kan worden. De exploit is de eerste stap in het creëeren van een zogenaamde injection vector; dat wil zeggen een manier om code of data op een bepaalde plaats te kunnen injecteren. Als dit lukt, kan er vervolgens een payload worden geschreven; de code die uiteindelijk met behulp van de injection vector geïnjecteerd wordt en de benodige aanpassingen aan het bestandssysteem uitvoert.
Taalfout gezien of andere suggestie hoe we dit artikel kunnen verbeteren? Laat het ons weten!
Reacties: 22 reacties