Android 14 bo morda dodal novo funkcijo beta, imenovano "napredna zaščita pomnilnika", ki lahko ščiti pred napakami pri varnosti pomnilnika v združljivih napravah.
Varnost pomnilnika je bila v zadnjem času glavna prednostna naloga Googla, saj so hrošči pri varnosti pomnilnika ponavadi eni najhujših hrošč v razvoju programske opreme. Pravzaprav so varnostne ranljivosti pomnilnika predstavljale večino hudih Androidov ranljivosti do leta 2022, ko je Google napisal pomemben del novega izvornega Androida kodo v Programski jezik Rust namesto C/C++. Google si prizadeva za podporo drugim načinom za ublažitev varnostnih ranljivosti pomnilnika v sistemu Android, eden izmed njih se imenuje označevanje pomnilnika. Na podprtih napravah teče Android 14, morda obstaja nova nastavitev »napredne zaščite pomnilnika«, ki bi lahko preklopila to funkcijo.
Razširitev označevanja pomnilnika (MTE) je obvezna funkcija strojne opreme procesorjev Arm v9, ki ščiti pred pomnilnikom varnostne hrošče (z majhnimi dodatnimi stroški zmogljivosti izvajanja) z zagotavljanjem podrobnih informacij o pomnilniku kršitve.
Kot pojasnjuje Google, »na visoki ravni MTE označi vsako dodelitev/razveljavitev pomnilnika z dodatnimi metapodatki. Pomnilniški lokaciji dodeli oznako, ki jo je nato mogoče povezati s kazalci, ki se sklicujejo na to pomnilniško lokacijo. Med izvajanjem CPE preveri, ali se kazalec in oznake metapodatkov ujemajo pri vsakem nalaganju in shranjevanju.«Google si že več izdaj prizadeva za podporo MTE v celotnem naboru programske opreme Android. V Androidu 12 je scudo, Androidov razdelilnik kopice, dodal podporo za tri načine delovanja MTE na združljivih napravah: sinhroni način, asinhroni način in asimetrični način. Google je omogočil tudi omogočanje MTE za sistemske procese v času gradnje ali prek lastnosti sistema in/ali spremenljivk okolja. Aplikacije se lahko odločijo za podporo MTE prek android: memtagMode atribut. Ko je MTE omogočen za procese v sistemu Android, celotni razredi varnostnih napak v pomnilniku, kot so uporaba po brezplačni uporabi in prelivi medpomnilnika, namesto tihe poškodbe pomnilnika sprožijo zrušitev.
notri Android 13, je Google dodal ABI za uporabniški prostor za sporočanje zahtevanega načina delovanja MTE zagonskemu nalagalniku. To bi lahko uporabili za omogočanje MTE v združljivih napravah, ki niso dobavljene s privzeto omogočenim, ali pa ga lahko uporabite za onemogočanje v združljivih napravah, ki ga omogočajo privzeto. Nastavitev sistemske lastnosti ro.arm64.memtag.bootctl_supported na »true« v sistemu Android 13 bi sistemu povedala, da bootloader podpira ABI in tudi sproži prikaz gumba v meniju z možnostmi za razvijalce, ki uporabniku omogoča, da omogoči MTE na naslednjem ponovni zagon. To je bilo namenjeno razvijalcem, ki so želeli preizkusiti vedenje svojih aplikacij z omogočenim MTE.
V sistemu Android 14 pa je za omogočanje MTE v združljivih napravah morda dlje treba potopiti v možnosti za razvijalce. Če ima naprava CPE Arm v8.5+ s podporo za MTE, izvedba naprave podpira ABI za sporočanje zahtevanega načina delovanja MTE zagonskemu nalagalniku in novi sistemska lastnost 'ro.arm64.memtag.bootctl_settings_toggle' je nastavljena na true, potem se lahko prikaže nova stran »napredna zaščita pomnilnika« v Nastavitve > Varnost in zasebnost > Več varnosti nastavitve. To stran lahko zaženete tudi prek novega ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS namerno dejanje.
Predvsem nabor čipov Tensor G2 v Google Pixel 7 serija uporablja CPE jedra Arm v8.2, zato ne podpirajo MTE. Če prihajajoča serija Google Pixel 8 uporablja nova procesorska jedra Arm v9, kot to počnejo številne druge vodilne naprave Android, potem bi imele strojno opremo, ki bi lahko podpirala MTE. Še vedno je treba videti, ali bo ta funkcija "napredne zaščite pomnilnika" dejansko prišla v stabilno izdajo.
Hvala varnostnemu raziskovalcu @flawedworlddev za njihovo pomoč pri tem članku!