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 nativoGWP-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
.
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