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