Así funciona el jailbreak untethered para iOS 6.1 con Evasi0n

Escrito por
Apple
1

Puede parecer que el jailbreak es fruto de unos “frikis” pero en realidad es todo lo contrario, un logro importante de unos desarrolladores especialmente brillantes. Tanto que la propia revista Forbes ha entrevistado a David Wang, más conocido como Planetbeing, quien ha contado todos los secretos, al menos los confesables, del que ha sido llamado “el más elaborado jailbreak para hackear tu iPhone

El pasado lunes, como bien es conocido, se desvelaba el último método, y primero para la nueva generación de dispositivos iOS, que permitía el jailbreak untethered de todos los iPhone, iPad y iPod Touch de la empresa de Cupertino. Según Jay Freeman, nombre tras el que se esconde el nick Saurik, el hombre que gestó y gestiona Cydia, hasta 800.000 descargas de Evasi0n se llevaron a cabo en las primeras 6 horas en la que estuvo disponible. Cifra que según las últimas estimaciones alcanzaría los 1,7 millones de dispositivos iOS “jailbreakeados“.

Pero es que este nuevo software del equipo Evad3rs tiene aún más mérito. Son muchas ya las versiones del sistema operativo y cada vez Apple se lo pone más difícil a los hackers, que de momento, van por delante en este peculiar juego del gato y el ratón.  Planetbeing, el que junto a Pimskeks, principalmente, y ayudado por Pod2G y Musclenerd, ha sido artífice tanto del hallazgo de los exploits o agujeros de seguridad como de la programación, desgranando para Forbes cómo funciona internamente  Evasi0n.

Paso a paso en las entrañas de Evasi0n

En primer lugar, el desarrollador indica que el primer paso es hacer funcionar el programa “libimobiledevice“, que se encarga de sustituir el protocolo de comunicación entre iTunes y los dispositivos iOS. Gracias a esto, Evasi0n aprovecha un bug en el sistema de respaldo que le permite acceder a ajustes normalmente vedados, y en concreto, al archivo que controla la zona horaria del dispositivo.

Primera infiltración

Es en este momento en el que el programa inserta un “enlace simbólico” en este archivo. Esta acción permite colarse en un cierto “socket”, un canal restringido de comunicaciones entre aplicaciones y un programa que se llama Launch Daemon, que es el programa que permite lanzar aplicaciones que requieren privilegios de sistema. Resumiendo hasta el momento, gracias al agujero en el archivo de la zona horaria, Evasi0n se puede colar en el sistema que cada vez que se carga el dispositivo da permiso a todos los programas para ejecutarse en iOS.

Un truco de Unix

En este momento, Evasi0n tiene que salvar otra barrera que evita que aplicaciones externas se ejecuten: Code-signing. Esto evita que programas no autorizados, o “firmados”, por Apple puedan funcionar. Es este momento en el que durante el proceso de Evad3rs hay que pulsar una aplicación en pantalla. Aparentemente carece de código alguno, pero gracias un truco de Unix llamado “shebang” puede, por así decirlo, copiar el código de otra, que sí esté firmada. Para este caso, lo que hace es copiar la firma del propio Launch Daemon, con lo que gana acceso total para lanzar un comando remoto que cambia los ajustes de la memoria de sólo lectura de iOS para hacerla reescribible.

Ahora, ya se puede cambiar el código “root” del sistema y es editable. Evasi0n cambia un archivo llamado “launchd.conf” que altera la configuración de Launch Daemon, lo que permite que el modo sea “untethered” ya que hace que no se borren los cambios que ya ha hecho Evasi0n en el sistema.

Pero aún no hay jailbreak, ahora empieza lo bueno…y lo que Apple tiene que “adivinar”.

Pese a todo el camino recorrido, aún no está hecho el jailbreak hasta que las restricciones se eliminan a nivel de kernel, la parte más profunda de todo sistema operativo. Este es el secreto mejor guardado de Evad3rs, ya que han conseguido que el Apple Mobile File Integrity Daemon, el sistema que revisa que toda aplicación esté firmada para ejecutarse, siempre de como respuesta un “sí”. El propio Planetbeing indica, socarronamente, “Apple puede adivinar esta por sus propios medios”.

Dos últimos asaltos

Sólo quedan un par de escollos en el kernel. El primero es el que evita que se pueda alterar la memoria, el Address Space Layout Randomization, o ASLR. Este sistema, de forma somera, hace que cada vez que se ejecuta una aplicación lo haga utilizando un espacio aleatorio de memoria. Evasi0n utiliza un truco para localizar un hueco en la memoria que es difícil de ocultar en los chips ARM, conocido como “exception vector”. Este es donde se guarda la situación de memoria de una aplicación que ha fallado, lo que da suficiente información como para mapear el resto de memoria del dispositivo.

Punto, set y partido

Finalmente, una vez superado el ASLR, el jailbreak utiliza un bug final en el interfaz de USB de iOS que da acceso a una dirección de memoria para que, en palabras de Wang, “ingenuamente espera que el usuario pueda pasar de él sin ser detectado”. Justo esto es lo que permite a Evasi0n escribir en la parte que deseé del kernel. “Una vez que estás dentro del kernel, ya no importa ningún tipo de seguridad” afirma Planetbeing que sentencia “Entonces, nostros ganamos”.