Android 14 อาจเพิ่มฟีเจอร์การป้องกันหน่วยความจำขั้นสูงเพื่อปกป้องอุปกรณ์ของคุณจากข้อบกพร่องด้านความปลอดภัยของหน่วยความจำ

Android 14 อาจเพิ่มฟีเจอร์เบต้าใหม่ที่เรียกว่า "การป้องกันหน่วยความจำขั้นสูง" ซึ่งสามารถป้องกันข้อบกพร่องด้านความปลอดภัยของหน่วยความจำในอุปกรณ์ที่รองรับ

ความปลอดภัยของหน่วยความจำถือเป็นสิ่งสำคัญอันดับแรกสำหรับ Google ในช่วงนี้ เนื่องจากข้อบกพร่องด้านความปลอดภัยของหน่วยความจำมักเป็นข้อบกพร่องที่ร้ายแรงที่สุดในการพัฒนาซอฟต์แวร์ อันที่จริง ช่องโหว่ด้านความปลอดภัยของหน่วยความจำเคยใช้กับ Android ที่มีความรุนแรงส่วนใหญ่ ช่องโหว่จนถึงปี 2022 ซึ่งเป็นเวลาที่ Google เขียนส่วนสำคัญของระบบปฏิบัติการใหม่ของ Android รหัสใน ภาษาโปรแกรมสนิม แทน C/C++ Google พยายามสนับสนุนวิธีการอื่นๆ เพื่อลดช่องโหว่ด้านความปลอดภัยของหน่วยความจำใน Android ซึ่งหนึ่งในนั้นเรียกว่าการแท็กหน่วยความจำ บนอุปกรณ์ที่รองรับการทำงาน แอนดรอยด์ 14อาจมีการตั้งค่า "การป้องกันหน่วยความจำขั้นสูง" ใหม่ที่สามารถสลับคุณสมบัตินี้ได้

Memory Tagging Extension (MTE) เป็นคุณสมบัติฮาร์ดแวร์ที่จำเป็นของ CPU Arm v9 ที่ป้องกันหน่วยความจำ ข้อบกพร่องด้านความปลอดภัย (มีค่าใช้จ่ายด้านประสิทธิภาพรันไทม์เล็กน้อย) โดยการให้ข้อมูลโดยละเอียดเกี่ยวกับหน่วยความจำ การละเมิด

ตามที่ Google อธิบาย“ในระดับสูง MTE จะแท็กการจัดสรร/จัดสรรหน่วยความจำแต่ละรายการด้วยข้อมูลเมตาเพิ่มเติม โดยจะกำหนดแท็กให้กับตำแหน่งหน่วยความจำ ซึ่งสามารถเชื่อมโยงกับพอยน์เตอร์ที่อ้างอิงตำแหน่งหน่วยความจำนั้นได้ ขณะรันไทม์ CPU จะตรวจสอบว่าตัวชี้และแท็กข้อมูลเมตาตรงกันในการโหลดและจัดเก็บแต่ละครั้ง”

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 สำหรับความช่วยเหลือในบทความนี้!