De broncode van de iPhone stond even online door “grootste lek ooit”

Een van de belangrijkste onderdelen van iOS stond even op GitHub.
9.2.18
Afbeelding: Rokas Tenys/Shutterstock

Iemand heeft gisteren de broncode van een van de belangrijkste onderdelen van het besturingssyteem van de iPhone op GitHub geplaatst. Door het uitlekken van dit stukje iOS kunnen hackers en beveiligingsonderzoekers kwetsbaarheden en achterdeuren in Apple-apparaten vinden en wordt het waarschijnlijk eindelijk ook weer makkelijk om jailbreaks te ontwikkelen. Natuurlijk was Apple hier niet blij mee en is werd de code snel offline gehaald.

De code die op GitHub “iBoot” genoemd wordt, is het onderdeel van iOS dat ervoor zorgt dat alleen een vertrouwd besturingssysteem kan worden opgestart. Met andere woorden is dat dus het allereerste proces dat wordt uitgevoerd wanneer je je iPhone aanzet. Het controleert of de kernel wel door Apple gemaakt is voordat het kan opstarten. Het is eigenlijk een soort BIOS voor de iPhone, om maar in de ouderwetste computertermen te blijven praten.

De gepubliceerde code is onderdeel van iOS 9, een oudere versie van het besturingssysteem, maar delen van deze code worden waarschijnlijk nog steeds gebruikt in iOS 11.

Apple heeft de afgelopen jaren wel een aantal delen van iOS en MacOS onder een opensourcelicentie vrijgegeven, maar verder zijn ze altijd nogal terughoudend geweest met het vrijgeven van code. Het bedrijf heeft altijd zijn best gedaan om iBoot veilig te houden en de code geheim te houden; voor het doorgeven van fouten in het opstartproces kun je dan ook een beloning van maximaal 160 duizend euro krijgen – als ze gemeld worden bij beloningsprogramma van Apple.

“Dit is het grootste lek in de geschiedenis,” vertelt Jonathan Levin, de auteur van een reeks boeken over de werking van iOS en MacOS, me in een online chat. “Het is nogal een big deal.”

Levin zegt dat de code echt lijkt te zijn en hij kan het weten omdat hij delen van de code heeft nagebouwd. Een tweede beveiligingsonderzoeker die bekend is met iOS gelooft ook dat de code echt is. Het is alleen nog onbekend wie er achter de lek zit.

Een paar uur na de lek eiste Apple dat GitHub de iBoot-code verwijderde. Omdat deze broncode hun auteursrechtelijk beschermde werk is en niet open source is. Op deze manier bevestigt Apple indirect dat de code echt is. GitHub haalde het kort na dit verzoek offline.

Doordat iOS-beveiligingsonderzoekers toegang hebben tot de broncode van iBoot, kunnen ze kwetsbaarheden waarmee mensen gehackt worden of jailbreaks worden gedaan eerder vinden, vertelt Levin. Dat betekent dus dat hackers makkelijker fouten en bugs kunnen vinden om een iPhone te kraken of te ontcijferen. En misschien kan deze lek er uiteindelijk zelfs voor zorgen dat iOS op niet-Apple-apparaten kan draaien.

Jailbreakers en hackers konden eerder al het vergrendelingsscherm omzeilen en bij iemands persoonlijke gegevens komen met een bruteforce-aanval. Maar nieuwere iPhones hebben een chip, de Secure Enclave Processor, die dit een stuk moeilijker maakt.

Voor gewone gebruikers betekent dit dat tethered jailbreaks binnenkort weer beschikbaar kunnen komen, voegt Levin toe. Dit zijn jailbreaks waarbij de telefoon tijdens het opstarten aan de computer moet hangen. Er waren veel van dit soort jailbreaks omdat het nogal eenvoudig was om ze te doen. Maar het is tegenwoordig op nieuwere iOS-apparaten veel moeilijker omdat de beveiliging zoveel beter is. Zelfs voor specialisten is het hierdoor moeilijk om bugs te vinden, omdat ze eerst het apparaat moeten jailbreaken voordat ze het kunnen onderzoeken.

Deze verbeteringen in de beveiliging zorgde er eerder voor dat de jailbreak-community doodbloedde. Tegenwoordig is het ontzettend moeilijk en tijdrovend om bugs en kwetsbaarheden in iOS te vinden, en is heel veel geld te verdienen met dit soort ontdekkingen. Dat is de reden waarom de jailbreak-community enthousiast wordt van elk lek van de broncode of elke exploit die publiekelijk wordt vrijgegeven.

Veel functies die iedereen nu als vanzelfsprekend ziet komen uit de jailbreak-community. Dus misschien hoeft dit helemaal niet zo’n ramp te zijn en kan Apple eindelijk weer iets leren van de jailbreakers en iets doen aan die chaotische interface van iOS 11.

Deze broncode kwam vorig jaar voor het eerst naar boven, toen redditor “apple_internals” het op een Jailbreak-subreddit postte. Dat bericht kreeg niet veel aandacht, omdat de gebruiker nieuw was en niet genoeg Reddit-karma had en dus sneeuwde de post al snel onder. Maar door deze nieuwe lek is de code nu waarschijnlijk wijd verspreid is in de jailbreaking-gemeenschap en in iOS-hackkringen.

“iBoot is een onderdeel van iOS dat Apple niet wilde vrijgeven en nog steeds versleutelde,” zegt Levin. “En nu is kan iedereen het bekijken als broncode.”