GWP-ASan e KFENCE

GWP-ASan e KFENCE sono strumenti probabilistici di rilevamento della memoria rispettivamente per lo spazio utente e il kernel. Quando abilitato, un numero limitato di allocazioni viene protetto con pagine di memoria aggiuntive che circondano la memoria allocata. Ciò consente di rilevare buffer overflow e use-after-free con un sovraccarico prestazionale 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 contribuito a identificare numerosi bug della piattaforma e si sono rivelati uno strumento prezioso per migliorare la stabilità e la sicurezza. Incoraggiamo i fornitori ad abilitarli 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 i bug degli utenti finali.

Per ulteriori informazioni consulta i nostri documenti sul debug del codice nativo Android.

Debug del codice della piattaforma Android nativa

GWP-ASan per rilevare bug di sicurezza della memoria dello spazio utente

GWP-ASan è stato introdotto in Android 11 per le allocazioni dell'heap dello spazio utente. Quando GWP-ASan rileva un bug, registra un rapporto di arresto anomalo con Cause: [GWP-ASan]: e termina il processo. Le segnalazioni di bug contengono informazioni aggiuntive sull'allocazione e sulla deallocazione che semplificano l'identificazione della causa principale.

GWP-ASan viene abilitato 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 rilevare 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 rapporto di crash che inizia con BUG: KFENCE, disabilita le pagine di guardia e continua l'esecuzione. Ciò abilita un meccanismo di rilevamento dei bug del kernel che ha un impatto minimo sull'esperienza dell'utente.

Per saperne di più su KFENCE consultare la documentazione disponibile su https://www.kernel.org