GWP-ASan e KFENCE

GWP-ASan e KFENCE sono strumenti di rilevamento probabilistico della memoria per lo spazio utente e il kernel, rispettivamente. Se questa opzione è attivata, un numero ridotto di allocazioni viene protetto con pagine di memoria aggiuntive che circondano la memoria allocata. Ciò consente di rilevare gli overflow del buffer e gli elementi "use-after-free" con un overhead delle prestazioni trascurabile. Anche con una frequenza di campionamento ridotta per le allocazioni protette, se implementate su larga scala possono rilevare efficacemente i bug di sicurezza della memoria. Fin dalla loro introduzione, questi strumenti hanno aiutato a identificare numerosi bug della piattaforma e si sono dimostrati uno strumento prezioso per migliorare stabilità e sicurezza. Invitiamo i fornitori ad attivarli e a monitorare attentamente i bug rilevati sui dispositivi degli utenti finali.

Gli sviluppatori dovrebbero verificare la presenza di arresti anomali controllando /data/tombstones, logcat o monitorando la pipeline DropboxManager del fornitore per rilevare eventuali bug degli utenti finali.

Per ulteriori informazioni, consulta la nostra documentazione sul debugging del codice nativo Android.

Debug del codice della piattaforma Android nativo

GWP-ASan per il rilevamento di bug di sicurezza della memoria nello spazio utente

GWP-ASan è stato introdotto in Android 11 per le allocazioni heap nello spazio utente. Quando GWP-ASan rileva un bug, registra un report sugli arresti anomali con Cause: [GWP-ASan]: e termina il processo. Le segnalazioni di bug contengono informazioni aggiuntive su allocazione e deallocazione che semplificano l'identificazione della causa principale.

GWP-ASan viene attivato in modo casuale all'avvio per l'1% dei processi o delle app di sistema e per le applicazioni che impostano android:gwpAsanMode nel file AndroidManifest.xml.

GWP-ASan

KFENCE per il rilevamento di bug di sicurezza della memoria del kernel

Android 12 ha introdotto KFENCE per le allocazioni dell'heap del kernel. Quando KFENCE rileva un bug, registra un report sugli arresti anomali che inizia con BUG: KFENCE,, disattiva le pagine di guardia e continua l'esecuzione. Ciò abilita un meccanismo di rilevamento di bug del kernel che influisce minimamente sull'esperienza utente.

Per scoprire di più su KFENCE, consulta la documentazione disponibile all'indirizzo https://www.kernel.org