Dezenfektanlar

Sanitasyon araçları, derleyici tarafından eklenen ek enstrümantasyon aracılığıyla programlarda çalışma zamanında hata bulan dinamik analiz araçları grubudur. Buna bellek güvenliği sorunlarının tespiti de dahildir. Android, aşağıdaki temizleyicilerin kullanılmasını destekler ve önemle tavsiye eder:

Donanım destekli AddressSanitizer (HWASan)

HWASan, bellek güvenliği sorunlarını tespit eden ana temizleyicidir. ARM64 gerektirir ve şunları algılayabilir:

  • Yığın ve yığın arabelleği taşması veya eksikliği
  • Ücretsiz kullanımdan sonra yığın kullanımı
  • Kapsamdan sonra yığın kullanımı
  • Döndürülen öğelerin yığın kullanımı
  • Çift serbest veya serbest serbest

Adres temizleyici (ASan)

ASan, HWASan'a benzer bir araçtır. Daha fazla platformda çalışır ancak Android'de desteklenmez.

KernelAddress temizleyicisi (KASan)

KASan, yukarıdaki kullanıcı alanı araçlarının çekirdek karşılığıdır. Aynı derleyici uygulamasını paylaşır. KASan ve ASan/HWASan, bir araç çekirdek için, diğeri kullanıcı alanı için geçerli olduğundan birbirini tamamlar. Derleme yapılandırmalarının sayısını ve test matrisini azaltmak için her ikisini de aynı anda etkinleştirmenizi öneririz.

UndefinedBehavior temizleyicisi (UBSan)

UBSan, çeşitli türde (bellek güvenliği olmayan) tanımlanmamış davranışları kontrol etmek için derleme zamanında enstrümantasyon gerçekleştirir. Buna, işaretli ve işaretsiz tam sayı taşma kontrolü (IntSan), statik boyutlu diziler için sınır kontrolleri (BoundsSan) ve tanımlanmamış diğer birçok davranış türü dahildir. IntSan ve BoundsSan, güvenlik azaltma önlemi olarak üretimde etkinleştirmek için de uygundur.