.




7.2.13

Evasi0n: jailbreak para iOS 6


Sin duda, una de las noticias más importantes en el mundo de la tecnología para esta semana, es la salida de evasi0n, el nuevo jailbreak para los dispositivos Apple de última generación (o sea con iOS 6).
Después de largos meses de espera y expectación, se ha presentado como todo un grande, permitiendo que podamos personalizar nuestros gadgets de manera fácil.
Tanta fue la demanda del nuevo jailbreak de evad3rs, que antes de su lanzamiento la página tuvo 3 millones de visitantes únicos, con 17 millones de comentarios. Y al momento de estar diponible alcanzó los 300,000 mil usuarios activos y hasta 1TB de tráfico en un solo enlace de descarga (durante los 10 minutos aproximados de tiempo de espera, tomando en cuenta que el archivo tiene un peso de 10MB). En un estimado del administrador de Cydia, evasi0n ha sido usado en un mínimo de 800,000 dispositivos en las primeras 6 horas de su lanzamiento.

Uno de sus desarrolladores ha explicado el funcionamiento de la herramienta, tomando en cuenta que cada actualización de software dificulta su labor, haciendo el jailbreak más complicado e irónicamente más fácil para el usuario final. Así que, sí tienen un rato para leer y les interesa, evasi0n funciona de la siguiente manera:
  1. Evasi0n comienza ejecutando "libimobiledevice", un programa que substituye a iTunes como medio de comunicación con el dispositivos, utilizando el mismo protocolo. Por medio de esta herramienta, evasi0n aprovecha un bug en el sistema de copias de seguridad de iOS para lograr el acceso a ajustes que normalmente no deberíamos tener acceso, concretamente al archivo que indica la zona horaria del dispositivo.
  2. El programa de jailbreak inserta un symbolic link, en ese archivo de zona horaria, un atajo de un lugar del sistema operativo a otro. En este caso el link redirige a un socket un canal de comunicación restringido entre diferentes programas que Wang (El desarrollador que lo explica) describe como “el teléfono rojo a Moscú”. Evasi0n altera el socket que permite a los programas comunicarse con otro programa llamado Launch Daemon (o launchd), un proceso que se carga al encender nuestro dipositivo y que puede lanzar aplicaciones que requieren privilegios root, un paso más allá en el control del sistema operativo en el que los usuarios tienen concedido el acceso por defecto. Eso significa que cuando se ejecuta una copia de seguridad de un iPhone o iPad automáticamente concede acceso a todos los programas al archivo de zona horaria, y gracias al enlace simbólico, acceso también a launchd (Espero no los haya perdido hasta aquí).
  3. iOS cuenta con otra protección que evita a cualquier aplicación tener acceso a launchd, el firmware. Esta restricción requiere que todo el código que se ejecute en un dispositivo sea aprobado por una firma infalsificable de Apple. En ese punto evasi0n lanza una nueva aplicación que parece tener y no firmware, pero cuando el usuario toca el icono de la aplicación, evasi0n usa un truco de Unix llamado shebang (She moves, she moves jajaja perdón fue muy malo el chiste) que hará creer al programa que queremos ejecutar un intérprete, pero realmente estaremos metiendo nuestro programa en el script. En este caso lanza launchd y ejecuta un comando de remount que cambia los ajustes de memoria de solo lectura a escritura.
  4. Ahora que se puede escribir en el root, evasi0n cambia un archivo llamado “launchd.conf” que altera la configuración de launchd, de modo que cada vez que se ejecuta evasi0n se repiten los cambios. Eso hace que el jailbreak sea persistente y el usuario no tenga que ejectuar el jailbreak cada vez a través de USB cuando se reinicia el dispositivo.
  5. Aún después de todo esto, aun no hemos terminado con el dispositivo, se tienen que eliminar las restricciones del kernel, la capa más profunda del SO que verifica el firmware y evita que aplicaciones que no lo tengan sean ejecutadas, y lo verifica mediante un proceso llamado “Apple Mobile File Integrity Daemon (AMFID)“. Para esto evasi0n a través de launchd carga una librería de funciones en AMFID cada vez que se lanza un programa y cambia la función que comprueba el firmware por otra que ya se haya aprobado con anterioridad. Wang no explica concretamente como se salta el AMFID. “Apple puede deducir esa parte por si solos”, dice.
  6. Pero iOS aún tiene más cartas a jugar para evitar acceder al kernel, usando Adress Space Layout Randomization, o ASLR mueve el código del dispositivo por la memoria flash, en un lugar aleatorio cada vez que se arranca el sistema para evitar que alguien pueda escribir sobre alguna parte del código. En esta parte evasi0n usa un truco de asignación de memoria. Una parte del procesador ARM que maneja las excepciones o errores, reporta la posición de memoria donde se ha producido. evasi0n simula un error y comprueba donde se ha producido, para poder hacer así un mapa de la memoria y conocer la ubicación.
  7. Finalmente, una vez pasado el ASLR, el jailbreak utiliza un bug en la interfaz USB de iOS que pasa una dirección en el núcleo de la memoria a un programa y “espera que el usuario pueda pasar sin ser visto”, según Wang. Eso permite a evasi0n escribir en cualquier parte del kernel. El primer lugar donde escribe es una parte del núcleo que restringe cambios. “En cuanto entras al Kernel, no hay problemas de seguridad nunca más”, dice Wang. “Entonces ganamos”.

Y pues si, así de "fácil" es el comportamiento del nuevo jailbreak.
Lo único que pudo hacer Apple al ver esto, fue advertir al público que no lo ocupe, mencionando que su uso puede causar inestabilidad en sistema, consumo excesivo de batería, comprometer la información personal, entre otras cosas (terribles y obscuras, además de que se rompe el acuerdo de licencia de usuario final, permitiendo a Apple negarse a realizar alguna reparación al dispositivo).

Así que, ¿estarían dispuestos a sacrificar "la experiencia de usuario" por poder personalizar sus gadgets? aún no me decido que responder, pero probablemente si.

Les recuerdo que evasi0n tiene compatibilidad para:
  • iOS 6, 6.01 y 6.1
  • iPhone 3G, 4, 4S y 5
  • iPad Mini
  • iPad 2 y Nuevo iPad (Tercera y cuarta generación)
  • iPod Touch 4G y 5G
El procedimiento es sencillo y se puede hacer en menos de 5 minutos, desde cualquier plataforma Windows, Linux y Mac (OS X).

No hay comentarios: