Az Android 14 új béta funkcióval egészülhet ki, az úgynevezett „fejlett memóriavédelem”, amely megvédheti a memóriabiztonsági hibákat a kompatibilis eszközökön.
A memória biztonsága az utóbbi időben a Google fő prioritása, mivel a memóriabiztonsági hibák általában a szoftverfejlesztés legsúlyosabb hibái közé tartoznak. Valójában a memóriabiztonsági sebezhetőségek okozták a legtöbb súlyos Androidot sérülékenységek 2022-ig, amikor is a Google megírta az Android új natívjának jelentős részét kód a Rust programozási nyelv C/C++ helyett. A Google más eszközök támogatásán dolgozik az Android memóriabiztonsági sebezhetőségeinek enyhítésére, amelyek közül az egyik a memóriacímkézés. Támogatott eszközökön, amelyek futnak Android 14, lehet, hogy van egy új „speciális memóriavédelem” beállítás, amely átkapcsolhatja ezt a funkciót.
A Memory Tagging Extension (MTE) az Arm v9 CPU-k kötelező hardverfunkciója, amely véd a memória ellen biztonsági hibák (enyhe futásidejű teljesítményköltséggel) a memóriáról szóló részletes információkkal jogsértéseket.
Ahogy a Google elmagyarázza, „magas szinten az MTE minden memóriakiosztást/lefoglalást további metaadatokkal jelöl meg. Egy címkét rendel egy memóriahelyhez, amely azután az adott memóriahelyre hivatkozó mutatókkal társítható. Futás közben a CPU minden betöltéskor és tároláskor ellenőrzi, hogy a mutató és a metaadat-címkék egyeznek-e.A Google már több kiadás óta azon dolgozik, hogy támogassa az MTE-t az Android szoftvercsomagban. Az Android 12-ben a scudo, az Android kupacallokátora három MTE üzemmódot támogat a kompatibilis eszközökön: szinkron mód, aszinkron mód és aszimmetrikus mód. A Google lehetővé tette az MTE engedélyezését is a rendszerfolyamatok számára a felépítési időben vagy a rendszertulajdonságokon és/vagy környezeti változókon keresztül. Az alkalmazások a következőn keresztül jelentkezhetnek be az MTE támogatására android: memtagMode tulajdonság. Ha az MTE engedélyezve van az Android folyamataihoz, a memóriabiztonsági hibák egész osztályai, mint például az utánhasználat és a puffertúlcsordulás, összeomlást váltanak ki a csendes memóriasérülés helyett.
Ban ben Android 13, a Google hozzáadott egy ABI-t a felhasználói területhez, hogy közölje a kért MTE üzemmódot a rendszerbetöltővel. Ezzel engedélyezhető az MTE olyan kompatibilis eszközökön, amelyeken alapértelmezés szerint nincs engedélyezve, vagy másként használható a funkció letiltására azokon a kompatibilis eszközökön, amelyeken engedélyezve van alapértelmezett. A ro.arm64.memtag.bootctl_supported rendszertulajdonság „true” értékre állítása az Android 13 rendszerben azt jelzi a rendszernek, hogy a rendszerbetöltő támogatja az ABI-t, és elindít egy gombot a Fejlesztői beállítások menüben, amely lehetővé tette a felhasználó számára az MTE engedélyezését a következő alkalommal újraindítás. Ez azoknak a fejlesztőknek szólt, akik tesztelni akarták alkalmazásaik működését, ha az MTE engedélyezve van.
Az Android 14-ben azonban az MTE engedélyezéséhez a kompatibilis eszközökön tovább kell merülni a Fejlesztői beállításokban. Ha az eszköz Arm v8.5+ CPU-val rendelkezik MTE-támogatással, akkor az eszközmegvalósítás támogatja az ABI-t a kért MTE üzemmód kommunikálásához a rendszerbetöltővel, és az új A „ro.arm64.memtag.bootctl_settings_toggle” rendszertulajdonság értéke igaz, akkor egy új „speciális memóriavédelem” oldal jelenhet meg a Beállítások > Biztonság és adatvédelem > További biztonság beállítások. Ez az oldal az újon keresztül is elindítható ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS szándékos cselekvés.
Nevezetesen, a Tensor G2 lapkakészlet a Google Pixel 7 sorozat Arm v8.2 CPU magokat használ, ezért nem támogatják az MTE-t. Ha a hamarosan megjelenő Google Pixel 8 sorozat új Arm v9 processzormagokat használ, mint sok más zászlóshajó Android-eszköz, akkor az MTE-t támogató hardverük lenne. Azonban még várni kell, hogy ez a "fejlett memóriavédelem" funkció valóban bekerül-e a stabil kiadásba.
Köszönet a biztonsági kutatónak @flawedworlddev a cikkhez nyújtott segítségükért!