Android 14 potrebbe aggiungere una nuova funzionalità beta chiamata “protezione avanzata della memoria” in grado di proteggere dai bug di sicurezza della memoria sui dispositivi compatibili.
La sicurezza della memoria è stata una delle principali priorità per Google ultimamente, poiché i bug sulla sicurezza della memoria tendono ad essere alcuni dei bug più gravi nello sviluppo del software. In effetti, le vulnerabilità della sicurezza della memoria rappresentavano la maggior parte dei problemi Android gravi vulnerabilità fino al 2022, ovvero quando Google ha scritto una parte significativa del nuovo sistema nativo di Android codice nel Linguaggio di programmazione Rust invece di C/C++. Google ha lavorato per supportare altri mezzi per mitigare le vulnerabilità della sicurezza della memoria in Android, uno dei quali è chiamato memory tagging. Sui dispositivi supportati in esecuzione Androide 14, potrebbe esserci una nuova impostazione di "protezione avanzata della memoria" che potrebbe attivare questa funzione.
Memory Tagging Extension (MTE) è una funzionalità hardware obbligatoria delle CPU Arm v9 che protegge dalla memoria bug di sicurezza (con un leggero sovraccarico sui costi delle prestazioni di runtime) fornendo informazioni dettagliate sulla memoria violazioni. Come spiega Google, “ad alto livello, MTE contrassegna ogni allocazione/deallocazione di memoria con metadati aggiuntivi. Assegna un tag a una posizione di memoria, che può quindi essere associato a puntatori che fanno riferimento a quella posizione di memoria. In fase di esecuzione la CPU controlla che il puntatore e i tag dei metadati corrispondano su ogni caricamento e memorizzazione.
Google sta lavorando per supportare MTE in tutto lo stack software Android ormai da diverse versioni. In Android 12, scudo, l'allocatore heap di Android, ha aggiunto il supporto per tre modalità operative MTE sui dispositivi compatibili: modalità sincrona, modalità asincrona e modalità asimmetrica. Google ha inoltre reso possibile abilitare MTE per i processi di sistema in fase di creazione o tramite proprietà di sistema e/o variabili di ambiente. Le applicazioni possono aderire al supporto MTE tramite Android: memtagMode attributo. Quando MTE è abilitato per i processi in Android, intere classi di bug di sicurezza della memoria come use-after-free e buffer overflow attivano un arresto anomalo invece di un danneggiamento silenzioso della memoria.
In Androide 13, Google ha aggiunto un'ABI per lo spazio utente per comunicare al bootloader la modalità operativa MTE richiesta. Questo potrebbe essere utilizzato per abilitare MTE su dispositivi compatibili che non vengono forniti con esso abilitato per impostazione predefinita, o in alternativa potrebbe essere utilizzato per disabilitarlo sui dispositivi compatibili che lo hanno abilitato predefinito. L'impostazione della proprietà di sistema ro.arm64.memtag.bootctl_supported su "true" in Android 13 direbbe al sistema che il bootloader supporta l'ABI e attiva anche la visualizzazione di un pulsante nel menu Opzioni sviluppatore che consente all'utente di abilitare MTE in seguito riavviare. Questo era rivolto agli sviluppatori che volevano testare il comportamento delle loro app con MTE abilitato.
In Android 14, tuttavia, per abilitare MTE sui dispositivi compatibili potrebbe essere più necessario immergersi nelle Opzioni sviluppatore. Se il dispositivo è dotato di CPU Arm v8.5+ con supporto MTE, l'implementazione del dispositivo supporta l'ABI per comunicare la modalità operativa MTE richiesta al bootloader e la nuova la proprietà di sistema "ro.arm64.memtag.bootctl_settings_toggle" è impostata su true, una nuova pagina "protezione avanzata della memoria" potrebbe essere visualizzata in Impostazioni > Sicurezza e privacy > Maggiore sicurezza impostazioni. Questa pagina può essere lanciata anche attraverso il nuovo ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS azione intenzionale.
In particolare, il chipset Tensor G2 nel GooglePixel7 utilizza core CPU Arm v8.2, quindi non supporta MTE. Se la prossima serie Google Pixel 8 utilizzasse i nuovi core CPU Arm v9 come fanno molti altri dispositivi Android di punta, allora avrebbero un hardware in grado di supportare MTE. Resta da vedere se questa funzionalità di "protezione avanzata della memoria" sarà effettivamente inclusa nella versione stabile.
Grazie al ricercatore di sicurezza @flawedworlddev per il loro aiuto su questo articolo!