Android 14 može dodati novu beta značajku pod nazivom "napredna zaštita memorije" koja može zaštititi od grešaka u sigurnosti memorije na kompatibilnim uređajima.
Sigurnost memorije je u posljednje vrijeme glavni prioritet za Google, budući da su sigurnosne greške u memoriji obično neke od najtežih grešaka u razvoju softvera. Zapravo, sigurnosne ranjivosti memorije nekada su predstavljale većinu teškog Androida ranjivosti do 2022., kada je Google napisao značajan dio novog izvornog Androida kod u Rust programski jezik umjesto C/C++. Google radi na podržavanju drugih načina za ublažavanje sigurnosnih ranjivosti memorije u Androidu, od kojih se jedna zove memorijsko označavanje. Na podržanim uređajima radi Android 14, možda postoji nova postavka "napredne zaštite memorije" koja bi mogla isključiti ovu značajku.
Proširenje označavanja memorije (MTE) obvezna je hardverska značajka Arm v9 CPU-a koja štiti od memorije sigurnosne pogreške (s neznatnim dodatnim troškovima izvedbe u vremenu izvođenja) pružanjem detaljnih informacija o memoriji kršenja.
Kako 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 referenciraju tu memorijsku lokaciju. Tijekom izvođenja CPU provjerava podudaraju li se pokazivač i oznake metapodataka pri svakom učitavanju i pohrani.”Google već nekoliko izdanja radi na podršci MTE-a u cijelom paketu softvera za Android. U Androidu 12, scudo, Androidov heap allocator, dodao je podršku za tri načina rada MTE na kompatibilnim uređajima: sinkroni način, asinkroni način i asimetrični način. Google je također omogućio MTE za procese sustava u vrijeme izgradnje ili putem svojstava sustava i/ili varijabli okruženja. Aplikacije se mogu uključiti u podržavanje MTE putem android: memtagMode atribut. Kada je MTE omogućen za procese u Androidu, čitave klase sigurnosnih grešaka u memoriji kao što su korištenje nakon oslobađanja i prekoračenja međuspremnika pokreću rušenje umjesto tihog oštećenja memorije.
U Android 13, Google je dodao ABI za korisnički prostor za priopćavanje traženog MTE načina rada bootloaderu. To se može koristiti za omogućavanje MTE-a na kompatibilnim uređajima koji se ne isporučuju s omogućenim prema zadanim postavkama, ili se alternativno može koristiti za onemogućavanje na kompatibilnim uređajima na kojima je omogućeno zadano. Postavljanje svojstva sustava ro.arm64.memtag.bootctl_supported na "istinito" u Androidu 13 govorilo bi sustavu da bootloader podržava ABI i također pokreće pojavljivanje gumba u izborniku Developer Options koji je omogućio korisniku da omogući MTE na sljedećem ponovno podizanje sustava. Ovo je bilo namijenjeno programerima koji su htjeli testirati ponašanje svojih aplikacija s omogućenim MTE-om.
U Androidu 14, međutim, omogućavanje MTE-a na kompatibilnim uređajima može više zahtijevati uranjanje u opcije za razvojne programere. Ako uređaj ima CPU Arm v8.5+ s MTE podrškom, implementacija uređaja podržava ABI za priopćavanje traženog MTE načina rada bootloaderu i novi svojstvo sustava 'ro.arm64.memtag.bootctl_settings_toggle' postavljeno je na true, tada se može pojaviti nova stranica "napredna zaštita memorije" u Postavkama > Sigurnost i privatnost > Više sigurnosti postavke. Ova stranica se može pokrenuti i kroz novi ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS radnja namjere.
Naime, Tensor G2 čipset u Google Pixel 7 serija koristi Arm v8.2 CPU jezgre, stoga ne podržavaju MTE. Ako nadolazeća Google Pixel 8 serija koristi nove Arm v9 CPU jezgre kao što to čine mnogi drugi vodeći Android uređaji, tada bi imali hardver koji podržava MTE. Ostaje za vidjeti hoće li ova značajka "napredne zaštite memorije" doista ući u stabilno izdanje.
Zahvaljujući istraživaču sigurnosti @flawedworlddev za njihovu pomoć oko ovog članka!