Overzicht: ongepubliceerde exploits, toekomstige jailbreaks en unlocks

In dit artikel geven we je een overzicht van de recente ontwikkelingen met betrekking tot de diverse exploits en wat dit betekent voor toekomstige jailbreaks en unlocks.
Paul Pols - · Laatst bijgewerkt:

iPhone 4 - jailbreakDankzij limera1n en de implementatie van de bijbehorende exploit in greenpois0n zijn alle toestellen waar iOS 4.1 op draait untethered te jailbreaken. Toekomstige iOS-versies zullen op iDevices die nu op iOS 4.1 gejailbreakt zijn vermoedelijk ook met PwnageTool untethered te jailbreaken blijven. Daarnaast houdt het Chronic Dev Team SHAtter achter de hand en werkt comex aan een userland-jailbreak. Gisteren werd ook nog bekend dat Geohot over een ongepubliceerde iBoot-exploit beschikt en sinds een week weten we dat er weer hoop is op een unlock. In dit artikel geven we je een overzicht van de recente ontwikkelingen en wat dit betekent voor toekomstige jailbreaks en unlocks.

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.
Een verklarende woordenlijst van de belangrijkste termen vind je onderaan dit artikel.

iBoot-exploit van Geohot

Lezers met een goed geheugen kunnen zich misschien nog herinneren dat Geohot in maart van dit jaar een video toonde waarin een untethered jailbreak van een 3e generatie iPod touch te zien was. Met de kennis van nu weten we dat het destijds om een vroege versie van de limera1n-jailbreak kan gaan. Tóch was er nog een curieus element: limera1n is in principe tethered en maakt gebruik van een userland-exploit van comex om een untethered jailbreak te bereiken, dus hoe kon Geohot destijds al een untethered jailbreak tonen? Deze vraag werd gisteren door een Twitter-gebruiker aan comex voorgelegd (aangezien @geohot zijn Twitter-account in ieder geval voorlopig vaarwel heeft gezegd – alle andere accounts die zich als hem voordoen zijn nep).

Tweets van comex en MuscleNerd

Het blijkt dus zo te zijn dat Geohot naast de tethered bootrom-exploit die gebruikt wordt in limera1n ook nog over een exploit in iBoot beschikte, waarmee de jailbreak untethered kon worden gemaakt. In het kader van het preserveren van exploits (om deze op een later en meer opportuun moment alsnog te kunnen gebruiken) heeft Geohot dus besloten om deze niet nader beschreven iBoot-exploit voorlopig te bewaren. In plaats daarvan heeft hij de userland-exploit van comex gebruikt die bedoeld was voor de greenpois0n jailbreak. Een saillant detail daarbij is dat Geohot volgens het Chronic Dev Team de userland-exploit tegen zijn afspraak met comex in gebruikt zou hebben. Al snel na de release van limera1n besloot comex overigens om een stabielere versie van de exploit ook via limera1n beschikbaar te maken, zodat de eindgebruikers in ieder geval niet de dupe zouden worden.

Sniped

Aangezien Geohot zijn blog en Twitter voor het publiek heeft gesloten blijft het voorlopig speculeren naar de (on)mogelijkheden van de ongepubliceerde iBoot-exploit. In reactie op onze vraag hierover liet MuscleNerd van het iPhone Dev Team overigens weten dat de iBoot-exploit voldoende zou moeten zijn voor een untethered jailbreak op de iDevices en firmwareversies die er kwetsbaar voor zijn. De vraag die rest is om welke iDevices en firmwareversies het gaat, maar een antwoord op deze vraag zou al te veel bekend kunnen maken.

untethered iBoot-exploit

Bootrom-exploits: limera1n en SHAtter

SHAtter-exploitDe reden voor Geohot om limera1n nét voor greenpois0n uit te brengen, was dat hij ervan overtuigd was dat de kwetsbaarheid waar de limera1n-exploit gebruik van maakt in de bootrom van de volgende generatie iDevices gepatcht zal zijn. De bootrom en iBoot zijn namelijk op dezelfde code gebaseerd en de kwetsbaarheid is niet meer aanwezig in de laatste iBoot-versies. De bootrom is in tegenstelling tot iBoot read-only en kan daarom niet met een firmware-update overschreven worden. Het duurt daarom langer voordat een patch in de bootrom terug te vinden is. Nog te produceren en introduceren iDevices kunnen echter van een nieuwe bootrom worden voorzien, waardoor deze niet meer te jailbreaken zouden zijn.

Door limera1n eerder uit te brengen hoopte Geohot dat de SHAtter-exploit waar greenpois0n gebruik van zou maken bewaard zou blijven. Het Chronic Dev Team (niet te verwarren met het iPhone Dev Team) besloot vervolgens inderdaad om de SHAtter-exploit voorlopig te bewaren en de limera1n-exploit te implementeren. Dit betekent dat de volgende generatie iDevices mogelijk nog kwetsbaar zal zijn voor de SHAtter-exploit en met deze exploit tot in de lengte der dagen (in ieder geval tethered) gejailbreakt zullen kunnen worden. Het risico bestaat echter dat de informatie die reeds bekend was gemaakt (en inmiddels verwijderd is) over deze exploit genoeg informatie bevat voor Apple om de kwetsbaarheid voor die tijd al op te sporen.

Userland-exploits van comex

comex twitter avatarAchter de schermen is @comex ook druk bezig met het zoeken naar kwetsbaarheden in iOS en naar mogelijkheden om deze te gebruiken om een jailbreak te bewerkstelligen. Tot nu toe richt comex zich vooral op zogenaamde userland-jailbreaks, oftewel jailbreaks die vanuit de door Apple geboden gebruikersomgeving kunnen worden gelanceerd (zoals bij Spirit en Jailbreakme.com). Het is alléén bij een userland-jailbreak mogelijk om een jailbreak uit te voeren vanuit de browser. Een userland-jailbreak is echter ook makkelijker voor Apple om te patchen en zal gezien de beveiligingsrisico’s vaak een reden zijn voor het tussentijds uitbrengen van een nieuwe iOS-versie.

Voor een userland-jailbreak zullen er over het algemeen drie exploits nodig zijn om de jailbreak te bewerkstelligen. Als eerste moet er 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). Er is sprake van dat comex op dit moment over meerdere niet nader gespecificeerde exploits zou beschikken, die in ieder geval niet vóór iOS 4.2 gebruikt zullen gaan worden.

PwnageTool en toekomstige iOS-versies

In een recente tweet heeft @MuscleNerd aangegeven dat ze waarschijnlijk een methode hebben gevonden om te zorgen dat je met PwnageTool naar toekomstige iOS-versies zult kunnen updaten met behoud van een untethered jailbreak (en een eventuele unlock). Door de voor jouw toestel unieke handtekening voor iOS 4.1 op te slaan zul je altijd naar deze firmwareversie kunnen herstellen.

MuscleNerd

Vervolgens zou je dan altijd met behulp van een met PwnageTool gemaakte custom firmware naar latere firmwareversies kunnen herstellen – zonder dat er voor deze toekomstige firmwareversies nieuwe exploits hoeven te worden gevonden (voor een jailbreak op de iDevices die op de A4-chip gebaseerd zijn). Dit betekent dat jailbreaks voor deze toestellen voortaan binnen enkele dagen kunnen volgen nadat Apple een nieuwe firmwareversie beschikbaar heeft gemaakt. Op de iPhone 3G en de 2e generatie was dit al eerder mogelijk.

Unlock van de iPhone 3G, iPhone 3GS en iPhone 4

In principe staat de zoektocht naar kwetsbaarheden om de baseband (modemfirmware) van de iPhones te unlocken los van de zoektocht naar kwetsbaarheden voor jailbreaks. Om een iPhone te kunnen unlocken, heb je echter wél altijd eerst een jailbreak nodig. Vorige week kon je bij ons lezen dat de hersenchirurg en hacker Sharif Hashim opnieuw een kwetsbaarheid heeft gevonden in de laatste baseband-versies. Zowel de 05.14.02 baseband van de iPhone 3G en iPhone 3GS als de 02.10.04 baseband van de iPhone 4 worden door deze kwetsbaarheid (of kwetsbaarheden) getroffen. Een unlock van de iPhone 3G, iPhone 3GS en iPhone 4 op basis hiervan zal in ieder geval tot na de release van iOS 4.2 op zich laten wachten.

Bevestiging MuscleNerd

Verklarende woordenlijst

  • 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).
  • 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.
  • 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.
  • Pwnagetool: PwnageTool wordt gemaakt door het iPhone Dev Team en kan gebruikt worden om een custom firmware te maken waarmee iDevices te upgraden zijn naar een nieuwe firmware versie zonder daarbij de jailbreak of (mogelijkheid voor een) unlock te verliezen.
  • Tethered jailbreak: de term tethered heeft in deze context niets te maken met het delen van de internetverbinding tussen een iPhone en een desktop-computer. Een tethered jailbreak wil zeggen dat een iDevice steun nodig heeft tijdens het opstarten van een gejailbreakt bestandssysteem van een ander apparaat (om code te kunnen injecteren). In de praktijk betekent dit dat je de jailbreaktool telkens moet gebruiken om je iDevice opnieuw op te starten.
  • Untethered jailbreak: dit is de jailbreak die we het liefst zien, waarvoor geen hulp van een ander apparaat nodig is tijdens het opstarten. Voor een untethered-jailbreak is het over het algemeen vereist dat de chain of trust tijdens het eerste stadium van het opstartproces (de bootrom) gebroken wordt, tenzij deze intact blijft zoals bij een userland-jailbreak.
De reacties zijn niet bedoeld voor vragen met betrekking tot de (on)mogelijkheden van het jailbreaken of unlocken van jouw specifieke iDevice en eventuele problemen die je daarbij tegen komt. Met dergelijke reacties kun je terecht op het forum.

Reacties: 36 reacties

Reacties zijn gesloten voor dit artikel.