
Implementación de iBoot de forma segura para la memoria
En iOS 14, iPadOS 14 y versiones posteriores, Apple modificó la cadena de herramientas del compilador C que se usa para construir el gestor de arranque iBoot y mejorar su seguridad. La cadena de herramientas modificada implementa código diseñado para evitar problemas relacionados con la memoria y el tipo de seguridad que se presentan comúnmente en los programas C. Por ejemplo, ayuda a impedir la mayoría de las vulnerabilidades en las siguientes clases:
Desbordamientos del búfer, al asegurarse de que todos los punteros lleven información enlazada que se verifica al acceder a la memoria.
Explotación de captura, al separar los datos de captura de sus metadatos y detectar de forma precisa condiciones de error como errores de corrupción.
Confusión de tipo, al garantizar que todos los punteros lleven información de tipo de arranque que se verifica durante las operaciones de cast de los punteros.
Confusión de tipo, causada por errores del tipo use-after-free, al segregar todas las asignaciones de memoria dinámica por tipo estático.
Esta tecnología está disponible en dispositivos iPhone con el chip A13 Bionic o modelos posteriores, y en dispositivos iPad con el chip A14 Bionic o modelos posteriores.