25C3: Hacking van de iPhone
Zoals beloofd in hun YellowsNow-demo, [Pytey], [Musclenerd], en [Planetbeing] van het iPhone-Dev-team gepresenteerd bij 25C3 op hun werk die de iPhone hackt. Het team vormde oorspronkelijk in 2007 en dit is de meest gedetailleerde presentatie over hoe de iPhone tot nu toe is aangetast. Je kunt het volledige gesprek vinden dat hierboven is ingebed.
Ze openden met een paar statistieken over hoe populair hun software is. Onze favoriet verreweg is dat minstens 180 mensen met Apple Corporate IPS hun telefoon bijwerken met behulp van de software van de Dev-Team op regelmatige basis. Vanaf daar werd het gesprek in twee secties gesplitst: de s5l-applicatieprocessor en ontgrendel de S-Gold Baseband-processor.
De telefoon telt op een keten van afhankelijk van om te garanderen dat alleen de code van Apple erop wordt uitgevoerd. Alles van het gebruiksland is handtekening gecontroleerd door de kernel. De kernel wordt gecontroleerd wanneer het wordt geladen door Iboot. De iBOOT-afbeelding wordt gecontroleerd wanneer het is geladen door LLB. LLB is geladen van het noch door het laagste stuk van de code, de bootrom. Dat is waar de dingen uit elkaar vallen; De bootrom controleert niet de handtekening van de LLB. Om hiervan te profiteren, vond het team wat ze beschrijven als een klassieke stapelbuffer overflow in de DFU-modus. DFU is apparaatfirmware-upgrademodus, een staat die de telefoon kan worden gedwongen na de bootromgoederen. Hun exploiten dwingt het certificaatcontrole om ‘TRUE’ terug te keren. Ze kunnen dan alle volgende kenmerkende cheques uit het systeem van de telefoon patchen.
De basisband-processor is geverifieerd om veel meer moeilijk te zijn, simpelweg omdat het geen enkele vorm van herstelmodus heeft; Een telefoon maken was altijd een mogelijkheid. Het S-Gold is een complete systeem-on-chip en heeft een speciale ID op elke telefoon. Het evenmin heeft ook een speciale ID op elke telefoon. Deze twee ID’s worden gebruikt om de SECPACK te ondertekenen, die op zijn beurt de SIM-draagvergrendeling afdwingt. Deze speciale ID’s zijn waarom u niet alleen een officieel ontgrendelde telefoon kunt maken en de SECPACK van hem kunt kopiëren om een andere telefoon te ontgrendelen. Al het andere is identiek: de firmware, de basisband, de bootroom zijn allemaal hetzelfde. Op de tweede generatie iPhone controleert de bootrom de bootloader. De bootloader verifieert vervolgens de bootrom alvorens de firmware te controleren en vervolgens te laden. De firmware dwingt het draagvergrendeling af. Het team heeft een beslissing genomen dat het niet de moeite waard was om de keten van vertrouwen te doorbreken. De SIM-ontgrendelingscode die ze ontwikkelden, is verdeeld in twee secties. Het eerste deel is de werkelijke softwareontgrendeling. They patch the firmware while it’s running in RAM. Hun patch wijzigt de beslissingstructuur van de firmware over het feit of het vervoerslot moet worden afgedankt. De tweede helft is de exploit waarmee ze de code kunnen injecteren. The team knows that Apple can and probably will patch the exploit hole, but their RAM patching code will always work, so it’s just a matter of finding another hole to apply it through. In buy to do a permanent unlock option (like on the first generation iPhone), they’d need to examine the actual bootrom code.
The team pointed out several things Apple did that actually helped them in their efforts. safety was gradually rolled out, so they were able to look at things that would eventually be hidden. The firmware was initially unencrypted. earlier versions trusted iTunes, something they could easily modify. All userland apps originally ran as root indicating any application exploit gave root level access.
The iphone-dev team has genuinely put in a incredible amount of effort and we look forward to the yellowsn0w release on new Year’s Eve.