¿Por qué CheckRa1n Jailbreak no funciona en iOS 15 y volverá a funcionar alguna vez?

Share

El mundo de iOS se vio sacudido en 2019 cuando el investigador de seguridad @axi0mX lanzó checkm8 , el primer exploit de BootROM para dispositivos iOS modernos desde el lanzamiento de limera1n de geohot en 2010.

Checkm8 fue especial porque Apple no pudo parchearlo. El BootROM, que es el componente vulnerable, en este caso, no puede ser actualizado por Apple después de que el teléfono haya sido enviado porque está grabado en el Silicon para siempre. Esta fue una muy buena noticia para los entusiastas del jailbreak con iPhone X o dispositivos más antiguos.

Poco después de que se lanzara el exploit checkm8, el equipo de CheckRa1n comenzó a construir CheckRa1n jailbreak, un jailbreak basado en computadora semi-atado que técnicamente no puede ser parcheado por Apple, o eso pensamos. iOS 12, iOS 13 e iOS 14 hasta la última versión de iOS 14 (14.8) han disfrutado de jailbreak tras jailbreak porque checkra1n muchas veces ya era compatible con la nueva actualización cuando se lanzó. Fue una nueva era dorada para el jailbreak.

¿Por qué CheckRa1n no funciona en iOS 15 y volverá a funcionar alguna vez?

Puede imaginar que Apple no estaba exactamente feliz con un jailbreak sin parches para sus últimas versiones de iOS. Más aún teniendo en cuenta que iOS 15 siguió admitiendo dispositivos compatibles con checkra1n hasta que se lanzó iOS 16 Developer Beta 1.

Incluso a partir de iOS 16 Developer Beta 1, algunos dispositivos compatibles con CheckRa1n aún son compatibles y tienen iOS 16, como iPhone X, iPhone 8 y iPhone 8 Plus.

En iOS 15, Apple decidió mejorar su juego al presentar un sistema de archivos ROOT sellado. La partición del sistema realmente no tiene ninguna razón para ser de lectura/escritura, puede ser de solo lectura y el dispositivo seguirá funcionando.

De hecho, así es como funciona el almacenamiento del iPhone:

  • Partición del sistema / ROOT FS : contiene el sistema operativo en sí, con todos los binarios necesarios como demonios, aplicaciones predeterminadas, etc. Estos archivos no necesitan cambiar para funcionar, por lo que esta partición puede ser fácilmente de solo lectura.
  • Partición de usuario / Partición VAR (/dev/disk0s1s2) : aquí es donde se guarda todo lo relacionado con el usuario. Aplicaciones instaladas, configuraciones, datos de aplicaciones, Tickets de Activación, Paquetes de Operador, todo.

La partición del sistema nunca fue de lectura/escritura en iOS moderno, porque no era necesario, pero el jailbreak parcheó fácilmente las cosas y luego llamó a mount () en esa partición para que sea de lectura/escritura. El dispositivo no se quejaría y podría usar la partición normalmente.

Tradicionalmente, todos los archivos de jailbreak colocaban aquí, incluidos los principales binarios de jailbreak que permiten que los ajustes de jailbreak y Cydia funcionen, como apt , dpkg , binarios estándar de UNIX, etc. Cydia también se instaló directamente en /Applications, que es una ruta reservada para el aplicaciones predeterminadas del sistema, como Weather, FaceTime, Notes, etc. Los ajustes instalados de Cydia también se colocaban tradicionalmente en /Library/MobileSubstrate/DynamicLibraries, que también es una ruta que pertenece a la Partición del sistema.

Con iOS 15, la técnica utilizada para volver a montar la partición del sistema y hacer que se pueda escribir está muerta. Intentar volver a montar provocaría que el dispositivo entrara en pánico y se reiniciara, e incluso podría causar un bootloop.

¡Este tampoco es el único problema!

A partir de iOS 15.3, Apple eliminó SoftDFU de LLB , que CheckRa1n usó durante el proceso de arranque para poder hacer jailbreak (¿recuerdas que solías poner el dispositivo en modo DFU para hacer jailbreak?).

Según el desarrollador de CheckRa1n @siguza, para poder recuperar SoftDFU, se necesitarían inyectar y vincular aproximadamente 200 funciones en LLB, lo cual no es factible.

¿Significa esto que CheckRa1n está muerto a partir de iOS 15?

Ni siquiera cerca.

Para el problema de SoftDFU en LLB, @siguza dijo que ya han refactorizado CheckRa1n para que no lo necesite en absoluto, pero ahora requiere algunos parches adicionales. Así que este tema está más o menos tratado.

Para la partición del sistema sellada/ROOT FS, las cosas son un poco más complicadas. El equipo de CheckRa1n tiene dos opciones aquí:

  • Opción 1: Aceptar la derrota y cambiar CheckRa1n para que sea Rootless.
  • Opción 2: Encuentre una forma de eludir el ROOT FS sellado y cree un CheckRa1n normal con el acceso adecuado a la partición del sistema.

Ambas opciones tienen sus ventajas y desventajas, veamos.

Opción 1: Aceptar la derrota y cambiar CheckRa1n para que sea Rootless.

En el caso de la opción uno, simplemente pueden modificar CheckRa1n para que no requiera acceso a la partición del sistema. Esto significa colocar Cydia y los ajustes en algún lugar de la partición de usuario, que es de lectura/escritura de forma predeterminada. Tendrían que lidiar con el molesto Sandbox, pero eso es muy simple de hacer con su nivel de acceso.

Los ajustes deberían actualizarse para esperar que se vuelquen en la partición de usuario en lugar de en la partición del sistema, pero aparte de eso, funcionarían bien porque los ajustes casi nunca modifican directamente los archivos en la partición del sistema. Si lo hacen, lo están haciendo mal.

Esto requeriría algunas reescrituras extensas de CheckRa1n y sería mejor hacerlo en una compilación separada solo para iOS 15 para que iOS 14 y versiones anteriores aún disfruten de acceso completo a ROOT FS, pero definitivamente se puede hacer.

No se sabe si es o no una forma deseable de hacerlo, pero esto se hizo antes en iOS 12 ( RootlessJB de Jake James ) y funcionó bien.

Opción 2: Encuentre una forma de eludir el ROOT FS sellado y cree un CheckRa1n normal con el acceso adecuado a la partición del sistema.

Esto es más fácil dicho que hecho. Requeriría algunos parches extensos en el sistema y aunque hay ideas sobre cómo hacerlo, el equipo de CheckRa1n no trabaja en CheckRa1n a tiempo completo. Parece que esta es la opción con la que van por ahora, pero es un lío complicado.

Eludir esta mitigación de seguridad permitiría crear un CheckRa1n normal y esto tiene la ventaja de que los ajustes no necesitan actualizarse para funcionar con un nuevo método de instalación, pero esto es un punto discutible, para empezar, porque los ajustes de todos modos, Taurine y Unc0ver deben actualizarse, ya que esos jailbreak, si alguna vez se actualizan, casi seguramente también serán desarraigados. También existe la opción de destruir por completo el sello ROOT FS y sus comprobaciones desde iOS 15, pero eso haría que el jailbreak estuviera completamente atado, lo que significa que el teléfono no arrancaría en absoluto a menos que esté en modo jailbreak. Cada reinicio necesitaría la computadora. Ha habido tales jailbreaks hace muchos años, pero por lo general no se desean.

A %d blogueros les gusta esto: