
Implementazione di iBoot per la protezione della memoria
In iOS 14 e iPadOS 14 o versioni successive, Apple ha modificato la toolchain per il compiler C utilizzato per eseguire la build del bootloader iBoot per migliorarne la sicurezza. La toolchain modificata implementa del codice che progettato per impedire problemi di sicurezza relativi alla memoria e ai tipi che sono diffusi nei programmi C. Ad esempio, aiuta a evitare gran parte delle vulnerabilità nelle seguenti classi:
Overflow del buffer, garantendo che tutti i puntatori contengano informazioni sui limiti che siano verificate quando accedono alla memoria.
Sfruttamento degli heap, separando questi ultimi dai relativi metadati e rilevando accuratamente condizioni di errore come i double-free.
Confusione dei tipi, garantendo che tutti i puntatori contengano informazioni sul tipo di runtime che siano verificate durante le operazioni di cast dei puntatori.
Confusione dei tipi causata da errori use-after-free, isolando tutte le allocazioni di memoria dinamica per tipo statico.
Questa tecnologia è disponibile su iPhone con chip Apple A13 Bionic o modelli successivi e su iPad con chip A14 Bionic o modelli successivi.