Un informe reciente de 404 Medios reveló que los agentes encargados de hacer cumplir la ley han estado preocupados por el hecho de que los iPhone se reinicien automáticamente, lo que hace que sea muy difícil piratear estos dispositivos. La investigadora de seguridad Jiska Classen descubrió más tarde que este comportamiento es causado por una nueva característica llamada “Reinicio de inactividad”, que ahora Classen ha aplicado ingeniería inversa.
Ingeniería inversa de la función de reinicio por inactividad del iPhone
El investigador detalló en una publicación de blog cómo Apple implementó exactamente el reinicio por inactividad, que hizo todo en silencio sin anunciar públicamente la nueva característica de seguridad. Según el código de iOS, fue posible confirmar que el reinicio por inactividad se implementó en iOS 18.1, aunque el código beta de iOS 18.2 sugiere que Apple todavía está realizando mejoras en su funcionamiento.
Al contrario de lo que se pensaba anteriormente, la característica de seguridad no tiene relación con la conectividad inalámbrica. En cambio, utiliza el procesador Secure Enclave (SEP) para rastrear cuándo se desbloqueó el iPhone por última vez. Si la última vez que se desbloqueó supera los tres días, SEP notifica a un kernel que mata Springboard (que es el núcleo de iOS) e inicia un reinicio.
Como era de esperar, según Classen, Apple ha implementado formas de evitar que los piratas informáticos eviten este proceso. Por ejemplo, si algo impide que el kernel reinicie el iPhone, el sistema automáticamente provocará un pánico en el kernel y reiniciará el dispositivo. El sistema también envía datos analíticos a Apple cuando un dispositivo entra en el estado de “aks-inactividad”.
Dado que todo lo relacionado con el reinicio por inactividad ocurre en SEP y no en el kernel principal de iOS, es mucho más difícil evitarlo, incluso si el kernel principal está comprometido (como con una herramienta de jailbreak). Como explicó Classen, se sabe poco sobre el SEP ya que Apple mantiene todo en secreto, incluido su firmware.
Cuando se reinicia, el iPhone ingresa al modo Antes del primer desbloqueo (BFU), que cifra todos los archivos en el dispositivo hasta que el usuario ingresa el código de acceso del dispositivo. Incluso Cellebrite, una empresa de ciberseguridad que se especializa en extraer datos de iPhones bloqueados, reconoce que obtener datos de un dispositivo en modo BFU es todo un desafío.
Apple no dice por qué implementó el reinicio por inactividad en el iPhone con iOS 18, pero las razones parecen bastante claras. La compañía ciertamente quiere tomar medidas enérgicas contra herramientas como el software espía Cellebrite y Pegasus, que suelen utilizar los agentes encargados de hacer cumplir la ley. Por supuesto, esto también protege a los usuarios habituales a quienes se les pueden extraer sus datos tras haber sido víctimas de un hurto o robo.
Se pueden encontrar más detalles sobre la ingeniería inversa de la función de reinicio por inactividad en el blog de Jiska Classen.