Por qué es tan difícil descubrir la manera de hacer el Jailbreak a un iPhone

En los últimos años todos nos hemos acostumbrado a que aparezca una nueva manera de hacer el Jailbreak, a que alguien encuentre una nueva vulnerabilidad que permita efectuar esta ‘apertura’ del sistema operativo con cada nuevo dispositivo iOS que Apple sacaba al mercado. Estamos tan acostumbrados, de hecho, que a día de hoy ya no se pregunta si hay Jailbreak para iOS 4.3.5, la versión más moderna a la hora de publicar esta entrada, si no qué programa hay que utilizar… es decir, se da por sentado que hay un Jailbreak. Es como algo natural. Pero en realidad, es mucho más complicado de lo que cualquiera podría pensar. En esta entrada, vamos a intentar explicar aunque sólo sea por encima hasta qué punto es complicado encontrar vulnerabilidades (defectos que provocan problemas de seguridad en el sistema operativo).

Lo que vemos sobre estas líneas son algunas de las herramientas utilizadas por i0n1c, uno de los hackers más conocidos de la escena del Jailbreak de iOS. Con estos componentes y cables, se fabrican cables de conexión como éste de aquí abajo. Estos cables de conexión no se venden hechos, porque obviamente, no son para el público general. El cable tiene como objetivo acceder a los sistemas de comunicación del dispositivo de maneras que no han sido pensadas para el usuario general que lo compra.

Todo esto, obviamente, no está documentado. Está creado a base de investigar cómo está hecho un iPhone o iPod Touch como el de la foto, con consejos, conocimientos propios, pruebas de la comunidad de Jailbreak… es lo que se llama ingeniería inversa, o averiguar cómo narices funciona algo sin tener ni idea de cómo está hecho. Podría sonar fácil, pero en realidad, es difícil.

Si conseguimos nuestro cable, hemos terminado la parte fácil de toda la investigación; Ya podemos acceder vía SSH con un cable USB, directamente. Ahora llega la parte difícil. Reiniciamos el dispositivo en modo ‘debug’ (modo de depuración) gracias a herramientas de software como Redsn0w.

Entrando en el sistema con una conexión SSH gracias al cable que nos hemos fabricado, tenemos que ser capaces de conseguir lo que en inglés se llama «Stack Buffer Over?ow», un problema del sistema que permite ejecutar código arbitrariamente (nuestro propio código) y gracias al cual, ‘desarmar’ al sistema operativo consiguiendo permisos de root, modificando archivos o el propio kernel (núcleo del sistema operativo) para conseguir que en cada reinicio haga lo que nosotros queramos. Por ejemplo, pod2g encontró un Stack Buffer Overflow cuando se monta una unidad HFS con un nombre de volumen demasiado largo. Puede ser cualquier otra cosa, pero este problema en el sistema operativo permite conseguir que el Jailbreak de iOS 4.2.1 a 4.2.8 sea untethered, es decir, que no haga falta el Redsn0w para reiniciarlo ‘en modo Jailbreak’. Es esto, precisamente, lo que aún no se ha encontrado (o al menos hecho público) en iOS 4.3.5. Una vez se encuentre el agujero de seguridad, hay que saber utilizarlo, modificando el código como vemos aquí abajo para ‘inyectar’ un exploit o programa que nos hace el Jailbreak.

Encontrar este tipo de problemas, por supuesto, sólo se puede hacer sabiendo muy bien cómo funciona todo, por lo que hay incontables horas de investigación, no sólo del sistema operativo, cuyo funcionamiento interno, de nuevo, no está documentado, sino también de sus componentes… por ejemplo el lector de ficheros PDF de Mobile Safari que, utilizado en otros sistemas, tenía una vulnerabilidad (una manera de conseguir un Stack Buffer Overflow) conocida pero que Apple aún no había corregido en su implementación en iOS. El Resultado fue JailbreakMe de Comex.

Toda esta ingente cantidad de conocimientos de todos estos componentes y lo que hace falta para conseguir que fallen, es algo muy valioso, por lo que muchas compañías de seguridad pagan fortunas para conseguir tener en sus filas; Apple no es una excepción… teniendo empleados así en sus filas, consiguen exactamente lo contrario… tapar agujeros de seguridad para que no sea posible hacer el Jailbreak a sus dispositivos. Si los hackers ‘fuera de Apple’ intentan abrir el sistema operativo, los hackers ‘dentro de Apple’ intentan cerrarlo. Éste, es el famoso juego del ratón y el gato del que Jobs ha hablado en alguna entrevista en referencia al tema del Jailbreak. Es un juego al que él ya jugó cuando era más joven, con su amigo y futuro co-fundador de Apple Steve Wozniak, y sus cajas azules para hacer llamadas gratuitas en líneas de teléfono convencionales.

¿Quieres aprender a hacer estas cosas? Fenomenal, aquí tenemos un tutorial de i0n1c, de 97 páginas, que es posiblemente el documento más bien hecho sobre este asunto que existe en Internet ahora mismo. Lo hemos encontrado gracias a iDownloadBlog.

Lo mejor de todo esto, es que lo hacen gratis. Simplemente aportan lo que saben, y todo el tiempo del mundo, porque les gusta el reto, La próxima vez que alguien se queje sobre la falta de un nuevo Jailbreak o que alguien se lucre a costa de genios como estos hackers, capaces de hacer cosas como ésta, que se lean esta entrada, a ver si sienten algún que otro remordimiento

Newsletter

35 COMENTARIOS

  1. @Serpimi no molestas a nadie, en absoluto. Estamos seguros de que el único aspecto que molesta realmente a Apple del tema del jailbreak, es el hurto de Apps de la App Store. El resto de cosas, probablemente incluso o admiren, porque como ves en esta entrada no es fácil de conseguir y ellos hacen todo lo que pueden para que no se pueda hacer… aún así, se consigue. Es algo admirable, sobre todo desde un punto de vista técnico.

  2. Antetodo, datos las gracias no por este tuto. Si no por todos ellos, del mas sencillo al mas complicado. Y con mi poca y corta experiencia con mi iPhone. He aprendido mucho y ayudado a otros compañera/as del trabajo. En mi modesta opinión, creo que ha Apple le interesa en parte que haya hackers haciendo jailbreack. Indirectamente les estamos dando publicidad gratuita. Ya que ha la mayoría nos gusta la piratería a nivel usuario.. Es mi modesta opinión. Si he molestado ha alguien, pido disculpas..
    Gracias y a seguir así de fieras iphoneros.. Salut

  3. Falto (CREO) decir que hay que tener un perfecto dominio del o que es UNIX.
    Y saber utilizar a la perfección al menos 5 lenguajes de programación para poder armar un Exploit estable a la hora de cargar el iOS. xD, sin mencionar que estos tipos desde los 5 años ya eran maestros en la programación, desgraciadamente jamas lograre tener ese nivel, pero tratare de que mis Hijos aprendan mucho xD.

  4. Ya se sabe que nunca llueve a gusto de todos, y siempre habrá gente que no sepa valorar el tremendo trabajo que hace la gente de Comex y otros tantos!

    Iphoneros es una gran página que reune grandes artículos de información como este. Larga vida!

  5. Excelente informacion es muy bueno hacer reconociemiento de lo que hacen muchas personas por ordinario que sea el proceso la verdad no se da cuenta de que de tras de todo hay un equipo de trabajo y mentes dedicas a dar solucion a las necesidades de otros usuarios excelente post

  6. Yo de vez en cuando recibo emails de iPhoneros ofreciéndome (pagando) liberarme el iPhone.
    ¿No érais conscientes de estos emails?
    Aunque ahora que pienso, no son correos de iPhoneros .com sino que son de iPhoneros .net

  7. «La próxima vez (sic) que alguien se lucre a costa de genios como estos hackers, capaces de hacer cosas como ésta, que se lean esta entrada, a ver si sienten algún que otro remordimiento»… ejem, este… vosotros en iPhoneros no estáis haciendo precisamente eso cuando enviáis emails ofreciendo asistencia de jailbreak a usuarios premium?

  8. Muchas gracias por el articulo , estuvo buenisimo y ahora entiendo lo dificil que es para estos heroes lo que hacen por diversion y competencia y ayudar a otros desinteresadamente la mayoria de las veces !!!!

  9. Saludos a todos quiero dejar escrito algo en nombre de todos los programadores (sean o no hackers).
    Soy actualmente programador desde los la escuela tengo pasión a la programación y aprender lenguajes de programación, al pasar de los años te das cuenta que puedes ganar mucho dinero si te esfuerzas y empiezas a cambiar la forma de pensar, se trata de una lógica inmensa que muchas veces no se enfoca a si sabemos manejar algún leguaje de programación, realmente se enfoca en la capacidad de análisis y de resolver problemas, en muchas ocasiones he tenido que utilizar traductores de código, ejemplo escribo un código en java y quiero pasarlo a vbnet.
    A veces solo vemos un simple botón pero no sabemos todo lo que ese botón tiene escrito en su programa interno, en la actualidad la programación es mi fuente de vida con la que pago todos mis gastos diario me acuesto a dormir a las 1am ya estoy acostumbrado.
    Es una profesión difícil y por eso les digo que lo que hacen estas personas realmente no es fácil, primero entender la lógica de otra persona meterte en lo que esa persona pensó como hacerlo, una vez lo descubres entonces pensar como sabes hacerlo en definitiva el gato y el ratón.
    Buen trabajo iphoneros!

DEJA UNA RESPUESTA

Teclea aquí tu comentario
Introduce aquí tu nombre