„Android 14“ gali pridėti pažangią atminties apsaugos funkciją, kad apsaugotų jūsų įrenginį nuo atminties saugos klaidų

click fraud protection

„Android 14“ gali pridėti naują beta versiją, vadinamą „išplėstinė atminties apsauga“, kuri gali apsaugoti nuo atminties saugos klaidų suderinamuose įrenginiuose.

Atminties sauga pastaruoju metu buvo pagrindinis „Google“ prioritetas, nes atminties saugos klaidos dažniausiai yra vienos rimčiausių programinės įrangos kūrimo klaidų. Tiesą sakant, atminties saugos spragos lėmė daugumą sunkių „Android“. pažeidžiamumų iki 2022 m., kai „Google“ parašė didelę dalį naujosios „Android“ versijos kodas Rust programavimo kalba vietoj C/C++. „Google“ stengėsi palaikyti kitas priemones, skirtas „Android“ atminties saugos pažeidžiamumui sumažinti, vienas iš jų vadinamas atminties žymėjimu. Palaikomuose įrenginiuose, kurie veikia Android 14, gali būti naujas „išplėstinės atminties apsaugos“ nustatymas, kuris gali perjungti šią funkciją.

Atminties žymėjimo plėtinys (MTE) yra privaloma Arm v9 procesorių aparatinės įrangos funkcija, apsauganti nuo atminties. saugos klaidas (su nedideliu vykdymo laiko sąnaudomis), pateikiant išsamią informaciją apie atmintį pažeidimai.

Kaip paaiškina Google, „aukštu lygiu MTE kiekvieną atminties paskirstymą / paskirstymą pažymi papildomais metaduomenimis. Ji priskiria žymą atminties vietai, kurią vėliau galima susieti su rodyklėmis, kurios nurodo tą atminties vietą. Vykdymo metu CPU patikrina, ar žymeklis ir metaduomenų žymos atitinka kiekvieną įkėlimą ir saugyklą.

„Google“ jau keletą leidimų stengiasi palaikyti MTE visame „Android“ programinės įrangos pakete. Android 12 versijoje scudo, Android krūvos skirstytuvas, pridėjo trijų MTE veikimo režimų palaikymą suderinamuose įrenginiuose: sinchroninį režimą, asinchroninį režimą ir asimetrinį režimą. „Google“ taip pat suteikė galimybę įgalinti MTE sistemos procesams kūrimo metu arba per sistemos ypatybes ir (arba) aplinkos kintamuosius. Programos gali pasirinkti palaikyti MTE per Android: memtagMode atributas. Kai MTE įgalinta „Android“ procesams, ištisos atminties saugos klaidų klasės, pvz., naudojimas po laisvo ir buferio perpildymo, sukelia strigtį, o ne tylią atmintį.

Į Android 13, „Google“ pridėjo vartotojo erdvėje ABI, kad įkrovos įkrovikliui praneštų prašomas MTE veikimo režimas. Tai gali būti naudojama norint įgalinti MTE suderinamuose įrenginiuose, kurie nėra pristatomi su įjungta pagal numatytuosius nustatymus, arba jį galima naudoti norint jį išjungti suderinamuose įrenginiuose, kuriuose jis yra įjungtas numatytas. Jei sistemoje „Android 13“ nustatysite ro.arm64.memtag.bootctl_supported sistemos ypatybę į „true“, sistema praneštų, kad įkrovos įkroviklis palaiko ABI ir taip pat suaktyvina mygtuką, kad būtų rodomas kūrėjo parinkčių meniu, kuris leido vartotojui įjungti MTE kitą kartą paleisti iš naujo. Tai buvo skirta kūrėjams, kurie norėjo išbandyti savo programų veikimą su įjungta MTE.

Tačiau naudojant „Android 14“, norint įgalinti MTE suderinamuose įrenginiuose, gali tekti ilgiau pasinerti į kūrėjo parinktis. Jei įrenginyje yra Arm v8.5+ centrinis procesorius su MTE palaikymu, įrenginio diegimas palaiko ABI, reikalingą MTE veikimo režimui perduoti įkrovos įkrovikliui, o naujas sistemos ypatybė „ro.arm64.memtag.bootctl_settings_toggle“ yra nustatyta į „true“, tada „Nustatymai“ > „Sauga ir privatumas“ > „Daugiau saugumo“ gali būti rodomas naujas „paplėstinės atminties apsaugos“ puslapis nustatymus. Šį puslapį taip pat galima paleisti per naują ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS tyčinis veiksmas.

Pažymėtina, kad „Tensor G2“ mikroschemų rinkinys Google Pixel 7 serija naudoja Arm v8.2 procesoriaus branduolius, todėl jie nepalaiko MTE. Jei būsimoje „Google Pixel 8“ serijoje bus naudojami nauji „Arm v9“ procesoriaus branduoliai, kaip ir daugelis kitų pavyzdinių „Android“ įrenginių, jie turėtų aparatinę įrangą, galinčią palaikyti MTE. Tačiau dar reikia pamatyti, ar ši „pažangi atminties apsaugos“ funkcija iš tikrųjų pateks į stabilų leidimą.

Ačiū saugumo tyrinėtojui @flawedworlddev už pagalbą rengiant šį straipsnį!