Hace unos días se hacían públicas las versiones beta del nuevo sistema operativo de
Apple,
iOS 11. Además de todas las nuevas características que incorpora, una de las cosas de las que más se ha hablado, es de la
aparición de un nuevo Jailbreak, antes incluso, de que saliera la versión final del
OS. Los
Jailbreak llevan años siendo un tema recurrente en todas las versiones de
iOS que se publican, pero ¿qué son técnicamente hablando? En el artículo de hoy vamos a ver los fundamentos de esta técnica, así como las consecuencias en relación con la seguridad que tiene aplicarla a nuestros dispositivos.
El
proceso de investigación para “crear un
Jailbreak” difiere muy poco del que se utilizada para encontrar una vulnerabilidad en un sistema operativo cualquiera y explotarla. En su esencia, un
Jailbreak no es más que eso, un fallo en el sistema operativo que permite la ejecución arbitraria de código con máximos privilegios. Aprovechando esta capacidad, se modificarán ciertas variables que evitan la instalación de binarios de terceros, protegen la ejecución o la escritura en determinadas páginas de memoria o limitan las capacidades de los procesos que se ejecutan.
El proceso de investigación comienza por definir los fallos de seguridad que son interesantes para poder realizar las tareas que se requieren para llevar a cabo el
Jailbreak, normalmente suelen ser fallos relacionados con corrupciones de memoria o ejecución de código en el
kernel del sistema operativo. Para descubrir este tipo de fallos, se suelen emplear diferentes técnicas, como
debuggear el
kernel. Puesto que no estamos hablando de un pc común, la aplicación de estas técnicas no es trivial, y normalmente requieren hardware específico y customizado para poder acceder a los distintos componentes del terminal.
 |
Figura 1: iOS Kernel Exploitation |
Una vez se ha identificado un fallo, normalmente en el código del
kernel, comienza el momento de la explotación. Esta fase varía mucho en función del fallo que se haya encontrado, pero el objetivo final es conseguir ejecutar código arbitrario en el sistema operativo. Puesto que nos encontramos en espacio de
kernel, el código que se ejecute allí lo hará con privilegios elevados.
Una vez conseguido todo lo anterior, se debe realizar la última parte, que es realmente donde el
Jailbreak tiene lugar. En esta fase se modificarán ciertas propiedades del sistema operativo para que se comporte de una manera distinta a la que lo hace por defecto, normalmente consiste en desactivar algunas de las medidas de seguridad de las que dispone.
En conclusión, lo que realmente estamos haciendo cuando aplicamos un
Jailbreak a nuestro terminal, es hacer uso de un
exploit, que aprovecha una vulnerabilidad para ejecutar código con permisos elevados y desactivar muchas de las medidas de protección que el dispositivo tiene incorporadas por defecto.
Aunque aplicar este tipo de técnicas permite al usuario tener mayor libertad para instalar aplicaciones de terceros, y otra serie de características, el terminal será mucho más inseguro ante amenazas externas, por lo tanto, si almacenas información importante en tu teléfono, el
Jailbreak puede no ser recomendable.