Pembersih

Sanitizer adalah sekelompok alat analisis dinamis yang menemukan kesalahan dalam program saat runtime melalui instrumentasi tambahan yang disisipkan oleh compiler. Hal ini mencakup mendeteksi masalah keamanan memori. Android mendukung dan sangat merekomendasikan penggunaan sanitizer berikut:

AddressSanitizer yang dibantu hardware (HWASan)

HWASan adalah sanitizer utama untuk memberikan deteksi masalah keamanan memori. Alat ini memerlukan ARM64 dan dapat mendeteksi:

  • Stack dan luapan atau underflow buffer heap
  • Penggunaan heap setelah tersedia
  • Penggunaan stack setelah cakupan
  • Penggunaan stack setelah ditampilkan
  • Double free atau wild free

Address sanitizer (ASan)

ASan adalah alat yang mirip dengan HWASan. Fitur ini berfungsi di lebih banyak platform, tetapi tidak didukung di Android.

KernelAddress sanitizer (KASan)

KASan adalah kebalikan kernel dari alat ruang pengguna di atas. Keduanya memiliki implementasi compiler yang sama. KASan dan ASan/HWASan komplementer karena satu alat berlaku untuk kernel dan alat lainnya untuk ruang pengguna. Sebaiknya aktifkan keduanya secara bersamaan untuk mengurangi jumlah konfigurasi build dan mengurangi matriks pengujian.

UndefinedBehavior sanitizer (UBSan)

UBSan melakukan instrumentasi waktu kompilasi untuk memeriksa berbagai jenis perilaku yang tidak ditentukan (non-keamanan memori). Hal ini mencakup pemeriksaan overflow bilangan bulat bertanda dan tidak bertanda (IntSan), pemeriksaan batas untuk array berukuran statis (BoundsSan), dan banyak jenis perilaku yang tidak ditentukan lainnya. IntSan dan BoundsSan juga cocok untuk diaktifkan dalam produksi sebagai mitigasi keamanan.