HWASan, ASan dan KASAN

Hardware Address Sanitizer (HWASan), Address Sanitizer (ASan) dan Kernel Address Sanitizer (KASAN) adalah seperangkat alat deteksi bug memori yang harus digunakan selama pengembangan.

Mereka memasukkan instrumentasi kompiler untuk setiap operasi memori yang menambahkan overhead yang signifikan -- 2x CPU, 15-30% RAM (ASan: 100% RAM), 50% ukuran kode, yang membuatnya tidak cocok untuk digunakan dalam produksi.
Karena instrumentasi dimasukkan untuk setiap operasi memori, mereka mendeteksi bug keamanan memori yang lebih luas, termasuk yang berlaku untuk stack dan global. Ini melengkapi alat deteksi tumpukan yang dijelaskan di bagian di atas.

Pengembang harus memeriksa adanya kerusakan dengan memeriksa /data/tombstones atau logcat untuk laporan bug.

HWASan dan ASan untuk mendeteksi bug keamanan memori ruang pengguna

Pada arm64 kami sarankan menggunakan HWASan , sedangkan untuk arm 32-bit dan untuk platform non-Arm kami sarankan menggunakan ASan . Mereka menyediakan fungsionalitas yang setara dan harus digunakan untuk mendeteksi bug keamanan memori dalam kode ruang pengguna.

Mengaktifkannya memerlukan build terpisah karena binari tidak kompatibel dengan versi non-alamat yang disanitasi. Untuk mengaktifkan HWASan, setel SANITIZE_TARGET=hwaddress di lingkungan build, atau cukup gunakan target bersufiks _hwasan- .
Untuk informasi lebih lanjut tentang HWASan dan ASan lihat dokumentasi.

HWAddress Sanitizer Alamat Sanitizer

KASAN untuk mendeteksi bug keamanan memori kernel

KASAN adalah mitra kernel dari alat userspace di atas. Ini berbagi implementasi kompiler yang sama. KASAN dan ASan/HWASan saling melengkapi karena satu alat berlaku untuk kernel dan yang lain untuk ruang pengguna. Sebaiknya aktifkan keduanya secara bersamaan untuk mengurangi jumlah konfigurasi build dan mengurangi matriks pengujian.