Jailbreak : evasi0n exploite un bug dans la sauvegarde de l’iPhone

EvasionHeader

Pour mettre au point un système de jailbreak, les hackers joue généralement à la pêche aux failles de sécurité, afin de trouver LA portion de code non protégée par les ingénieurs de Cupertino pour exécuter du code dans le kernel.

Dans le cas d’evasi0n, il semble que la méthode utilisée soit pour fois, excessivement complexe. Forbes a pu obtenir le descriptif détaillé de l’exploit (qui devrait être corrigé dans les prochaines versions d’iOS). Nous avons tenté de simplifier l’explication, qui reste malgré tout très technique.

Tout d’abord, le programme lance libimobiledevice, un logiciel qui se substitue à iTunes. Avec la connexion en place, il est alors possible -grâce à un bug dans le système de sauvegarde- de récupérer des informations sensibles, et notamment un fichier « time zone » de l’appareil. Le programme insère ensuite un « lien symbolique » dans le fichier, ce qui permet d’avoir accès au socket qui permet la connexion avec Launch Daemon (launchd), un programme qui peut exécuter n’importe quelle app avec tous les droits (pour faire simple).

En lançant un simple backup, le hacker récupère donc un accès direct à launchd. Quelques étapes plus tard, le programme a ensuite accès au système de fichiers sans restriction, et c’est là que le jailbreak devient persistant (même en redémarrant l’iPhone, l’appareil reste craqué). evasi0n se charge ensuite de faire sauter la sécurité qui permet de vérifier la signature des apps à leur lancement. Le logiciel parvient également à contourner une autre protection baptisée ASLR, grâce à un astucieux système d’allocation mémoire. Enfin, evasi0n accède -grâce à un bug dans l’interface USB- au fameux kernel, l’étape ultime qui permet de faire sauter les dernières protections.

« Et une fois que vous êtes dans le kernel, c’est gagné ! » conclut David Wang, un brin excité.

Pour des explications détaillées (en anglais), c’est par ici !

Merci à Mac4Ever pour la news !

bouton-blog1-copie