
การใช้ iBoot ที่ปลอดภัยสำหรับหน่วยความจำ
ใน iOS 14 และ iPadOS 14 ขึ้นไป Apple ได้แก้ไข C compiler toolchain ที่ใช้สำหรับสร้างตัวโหลดเริ่มต้นระบบของ iBoot เพื่อปรับปรุงความปลอดภัย โดย toolchain จะใช้รหัสที่ได้รับการออกแบบมาเพื่อป้องกันปัญหาเกี่ยวกับหน่วยความจำและปัญหาความปลอดภัยประเภทต่างๆ ที่เกิดขึ้นโดยทั่วไปในโปรแกรม C ตัวอย่างเช่น วิธีนี้จะช่วยป้องกันช่องโหว่ส่วนใหญ่ในคลาสดังต่อไปนี้:
Buffer overflow โดยตรวจสอบให้แน่ใจว่าตัวชี้ทั้งหมดมีข้อมูลขอบเขตที่ได้รับการตรวจสอบยืนยันแล้วเมื่อมีการเข้าถึงหน่วยความจำ
Heap exploitation โดยการแยกข้อมูลฮีปออกจากเมตาดาต้าและการตรวจจับเงื่อนไขข้อผิดพลาดอย่างแม่นยำ เช่น ข้อผิดพลาด double free
Type confusion โดยการรับรองว่าตัวชี้ทั้งหมดมีข้อมูลรันไทม์ที่ได้รับการตรวจสอบยืนยันแล้วระหว่างดำเนินการคาสต์ตัวชี้
Type confusion ที่เกิดจากข้อผิดพลาด use after free โดยแยกการแจกจ่ายหน่วยความจำแบบไดนามิกทั้งหมดตามประเภทแบบคงที่
เทคโนโลยีนี้มีบน iPhone ที่มีชิป A13 Bionic ขึ้นไปและบน iPad ที่มีชิป A14 Bionic ขึ้นไป