
Implémentation iBoot à mémoire sécurisée
Sur les appareils sous iOS 14 et iPadOS 14, ou une version ultérieure, Apple a modifié la chaîne d’outils du compilateur C servant à élaborer le chargeur d’amorçage iBoot afin d’en améliorer la sécurité. La chaîne d’outils modifiée implémente du code est conçue pour prévenir les problèmes liés à la sûreté de la mémoire et du typage (ces problèmes sont courants parmi les programmes C). Par exemple, elle empêche la plupart des vulnérabilités des classes suivantes :
les dépassements de la mémoire tampon, en veillant à ce que les pointeurs comportent des informations sur les limites vérifiées lors de l’accès à la mémoire;
l’exploitation du tas, en séparant les données du tas de leurs métadonnées et en détectant précisément les conditions de l’erreur, telles qu’une double utilisation de la fonction free;
la confusion de type, en veillant à ce que tous les pointeurs comportent des informations sur le type d’exécution qui seront vérifiées lors des opérations de conversion de type de pointeur;
la confusion de type causée par des erreurs d’utilisation consécutive à une libération de la mémoire, en séparant toutes les attributions dynamiques de mémoire par type statique.
Cette technologie est disponible sur les iPhone équipés de la puce A13 Bionic et les modèles plus récents, et sur les iPad équipés de la puce A14 Bionic et modèles ultérieurs.