為 iBoot 加入記憶體安全機制
在 iOS 14 和 iPadOS 14 或以上版本中,Apple 修改了用來建立 iBoot Bootloader 的 C 編譯器工具鏈以改善其安全性。修改後的工具鏈採用了某些程式碼,其設計是為了防止在 C 程式中常會遇到的記憶體和型別安全問題。例如,這有助於防止下列類別中大部分的弱點:
緩衝區溢位:避免方式是確保所有指標都攜帶界限資訊,這些資訊應在存取記憶體時經過驗證
堆積利用;藉由分離堆積資料與其後設資料及正確刪除雙重釋出等錯誤情況
型別混淆:避免方式是確保所有指標都攜帶執行階段型別資訊,這些資訊應在指標轉換作業期間經過驗證
「釋出後使用」錯誤所造成的型別混淆:避免方式是依靜態型別分隔所有動態記憶體配置
配備 Apple A13 仿生晶片或後續晶片的 iPhone 以及配備 A14 仿生晶片或後續晶片的的 iPad 均可使用此技術。
感謝您的寶貴意見。