Android 14 tilføjer muligvis en avanceret hukommelsesbeskyttelsesfunktion for at beskytte din enhed mod hukommelsessikkerhedsfejl

click fraud protection

Android 14 tilføjer muligvis en ny betafunktion kaldet "avanceret hukommelsesbeskyttelse", der kan beskytte mod hukommelsessikkerhedsfejl på kompatible enheder.

Hukommelsessikkerhed har været en stor prioritet for Google på det seneste, da hukommelsessikkerhedsfejl har tendens til at være nogle af de mest alvorlige fejl i softwareudvikling. Faktisk plejede hukommelsessikkerhedssårbarheder at tegne sig for størstedelen af ​​alvorlige Android sårbarheder indtil 2022, hvor Google skrev en betydelig del af Androids nye indfødte kode i Rust programmeringssprog i stedet for C/C++. Google har arbejdet på at understøtte andre midler til at afbøde hukommelsessikkerhedssårbarheder i Android, hvoraf den ene kaldes memory tagging. På understøttede enheder kører Android 14, kan der være en ny "avanceret hukommelsesbeskyttelse"-indstilling, der kunne skifte denne funktion.

Memory Tagging Extension (MTE) er en obligatorisk hardwarefunktion i Arm v9 CPU'er, der beskytter mod hukommelse sikkerhedsfejl (med en lille driftsomkostninger for ydeevne) ved at give detaljerede oplysninger om hukommelse krænkelser.

Som Google forklarer, "på et højt niveau mærker MTE hver hukommelsestildeling/deallokering med yderligere metadata. Den tildeler et mærke til en hukommelsesplacering, som derefter kan associeres med pointere, der refererer til denne hukommelsesplacering. Ved kørsel tjekker CPU'en, at markøren og metadata-taggene matcher ved hver indlæsning og butik."

Google har arbejdet på at understøtte MTE i hele Android-softwarestakken i flere udgivelser nu. I Android 12 tilføjede scudo, Androids heap-allokator, understøttelse af tre MTE-driftstilstande på kompatible enheder: synkron tilstand, asynkron tilstand og asymmetrisk tilstand. Google gjorde det også muligt at aktivere MTE for systemprocesser på byggetidspunktet eller gennem systemegenskaber og/eller miljøvariabler. Applikationer kan tilmelde sig at understøtte MTE gennem android: memtagMode attribut. Når MTE er aktiveret for processer i Android, udløser hele klasser af hukommelsessikkerhedsfejl såsom use-after-free og bufferoverløb et nedbrud i stedet for en tavs hukommelseskorruption.

I Android 13, tilføjede Google en ABI til brugerområdet for at kommunikere den anmodede MTE-driftstilstand til bootloaderen. Dette kunne bruges til at aktivere MTE på kompatible enheder, der ikke leveres med det aktiveret som standard, eller alternativt kan det bruges til at deaktivere det på kompatible enheder, der har det aktiveret af Standard. Indstilling af ro.arm64.memtag.bootctl_supported systemegenskaben til "true" i Android 13 ville fortælle systemet, at bootloaderen understøtter ABI og udløser også en knap, der vises i menuen Udviklerindstillinger, der gjorde det muligt for brugeren at aktivere MTE på den næste genstart. Dette var rettet mod udviklere, der ønskede at teste adfærden af ​​deres apps med MTE aktiveret.

I Android 14 kan aktivering af MTE på kompatible enheder dog kræve, at du dykker ned i Developer Options. Hvis enheden har en Arm v8.5+ CPU med MTE-understøttelse, understøtter enhedsimplementeringen ABI til at kommunikere den anmodede MTE-driftstilstand til bootloaderen og den nye systemegenskaben 'ro.arm64.memtag.bootctl_settings_toggle' er sat til sand, så vises en ny side med "avanceret hukommelsesbeskyttelse" muligvis i Indstillinger > Sikkerhed og privatliv > Mere sikkerhed indstillinger. Denne side kan også lanceres gennem den nye ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS forsætlig handling.

Især Tensor G2-chipsættet i Google Pixel 7 serien bruger Arm v8.2 CPU-kerner, og de understøtter derfor ikke MTE. Hvis den kommende Google Pixel 8-serie bruger nye Arm v9 CPU-kerner, som mange andre flagskibs Android-enheder gør, så ville de have hardware, der er i stand til at understøtte MTE. Det skal dog ses, om denne "avancerede hukommelsesbeskyttelse"-funktion rent faktisk kommer ind i den stabile udgivelse.

Tak til sikkerhedsforsker @flawedworlddev for deres hjælp til denne artikel!