GWP-ASan และ KFENCE

GWP-ASan และ KFENCE เป็นเครื่องมือตรวจจับหน่วยความจำความน่าจะเป็นสำหรับพื้นที่ผู้ใช้และเคอร์เนลตามลำดับ เมื่อเปิดใช้งาน การจัดสรรจำนวนเล็กน้อยจะได้รับการปกป้องด้วยเพจหน่วยความจำเพิ่มเติมที่ล้อมรอบหน่วยความจำที่จัดสรร ซึ่งช่วยให้สามารถตรวจจับบัฟเฟอร์ล้นและการใช้งานภายหลังที่ว่างโดยมีค่าใช้จ่ายด้านประสิทธิภาพเล็กน้อย แม้ว่าจะมีอัตราการสุ่มตัวอย่างเล็กน้อยสำหรับการจัดสรรที่มีการป้องกัน แต่เมื่อใช้งานในวงกว้าง ก็สามารถตรวจจับจุดบกพร่องด้านความปลอดภัยของหน่วยความจำได้อย่างมีประสิทธิภาพ นับตั้งแต่เปิดตัว เครื่องมือเหล่านี้ได้ช่วยระบุจุดบกพร่องของแพลตฟอร์มจำนวนมาก และได้พิสูจน์แล้วว่าเป็นเครื่องมือที่มีค่าสำหรับการปรับปรุงเสถียรภาพและความปลอดภัย เราสนับสนุนให้ผู้ขายเปิดใช้งานและติดตามข้อบกพร่องที่ตรวจพบบนอุปกรณ์ของผู้ใช้ปลายทางอย่างใกล้ชิด

นักพัฒนาควรตรวจสอบการมีอยู่ของข้อขัดข้องโดยการตรวจสอบ /data/tombstones logcat หรือโดยการตรวจสอบไปป์ไลน์ DropboxManager ของผู้จำหน่ายเพื่อหาจุดบกพร่องของผู้ใช้

สำหรับข้อมูลเพิ่มเติม โปรดดูเอกสารเกี่ยวกับการดีบักโค้ดเนทีฟของ Android

การดีบักโค้ดแพลตฟอร์ม Android ดั้งเดิม

GWP-ASan สำหรับตรวจจับข้อบกพร่องด้านความปลอดภัยของหน่วยความจำผู้ใช้

GWP-ASan เปิดตัวใน Android 11 สำหรับการจัดสรรฮีปพื้นที่ผู้ใช้ เมื่อ GWP-ASan ตรวจพบข้อบกพร่อง ระบบจะบันทึกรายงานข้อขัดข้องด้วย Cause: [GWP-ASan]: และยุติกระบวนการ รายงานข้อบกพร่องประกอบด้วยข้อมูลการจัดสรรและการจัดสรรเพิ่มเติมที่ช่วยให้ระบุสาเหตุที่แท้จริงได้ง่ายขึ้น

GWP-ASan จะเปิดใช้งานแบบสุ่มเมื่อเริ่มต้นระบบสำหรับ 1% ของกระบวนการหรือแอปของระบบ และสำหรับแอปพลิเคชันที่ตั้งค่า android:gwpAsanMode ในไฟล์ AndroidManifest.xml

GWP-ASan

KFENCE สำหรับตรวจจับข้อบกพร่องด้านความปลอดภัยของหน่วยความจำเคอร์เนล

Android 12 เปิดตัว KFENCE สำหรับการจัดสรรฮีปเคอร์เนล เมื่อ KFENCE ตรวจพบจุดบกพร่อง ระบบจะบันทึกรายงานข้อขัดข้องที่ขึ้นต้นด้วย BUG: KFENCE, ปิดใช้งานหน้าป้องกัน และดำเนินการต่อไป ซึ่งจะทำให้กลไกการตรวจจับจุดบกพร่องของเคอร์เนลมีผลกระทบต่อประสบการณ์ผู้ใช้น้อยที่สุด

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ KFENCE โปรดดูเอกสารประกอบที่ https://www.kernel.org