Sigurnost memorije u posljednje vrijeme glavni je prioritet za Google, jer su greške u njoj među najozbiljnijima u razvoju softvera. Zapravo, ranjivosti u ovom području bile su odgovorne za većinu ozbiljnih ranjivosti Androida do prošle godine, kada je Google značajan dio novog izvornog Android koda napisao u programskom jeziku Rust umjesto u C/C++. Softverski div radi na podršci dodatnih načina ublažavanja ranjivosti memorije u svom sustavu, od kojih se jedna naziva označavanje memorije. Na podržanim uređajima s Androidom 14 mogla bi postojati nova postavka pod nazivom Napredna zaštita memorije koja bi mogla uključiti/isključiti ovu značajku.
Proširenje označavanja memorije (MTE) obvezna je hardverska značajka procesora temeljena na arhitekturi Arm v9 koja pruža detaljne informacije o povredama memorije i štiti od sigurnosnih grešaka u memoriji. Kao što Google objašnjava: “Na visokoj razini, MTE označava svaku dodjelu/dealokaciju memorije dodatnim metapodacima. Dodjeljuje oznaku memorijskoj lokaciji, koja se zatim može povezati s pokazivačima koji se odnose na tu memorijsku lokaciju. Tijekom izvođenja, procesor provjerava odgovaraju li oznake pokazivača i metapodataka svaki put kada se učitava i sprema."
Google već neko vrijeme radi na podršci za MTE u Android softverskom paketu. U Androidu 12 dodao je Scudo alokator memorije i podršku za tri MTE načina rada na kompatibilnim uređajima: sinkroni način rada, asinkroni način rada i asimetrični način rada. Tvrtka je također omogućila omogućavanje MTE-a za sistemske procese putem svojstava sustava i/ili varijabli okruženja. Aplikacije mogu dodati MTE podršku putem atributa android:memtagMode. Kada je MTE omogućen za procese u Androidu, cijele klase sigurnosnih pogrešaka memorije, poput Use-After-Free i prelijevanja međuspremnika, srušit će se umjesto da tiho oštete memoriju.
U Androidu 13, Google je dodao binarno sučelje aplikacije u korisničkom prostoru (ABI) kako bi bootloaderu prenio željeni način rada MTE-a. To se može koristiti za omogućavanje MTE-a na kompatibilnim uređajima koji se isporučuju s MTE-om omogućenim prema zadanim postavkama ili se može koristiti za njegovo onemogućavanje na kompatibilnim uređajima na kojima je omogućen prema zadanim postavkama. Postavljanje sistemskog svojstva ro.arm64.memtag.bootctl_supported na "true" u Androidu 13 reklo je sustavu da bootloader podržava ABI, a također je omogućilo gumb u izborniku opcija za razvojne programere koji je korisniku omogućio MTE pri sljedećem ponovnom pokretanju.
V Android 14 međutim, omogućavanje MTE-a na kompatibilnim uređajima već može zahtijevati ulazak u izbornik opcija za razvojne programere. Ako uređaj koristi procesor Arm v8.5+ s MTE podrškom, implementacija uređaja podržava ABI za priopćavanje željenog MTE načina rada bootloaderu, a novo svojstvo sustava ro.arm64.memtag.bootctl_settings_toggle postavljeno je na "true" , zatim nova stranica Napredna zaštita memorije v Postavke→Sigurnost i privatnost→Dodatne sigurnosne postavke. Ova se stranica također može pokrenuti putem nove radnje ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS.
Moglo bi vas zanimati
Zanimljivo je da je Tensor G2 čipset koji pokreće seriju Google Pixel 7, koristi Arm v8.2 procesorske jezgre, što znači da ne podržava MTE. Ako nadolazeća serija Google Pixel 8 će koristiti nove Arm v9 jezgre kao i mnogi drugi vodeći Android telefoni, tada bi njegov hardver trebao moći podržavati MTE. Međutim, ostaje pitanje hoće li značajka "napredne zaštite memorije" stići do stabilne verzije Androida 14.