Entendiendo las fugas de cárcel

En lo que respecta a los iPhones, el término “jailbreak” (acuñado con la primera versión de iOS, incluso antes de que se llamara “iOS”) combina la tecnología y el concepto de liberarse de las restricciones:

  1. Celda: Originalmente, se refiere a una prisión o confinamiento metafórico. En el contexto de los iPhones, representa las restricciones y limitaciones impuestas por Apple a las aplicaciones de terceros que se ejecutan en su sistema operativo iOS. Apple mantiene un control estricto sobre lo que los usuarios pueden y no pueden hacer con sus dispositivos mediante las políticas de la App Store y las medidas de seguridad del sistema. Estas limitaciones incluyen restricciones para instalar aplicaciones de fuentes distintas a la App Store, personalizar la apariencia y la funcionalidad del dispositivo, y acceder al funcionamiento interno del sistema operativo.
  2. Descanso: Implica escapar o liberarse de una restricción. En el contexto del jailbreak del iPhone, significa sortear o eludir las restricciones impuestas por iOS de Apple. Este proceso consiste en aprovechar vulnerabilidades del sistema iOS para obtener acceso root o privilegios administrativos, lo que permite a los usuarios modificar el dispositivo de maneras que Apple normalmente no permite.

Hacer jailbreak a un iPhone otorga al usuario acceso completo de ejecución y escritura. En resumen, el jailbreak en el contexto de los iPhones significa liberarse de las restricciones y limitaciones impuestas por iOS de Apple, permitiendo a los usuarios tener mayor control sobre sus dispositivos y personalizarlos a su gusto. El término refleja la idea de liberar el iPhone de la "cárcel" metafórica de las restricciones de Apple, brindándote mayor libertad y flexibilidad con tu dispositivo.

El deseo de liberar el propio teléfono ha dado lugar a una “comunidad” de jailbreak formada por hackers, usuarios curiosos y actores de amenazaComo en cualquier comunidad que se precie, un grupo de Reddit (r/jailbreakSe ha formado una comunidad de jailbreak, se han creado (y eliminado) canales de YouTube, y la web oscura/gris facilita el intercambio de consejos, técnicas y procedimientos para el jailbreak entre sus miembros. Los jailbreaks han sido muy buscados durante mucho tiempo, y quienes los descubren, ejecutan y comparten alcanzan fama o notoriedad dentro de la comunidad.

Cabe destacar que el jailbreak puede anular las garantías y tener implicaciones legales, por lo que Apple no lo apoya ni lo fomenta oficialmente. Asimismo, si bien eludir las políticas de Apple anula la garantía, no es ilegal en sí mismo, y muchos en la comunidad del jailbreak consideran que es su derecho, e incluso su obligación, participar en él, no necesariamente con fines maliciosos. Mientras que la comunidad de hackers, ciberdelincuentes y bromistas ha formado una comunidad de jailbreak informal dedicada a frustrar los esfuerzos de Apple por restringir su sistema operativo, también se ha consolidado una industria con fines de lucro que vulnera iOS. Empresas como NSO, Cellebrite y Paragon ofrecen técnicas sofisticadas de jailbreak a cambio de dinero; y las fuerzas del orden, así como los gobiernos de todo el mundo —aunque se resistan a admitirlo públicamente— casi seguro hagan uso de estos servicios.

En el mundo de las seguridad de la aplicaciónEl jailbreak adquiere una importancia crucial, ya que cuando un atacante quiere manipular (modificar) una aplicación, uno de los primeros pasos que debe seguir es realizar el jailbreak del teléfono para asegurarse de que la aplicación modificada se pueda ejecutar. En otras palabras, si bien realizar el jailbreak no es ilegal ni poco ético, en la mayoría de los casos es un paso necesario para poder usar una aplicación que ha sido manipulada. Por lo tanto, detectar teléfonos con jailbreak es fundamental para cualquier sistema de seguridad. endurecimiento de la aplicación solution.

Al mismo tiempo, Apple ha invertido constantemente tiempo, dinero, esfuerzo e ingenio en prevenir por completo el jailbreak. Con el tiempo, este proceso se ha vuelto más complejo y, debido a las mejoras de seguridad de Apple, a menudo requiere múltiples exploits para desbloquear completamente el dispositivo. La evolución de los esfuerzos de Apple para prevenir el jailbreak es larga y compleja; esencialmente, un juego del gato y el ratón que ha impulsado la innovación tanto en la comunidad jailbreak como dentro de la propia Apple.

Si bien la detección de jailbreaks es fundamental para garantizar la seguridad de las aplicaciones disponibles públicamente, no todos los jailbreaks son iguales; algunos ni siquiera representan una amenaza importante para la seguridad.

Esta publicación 1) describirá la evolución de los jailbreaks del iPhone y 2) explicará qué tipos de jailbreaks dan acceso completo a los recursos del sistema en el sentido original de la palabra, y cuáles son primos menos potentes del jailbreak tradicional.

La evolución conjunta de iOS y los jailbreaks

fugitivos

Figura 1: Un grupo de alegres fugitivos en la DEF CON (agosto de 2011). Crédito de la foto: Dreamyshade – Trabajo propio, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=38871495

Los primeros días: Exploits de BootROM

Inicialmente, el jailbreak se centraba principalmente en la bootROM, un componente fundamental del proceso de arranque de los dispositivos iOS. La bootROM es un software de bajo nivel integrado permanentemente en el hardware, lo que hace que las vulnerabilidades a este nivel sean particularmente potentes. Los ataques a la bootROM afectan a toda la cadena de confianza: el gestor de arranque, el kernel y, finalmente, el entorno de usuario. Una vulnerabilidad exitosa en la bootROM podía otorgar un acceso sin precedentes al dispositivo, permitiendo modificaciones permanentes que persistían tras las actualizaciones de software y los reinicios. Esta época estuvo marcada por exploits famosos como... Limera1n y PwnageHerramienta, que desbloqueó iPhones en masa, permitiendo la instalación de firmware personalizado y modificaciones profundas del sistema.

El cambio a iBoot: Vulnerabilidades del gestor de arranque

Mientras Apple reforzaba la seguridad del bootROM, los atacantes centraron su atención en iBoot, la siguiente etapa del proceso de arranque de iOS. Las vulnerabilidades en el gestor de arranque, como redsn0w y Sn0wbreeze, si bien eran menos permanentes que las del bootROM, aún ofrecían un control considerable sobre el dispositivo. Al comprometer iBoot, los atacantes podían influir en el kernel y el entorno de usuario, lo que permitía una personalización significativa y eludir las restricciones del ecosistema de Apple. Estas vulnerabilidades se podían corregir mediante actualizaciones de software, lo que las convertía en un método de jailbreak menos duradero, pero aún efectivo.

La era del kernel: parches y protección

El avance hacia la explotación de vulnerabilidades del kernel marcó una evolución significativa en las tácticas de jailbreaking. Vulnerabilidades a nivel de kernel, explotadas por herramientas como Pangu, Taig, y YaluEsto permitía la ejecución de código sin firmar y modificaciones profundas del sistema sin alterar el proceso de arranque. Esta era consolidó un enfoque más refinado para el jailbreak, centrado en la flexibilidad operativa dentro de la arquitectura de seguridad de Apple. Jailbreaks como Electra y Unc0ver Esto ejemplificó aún más esta estrategia, sorteando las defensas de Apple para modificar el sistema manteniendo al mismo tiempo una apariencia de cumplimiento con los protocolos de seguridad de iOS.

Jailbreaks modernos: Exploits de precisión y específicos del proceso

2015 marcó un punto de inflexión en la historia del jailbreak. Apple, tras haber reforzado eficazmente las defensas tanto del bootROM como del iBoot, dejó de estar dispuesta a limitarse a reaccionar ante las diversas vulnerabilidades de su kernel con parches periódicos y pasó a la ofensiva contra la comunidad jailbreak con una serie de innovaciones que, en esencia, han mantenido a la comunidad jailbreak —así como a empresas como Cellebrite y NSO— a la defensiva.

En iOS 9 (septiembre de 2015), Apple introdujo la Protección de Parches del Kernel (KPP), su actualización de seguridad más importante. KPP se refiere al código implementado en el kernel para proteger la memoria de lectura-ejecución y de solo lectura en la caché del kernel. Esto se logra mediante comprobaciones aleatorias periódicas.

Desde septiembre de 2015, las técnicas de jailbreak se dividen en KPPLess y KPP Bypass. KPPLess es una técnica que permite que KPP siga funcionando, lo que significa evadir la verificación de KPP. KPP Bypass deshabilita KPP por completo. Antes de KPP, un atacante generalmente necesitaba tener permisos de escritura en el kernel para modificar el código de seguridad.

En los chips A10, lanzados originalmente con iOS 10 en junio de 2016, Apple introdujo KTRR (Kernel Text Read only Region), que impide la modificación del kernel de iOS en tiempo de ejecución. Los chips anteriores intentaban lograr esto mediante un programa de monitorización cargado en EL3, pero el método era inherentemente defectuoso, y la comunidad de jailbreak ya había encontrado formas de eludir dicho programa. A partir de los chips A10, Apple integró las comprobaciones de seguridad en el propio hardware, lo que dificultó la labor de los jailbreakers (tanto en la comunidad como en el sector comercial).

En junio de 2018, con el lanzamiento de iOS 12, Apple introdujo PAC (Código de Autenticación de Puntero), su implementación de la autenticación de puntero. PAC utiliza los bits superiores de un puntero para almacenar una firma criptográfica, lo que mejora la seguridad al verificar los valores del puntero y el contexto adicional. Se han introducido instrucciones especiales para agregar un código de autenticación a un puntero, verificar el PAC de un puntero autenticado y restaurar el valor original del puntero. Esto permite al sistema ofrecer garantías criptográficas sólidas sobre la probabilidad de que ciertos punteros hayan sido manipulados por atacantes, lo que ofrece la posibilidad de mejorar significativamente la seguridad de las aplicaciones.

Cuando los chips A12 salieron al mercado ese mismo año (septiembre de 2018), Apple introdujo la Capa de Protección de Páginas (PPL). El objetivo de la PPL es impedir que los atacantes modifiquen el código ejecutable de un proceso o sus tablas de páginas, incluso después de obtener privilegios de lectura, escritura y ejecución del kernel. Esta es otra medida de mitigación de vulnerabilidades que dificulta la concatenación de ataques. Lo consigue aprovechando APRR para crear un «kernel dentro del kernel» que protege las tablas de páginas. La única forma en que el kernel puede modificar las tablas de páginas es accediendo a la PPL mediante la llamada a una «rutina PPL», que es análoga a una llamada al sistema desde XNU a la PPL. Esto limita los puntos de entrada al código del kernel que pueden modificar las tablas de páginas únicamente a dichas rutinas PPL. ¿Podemos resumir por qué este cambio del A12 fue significativo para la comunidad jailbreak?

La comunidad jailbreak disfrutó de un periodo de relativa calma hasta junio de 2021, cuando Apple presentó iOS 15. iOS 15 causó gran revuelo al introducir SSV, el Volumen del Sistema Sellado. Este mecanismo es una función de seguridad a nivel de kernel que sella el volumen con una firma criptográfica conocida solo por Apple, la cual rechaza cualquier código que intente modificar el contenido del sistema, impidiendo así cualquier cambio no autorizado antes del arranque de iOS. Este método obligó a la comunidad jailbreak a cambiar por completo la estructura de las arquitecturas de jailbreak anteriores. Desde entonces, los jailbreaks se dividen en rootless y rootful.

Los jailbreaks sin root mantienen todos los archivos y modificaciones fuera del directorio raíz, generalmente en / var y /privado/prearranqueLos jailbreaks con root utilizan montajes de enlace que crean efectivamente una raíz "falsa", que luego actúa como la raíz real. rootfs, pero requiere una vulnerabilidad en la ROM de arranque.

Dado que el jailbreak se logró sin modificar el código del kernel, los efectos ya no afectan a todo el sistema, sino a cada proceso individualmente. Esto significa que, en lugar de realizar el jailbreak del sistema operativo, ahora se realiza proceso por proceso.

Podemos verlo de esta manera: en la era de los jailbreaks "premodernos", bastaba con parchear el kernel, lo que afectaba a todo el sistema. Ahora, donde muchos jailbreaks (Quimera, checkra1nEn lugar de modificar directamente el código del kernel, se manipulan las estructuras de datos del kernel, y esta manipulación se realiza proceso por proceso. Esta situación dificulta la detección del jailbreak. Si bien la mayor parte de la integridad del sistema parece intacta, se implementa una lógica para determinar si un proceso ha sido sometido a jailbreak o no. Es decir, a menos que se pretenda realizar un jailbreak, el proceso permanece aislado. Esto, a su vez, significa que, incluso si este tipo de jailbreak otorga acceso a recursos a los que Apple no está previsto que la aplicación tenga acceso, no da acceso a todos los procesos, lo cual es importante porque significa que el jailbreak en sí no es necesariamente peligroso para todas (o incluso ninguna) de las aplicaciones del teléfono.

Esta nueva forma de hacer jailbreak es, cuanto menos, técnicamente complicada. Requiere hooks en lanzamiento donde se invocan todos los procesos, se ejecutan ganchos y se insertan todos los nuevos jailbreaks de procesos inmediatamente después de su creación. Y desafortunadamente (desde la perspectiva de la comunidad jailbreak), toda esta creatividad técnica conlleva menos libertades.

Implicaciones para Application Security Ingenieros y DevSecOps Managers

Entonces, ¿qué significa todo esto para ti, el ingeniero de seguridad de aplicaciones? Bueno, uno de los mejores mecanismos de defensa que te proporcionamos es ““Autoprotección de aplicaciones en tiempo de ejecución”, o RASPRASP permite a nuestros clientes programar sus aplicaciones para que reaccionen automáticamente cuando se activen las protecciones. Algunos clientes llevan tiempo utilizando RASP para actuar cuando se producen jailbreaks.

Pero si la larga historia del constante juego del gato y el ratón entre Apple y la comunidad del jailbreak nos ha enseñado algo, es que no todos los jailbreaks son iguales. Algunos requieren conexión a un ordenador, ofreciendo poca utilidad para usuarios curiosos o para cualquiera que no sea un experto en ciberdelincuentes o académicos. Existen varios tipos, como los de conexión parcial, sin acceso root y con acceso root. Algunos, posiblemente, no merecen el nombre de «jailbreak» debido a su alcance limitado, asemejándose más a experimentos de hackers que a un producto funcional. Si bien los continuos esfuerzos de Apple por frenar los jailbreaks han impulsado la innovación en la comunidad, también han disminuido la potencia de los jailbreaks modernos con el tiempo. En otras palabras, la implacable estrategia de Apple para arrinconar a la comunidad del jailbreak ha hecho que el término «jailbreak» parezca demasiado grandilocuente para referirse a las ventajas que estos métodos logran ofrecer, incluso cuando la pericia técnica necesaria para realizar estas pequeñas hazañas ha aumentado.

Por este motivo, recomendamos a las empresas que desarrollan aplicaciones para sus clientes que, al detectar indicios de jailbreak, adopten un enfoque preciso en lugar de uno drástico. Por ejemplo, bastaría con registrar que se ha producido un jailbreak, y tal vez ya no sea necesario programar una respuesta específica para este tipo de ataque. Si aun así considera necesario programar una respuesta, tenga en cuenta qué otras medidas de seguridad se activan junto con el jailbreak al diseñar su estrategia de autoprotección de aplicaciones en tiempo de ejecución (RASP). El jailbreak facilita el ataque. Es fundamental detectar los ataques que este permite y no depender únicamente de su detección para detener a los atacantes.

 

Para leer más sobre cómo Digital.ai Application Security Puede proteger sus aplicaciones iOS (detectando, entre otras cosas, el jailbreak), descargue nuestra Producto breve.

También puede interesarle