Zapri oglas

Varnost pomnilnika je v zadnjem času glavna prednostna naloga Googla, saj so napake v pomnilniku med najresnejšimi pri razvoju programske opreme. Pravzaprav so bile ranljivosti na tem področju odgovorne za večino kritičnih ranljivosti Androidu do lanskega leta, ko je Google ustvaril precejšen del nove izvorne kode Androidv programskem jeziku Rust namesto C/C++. Programski velikan si prizadeva podpreti druge načine za ublažitev ranljivosti pomnilnika v svojem sistemu, eden izmed njih se imenuje označevanje pomnilnika. Na podprtih napravah s sistemom Android 14 morda obstaja nova nastavitev, imenovana Napredna zaščita pomnilnika, ki bi lahko preklopila to funkcijo.

Razširitev označevanja pomnilnika (MTE) je obvezna funkcija strojne opreme procesorjev, ki temeljijo na arhitekturi Arm v9, ki zagotavlja podrobno informace o poškodbah pomnilnika in ščiti pred varnostnimi napakami pomnilnika. Kot pojasnjuje Google: »Na visoki ravni MTE vsako dodelitev/razveljavitev pomnilnika označi z dodatnimi metapodatki. Dodeli oznako pomnilniški lokaciji, ki jo je nato mogoče povezati s kazalci, ki se nanašajo na to pomnilniško lokacijo. Med izvajanjem procesor preveri, ali se oznake kazalca in metapodatkov ujemajo vsakič, ko se naloži in shrani."

Google si prizadeva za podporo MTE v celotnem paketu programske opreme Android za dolgo časa. Za Androidu 12 je dodal razdeljevalnik pomnilnika Scudo in podporo za tri načine delovanja MTE na združljivih napravah: sinhroni način, asinhroni način in asimetrični način. Podjetje je omogočilo tudi omogočanje MTE za sistemske procese prek lastnosti sistema in/ali spremenljivk okolja. Aplikacije lahko dodajo podporo MTE prek atributa android:memtagMode. Ko je MTE omogočen za procese v Androidu, bodo celotni razredi varnostnih napak pomnilnika, kot sta Use-After-Free in prelivanje medpomnilnika, povzročili zrušitve namesto tihe poškodbe pomnilnika.

Do Androidu 13 Google je dodal uporabniški aplikacijski binarni vmesnik (ABI) za sporočanje želenega načina delovanja MTE zagonskemu nalagalniku. To lahko uporabite za omogočanje MTE v združljivih napravah, ki niso dobavljene s privzeto omogočenim MTE, ali pa ga lahko uporabite za onemogočanje v združljivih napravah, ki imajo privzeto omogočeno. Nastavitev sistemske lastnosti ro.arm64.memtag.bootctl_supported na "true" v sistemu Android 13 je sistemu povedal, da zagonski nalagalnik podpira ABI in tudi aktiviral gumb v meniju z možnostmi za razvijalce, ki je uporabniku omogočil, da ob naslednjem ponovnem zagonu omogoči MTE.

V Androidu 14 vendar je za omogočanje MTE na združljivih napravah morda že treba potopiti v meni z možnostmi za razvijalce. Če naprava uporablja procesor Arm v8.5+ s podporo za MTE, izvedba naprave podpira ABI za sporočanje želenega načina delovanja MTE zagonskemu nalagalniku, nova sistemska lastnost ro.arm64.memtag.bootctl_settings_toggle pa je nastavljena na »true« , nato novo stran Napredna zaščita pomnilnika v Nastavitve → Varnost in zasebnost → Dodatne varnostne nastavitve. To stran je mogoče zagnati tudi z novim dejanjem ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS.

Zanimivo je, da nabor čipov Tensor G2, ki poganja serijo Google Pixel 7, uporablja procesorska jedra Arm v8.2, kar pomeni, da ne podpira MTE. Če bo prihajajoča serija Google Pixel 8 uporabljala nova jedra Arm v9 kot druge vodilne serije androidtelefonov, potem bi morala njihova strojna oprema podpirati MTE. Vendar pa ostaja vprašanje, ali bo funkcija "napredne zaščite pomnilnika" prišla do stabilne različice Androidv letu 14

Danes najbolj brano

.