โปรแกรมตรวจสอบความปลอดภัยเป็นกลุ่มเครื่องมือวิเคราะห์แบบไดนามิกที่ค้นหาข้อผิดพลาดในโปรแกรมขณะรันไทม์ผ่านเครื่องมือเพิ่มเติมที่คอมไพเลอร์แทรกไว้ ซึ่งรวมถึงการตรวจหาปัญหาความปลอดภัยของหน่วยความจำ Android รองรับและขอแนะนําอย่างยิ่งให้ใช้โปรแกรมฆ่าเชื้อต่อไปนี้
AddressSanitizer ที่ทำงานด้วยความช่วยเหลือของฮาร์ดแวร์ (HWASan)
HWASan เป็นโปรแกรมตรวจสอบหลักที่จะตรวจหาปัญหาด้านความปลอดภัยของหน่วยความจำ โดยต้องใช้ ARM64 และสามารถตรวจจับสิ่งต่อไปนี้
- บัฟเฟอร์สแต็กและฮีปที่ล้นหรือต่ำกว่าเกณฑ์
- การใช้งานฮีปหลังจากมีการปลดปล่อย
- การใช้สแต็กหลังขอบเขต
- การใช้กองหลังจากการคืนค่า
- ฟรีแบบคู่หรือฟรีแบบอิสระ
ตัวตรวจสอบที่อยู่ (ASan)
ASan เป็นเครื่องมือที่คล้ายกับ HWASan ฟีเจอร์นี้ใช้งานได้ในแพลตฟอร์มอื่นๆ เพิ่มเติม แต่ไม่รองรับใน Android
KernelAddress sanitizer (KASan)
KASan เป็นเครื่องมือเคอร์เนลที่เทียบเท่าเครื่องมือสเปซผู้ใช้ข้างต้น โดยใช้คอมไพเลอร์เดียวกัน KASan และ ASan/HWASan ใช้ร่วมกันได้เนื่องจากเครื่องมือหนึ่งใช้กับเคอร์เนลและอีกเครื่องมือหนึ่งใช้กับพื้นที่ผู้ใช้ เราขอแนะนำให้เปิดใช้ทั้ง 2 อย่างพร้อมกันเพื่อลดจำนวนการกำหนดค่าบิลด์และลดเมทริกซ์การทดสอบ
โปรแกรมตรวจสอบลักษณะการทำงานที่ไม่รู้จัก (UBSan)
UBSan จะทำการวัดผลเมื่อคอมไพล์เพื่อตรวจสอบลักษณะการทำงานที่ไม่ระบุ (ไม่ปลอดภัยด้านหน่วยความจำ) ประเภทต่างๆ ซึ่งรวมถึงการตรวจสอบจำนวนเต็มที่มีและไม่มีเครื่องหมายที่ล้น (IntSan), การตรวจสอบขอบเขตสำหรับอาร์เรย์ที่มีขนาดคงที่ (BoundsSan) และลักษณะการทำงานที่ไม่ระบุประเภทอื่นๆ อีกมากมาย IntSan และ BoundsSan ยังเหมาะสำหรับการเปิดใช้ในเวอร์ชันที่ใช้งานจริงเพื่อลดความเสี่ยงด้านความปลอดภัยด้วย