Android 14 อาจเพิ่มฟีเจอร์เบต้าใหม่ที่เรียกว่า "การป้องกันหน่วยความจำขั้นสูง" ซึ่งสามารถป้องกันข้อบกพร่องด้านความปลอดภัยของหน่วยความจำในอุปกรณ์ที่รองรับ
ความปลอดภัยของหน่วยความจำถือเป็นสิ่งสำคัญอันดับแรกสำหรับ Google ในช่วงนี้ เนื่องจากข้อบกพร่องด้านความปลอดภัยของหน่วยความจำมักเป็นข้อบกพร่องที่ร้ายแรงที่สุดในการพัฒนาซอฟต์แวร์ อันที่จริง ช่องโหว่ด้านความปลอดภัยของหน่วยความจำเคยใช้กับ Android ที่มีความรุนแรงส่วนใหญ่ ช่องโหว่จนถึงปี 2022 ซึ่งเป็นเวลาที่ Google เขียนส่วนสำคัญของระบบปฏิบัติการใหม่ของ Android รหัสใน ภาษาโปรแกรมสนิม แทน C/C++ Google พยายามสนับสนุนวิธีการอื่นๆ เพื่อลดช่องโหว่ด้านความปลอดภัยของหน่วยความจำใน Android ซึ่งหนึ่งในนั้นเรียกว่าการแท็กหน่วยความจำ บนอุปกรณ์ที่รองรับการทำงาน แอนดรอยด์ 14อาจมีการตั้งค่า "การป้องกันหน่วยความจำขั้นสูง" ใหม่ที่สามารถสลับคุณสมบัตินี้ได้
Memory Tagging Extension (MTE) เป็นคุณสมบัติฮาร์ดแวร์ที่จำเป็นของ CPU Arm v9 ที่ป้องกันหน่วยความจำ ข้อบกพร่องด้านความปลอดภัย (มีค่าใช้จ่ายด้านประสิทธิภาพรันไทม์เล็กน้อย) โดยการให้ข้อมูลโดยละเอียดเกี่ยวกับหน่วยความจำ การละเมิด
Google ได้ทำงานเพื่อสนับสนุน MTE ทั่วทั้งกลุ่มซอฟต์แวร์ Android มาหลายรุ่นแล้ว ใน Android 12 scudo ซึ่งเป็นตัวจัดสรรฮีปของ Android ได้เพิ่มการรองรับสำหรับโหมดการทำงาน MTE สามโหมดบนอุปกรณ์ที่รองรับ ได้แก่ โหมดซิงโครนัส โหมดอะซิงโครนัส และโหมดอสมมาตร Google ยังทำให้สามารถเปิดใช้งาน MTE สำหรับกระบวนการของระบบ ณ เวลาที่สร้างหรือผ่านคุณสมบัติของระบบและ/หรือตัวแปรสภาพแวดล้อม แอปพลิเคชันสามารถเลือกรับการสนับสนุน MTE ผ่านทาง Android: memtagMode คุณลักษณะ. เมื่อเปิดใช้งาน MTE สำหรับกระบวนการใน Android ข้อบกพร่องด้านความปลอดภัยของหน่วยความจำทั้งคลาส เช่น การใช้งานฟรีและบัฟเฟอร์ล้นจะทำให้เกิดข้อขัดข้องแทนที่จะเป็นความเสียหายของหน่วยความจำแบบเงียบ
ใน แอนดรอยด์ 13Google ได้เพิ่ม ABI ให้กับพื้นที่ผู้ใช้เพื่อสื่อสารโหมดการทำงาน MTE ที่ร้องขอไปยัง bootloader สิ่งนี้สามารถใช้เพื่อเปิดใช้งาน MTE บนอุปกรณ์ที่รองรับซึ่งไม่ได้มาพร้อมกับการเปิดใช้งานตามค่าเริ่มต้น หรืออาจใช้เพื่อปิดการใช้งานบนอุปกรณ์ที่รองรับซึ่งเปิดใช้งานด้วย ค่าเริ่มต้น. การตั้งค่าคุณสมบัติระบบ ro.arm64.memtag.bootctl_supported เป็น "true" ใน Android 13 จะบอกระบบว่า Bootloader รองรับ ABI และยังทริกเกอร์ปุ่มให้ปรากฏในเมนูตัวเลือกนักพัฒนาที่อนุญาตให้ผู้ใช้เปิดใช้งาน MTE ในครั้งต่อไป รีบูต สิ่งนี้มุ่งเป้าไปที่นักพัฒนาที่ต้องการทดสอบพฤติกรรมของแอพโดยเปิดใช้งาน MTE
อย่างไรก็ตาม ใน Android 14 การเปิดใช้ MTE บนอุปกรณ์ที่รองรับอาจต้องอาศัยตัวเลือกของนักพัฒนาอีกต่อไป หากอุปกรณ์มี CPU Arm v8.5+ ที่รองรับ MTE การใช้งานอุปกรณ์จะรองรับ ABI สำหรับการสื่อสารโหมดการทำงาน MTE ที่ร้องขอไปยังบูตโหลดเดอร์ และตัวโหลดบูตใหม่ คุณสมบัติระบบ 'ro.arm64.memtag.bootctl_settings_toggle' ถูกตั้งค่าเป็นจริง จากนั้นหน้า "การป้องกันหน่วยความจำขั้นสูง" ใหม่อาจปรากฏในการตั้งค่า > ความปลอดภัยและความเป็นส่วนตัว > ความปลอดภัยเพิ่มเติม การตั้งค่า. หน้านี้ยังสามารถเปิดตัวผ่านทางใหม่ ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS การกระทำที่มีเจตนา
โดยเฉพาะอย่างยิ่งชิปเซ็ต Tensor G2 ใน กูเกิลพิกเซล 7 ซีรีส์ใช้คอร์ CPU Arm v8.2 ดังนั้นจึงไม่รองรับ MTE หากซีรีส์ Google Pixel 8 ที่กำลังจะมาถึงใช้คอร์ซีพียู Arm v9 ใหม่เหมือนกับอุปกรณ์ Android รุ่นเรือธงอื่น ๆ พวกเขาก็จะมีฮาร์ดแวร์ที่สามารถรองรับ MTE ได้ ก็ต้องรอดูกันต่อไปว่าฟีเจอร์ "การป้องกันหน่วยความจำขั้นสูง" นี้จะทำให้กลายเป็นรุ่นเสถียรจริงหรือไม่
ขอขอบคุณนักวิจัยด้านความปลอดภัย @flawedworlddev สำหรับความช่วยเหลือในบทความนี้!