חומרי החיטוי הם קבוצה של כלי ניתוח דינמיים המוצאים טעויות בתוכניות בזמן ריצה באמצעות מכשור נוסף שהוכנס על ידי המהדר. זה כולל זיהוי בעיות בטיחות בזיכרון . אנדרואיד תומכת וממליצה בחום על שימוש בחומרי החיטוי הבאים:
HWAddress Sanitizer (HWASan)
HWASan הוא חומר החיטוי העיקרי כדי לספק זיהוי לבעיות בטיחות בזיכרון. זה דורש ARM64 ויכול לזהות:
- ערימה וערימה של חיץ על הצפת או תת-פרק
- שימוש בערימה לאחר חינם
- שימוש בערימה לאחר היקף
- שימוש בערימה לאחר ההחזרה
- כפול חינם או פראי חינם
חיטוי כתובות (ASan)
ASan הוא כלי דומה ל-HWASan. זה עובד על יותר פלטפורמות, אבל לא נתמך באנדרואיד.
KernelAddress Sanitizer
KASan הוא המקבילה הליבה של כלי מרחב המשתמש למעלה. זה חולק את אותו יישום מהדר. KASAN ו-ASan/HWASan משלימים מכיוון שכלי אחד חל על הקרנל ואחר על מרחב המשתמש. אנו ממליצים להפעיל את שניהם בו-זמנית כדי להפחית את מספר תצורות ה-build ולהפחית את מטריצת הבדיקה.
Undefined Behavior Sanitizer (UBSan)
UBSan מבצעת מכשור בזמן קומפילציה כדי לבדוק סוגים שונים של התנהגות לא מוגדרת (לא בטיחותית בזיכרון). זה כולל בדיקת גלישה של מספרים שלמים חתומים ובלתי חתומים (IntSan), בדיקות גבולות עבור מערכים בגודל סטטי (BoundsSan), ועוד המון סוגים של התנהגות לא מוגדרת. IntSan ו-BoundsSan מתאימות גם להפעלה בייצור כאמצעי אבטחה.