Android 14 kan legge til en avansert minnebeskyttelsesfunksjon for å beskytte enheten din mot minnesikkerhetsfeil

Android 14 kan legge til en ny betafunksjon kalt "avansert minnebeskyttelse" som kan beskytte mot minnesikkerhetsfeil på kompatible enheter.

Minnesikkerhet har vært en stor prioritet for Google i det siste, ettersom minnesikkerhetsfeil har en tendens til å være noen av de mest alvorlige feilene i programvareutvikling. Faktisk pleide sikkerhetssårbarheter i minnet å stå for et flertall av alvorlige Android sårbarheter frem til 2022, som er da Google skrev en betydelig del av Androids nye innfødte kode i Rust programmeringsspråk i stedet for C/C++. Google har jobbet med å støtte andre måter å redusere sikkerhetssårbarheter for minne i Android, hvorav en kalles minnemerking. På støttede enheter som kjører Android 14, kan det være en ny "avansert minnebeskyttelse"-innstilling som kan slå av denne funksjonen.

Memory Tagging Extension (MTE) er en obligatorisk maskinvarefunksjon på Arm v9 CPUer som beskytter mot minne sikkerhetsfeil (med en liten kjøretidsytelseskostnad) ved å gi detaljert informasjon om minne brudd.

Som Google forklarer, "på et høyt nivå merker MTE hver minneallokering/deallokering med ekstra metadata. Den tilordner en kode til en minneplassering, som deretter kan assosieres med pekere som refererer til den minneplasseringen. Ved kjøring sjekker CPU at pekeren og metadata-taggene samsvarer med hver lasting og lagring.»

Google har jobbet med å støtte MTE i hele Android-programvarestabelen i flere utgivelser nå. I Android 12 har scudo, Androids heap-allokator, lagt til støtte for tre MTE-driftsmoduser på kompatible enheter: synkron modus, asynkron modus og asymmetrisk modus. Google gjorde det også mulig å aktivere MTE for systemprosesser på byggetidspunktet eller gjennom systemegenskaper og/eller miljøvariabler. Apper kan velge å støtte MTE gjennom android: memtagMode Egenskap. Når MTE er aktivert for prosesser i Android, utløser hele klasser av minnesikkerhetsfeil som bruk-etter-fri og bufferoverløp et krasj i stedet for et stille minnekorrupsjon.

I Android 13, la Google til en ABI for brukerområdet for å kommunisere den forespurte MTE-driftsmodusen til oppstartslasteren. Dette kan brukes til å aktivere MTE på kompatible enheter som ikke leveres med den aktivert som standard, eller alternativt kan den brukes til å deaktivere den på kompatible enheter som har den aktivert av misligholde. Å sette ro.arm64.memtag.bootctl_supported systemegenskapen til "true" i Android 13 vil fortelle systemet at oppstartslasteren støtter ABI og utløser også en knapp som vises i Utvikleralternativer-menyen som tillot brukeren å aktivere MTE på neste starte på nytt. Dette var rettet mot utviklere som ønsket å teste oppførselen til appene deres med MTE aktivert.

I Android 14 kan imidlertid aktivering av MTE på kompatible enheter lenger kreve å dykke inn i utvikleralternativer. Hvis enheten har en Arm v8.5+ CPU med MTE-støtte, støtter enhetsimplementeringen ABI for å kommunisere den forespurte MTE-driftsmodusen til oppstartslasteren, og den nye systemegenskapen 'ro.arm64.memtag.bootctl_settings_toggle' er satt til true, så kan en ny "avansert minnebeskyttelse"-side vises i Innstillinger > Sikkerhet og personvern > Mer sikkerhet innstillinger. Denne siden kan også lanseres gjennom den nye ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS intensjonshandling.

Spesielt Tensor G2-brikkesettet i Google Pixel 7 serien bruker Arm v8.2 CPU-kjerner, og støtter derfor ikke MTE. Hvis den kommende Google Pixel 8-serien bruker nye Arm v9 CPU-kjerner som mange andre flaggskip Android-enheter gjør, vil de ha maskinvare som kan støtte MTE. Det gjenstår imidlertid å se om denne "avanserte minnebeskyttelsen"-funksjonen faktisk kommer inn i den stabile utgivelsen.

Takk til sikkerhetsforsker @flawedworlddev for deres hjelp til denne artikkelen!