น้ํายาทําความสะอาด

สารฆ่าเชื้อคือกลุ่มเครื่องมือวิเคราะห์แบบไดนามิกที่พบข้อผิดพลาดในโปรแกรมขณะรันไทม์ผ่านเครื่องมือเพิ่มเติมที่คอมไพเลอร์แทรกไว้ ซึ่งรวมถึงการตรวจจับปัญหา ความปลอดภัยของหน่วยความจำ 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 ยังเหมาะสำหรับการเปิดใช้การผลิตเพื่อบรรเทาความปลอดภัยอีกด้วย