Android 14 môže pridať pokročilú funkciu ochrany pamäte na ochranu vášho zariadenia pred chybami bezpečnosti pamäte

Android 14 môže pridať novú beta funkciu s názvom „pokročilá ochrana pamäte“, ktorá môže chrániť pred chybami bezpečnosti pamäte na kompatibilných zariadeniach.

Bezpečnosť pamäte je v poslednej dobe pre Google hlavnou prioritou, pretože chyby bezpečnosti pamäte sú zvyčajne jedny z najzávažnejších chýb vo vývoji softvéru. V skutočnosti boli zraniteľné miesta v oblasti bezpečnosti pamäte zodpovedné za väčšinu ťažkých Androidov zraniteľnosti do roku 2022, kedy Google napísal významnú časť nového natívneho systému Android kód v Programovací jazyk Rust namiesto C/C++. Google pracuje na podpore ďalších prostriedkov na zmiernenie zraniteľností v oblasti bezpečnosti pamäte v systéme Android, z ktorých jedna sa nazýva označovanie pamäte. Na podporovaných zariadeniach spustených Android 14, môže existovať nové nastavenie „pokročilej ochrany pamäte“, ktoré môže túto funkciu prepínať.

Memory Tagging Extension (MTE) je povinná hardvérová funkcia procesorov Arm v9, ktorá chráni pred pamäťou bezpečnostné chyby (s miernou réžiou prevádzkového výkonu) poskytovaním podrobných informácií o pamäti priestupkov.

Ako vysvetľuje Google„Na vysokej úrovni MTE označí každú alokáciu/dealokáciu pamäte ďalšími metadátami. K pamäťovému miestu priradí značku, ktorú potom možno priradiť k ukazovateľom, ktoré odkazujú na toto pamäťové miesto. Počas behu CPU kontroluje, či sa ukazovateľ a značky metadát zhodujú pri každom načítaní a ukladaní.

Google pracuje na podpore MTE v rámci balíka softvéru Android už niekoľko vydaní. V systéme Android 12 pridal scudo, alokátor haldy systému Android, podporu pre tri prevádzkové režimy MTE na kompatibilných zariadeniach: synchrónny režim, asynchrónny režim a asymetrický režim. Google tiež umožnil povoliť MTE pre systémové procesy v čase zostavovania alebo prostredníctvom systémových vlastností a/alebo premenných prostredia. Aplikácie sa môžu prihlásiť na podporu MTE prostredníctvom android: memtagMode atribút. Keď je MTE povolený pre procesy v systéme Android, celé triedy chýb v oblasti bezpečnosti pamäte, ako je use-after-free a pretečenie vyrovnávacej pamäte, spôsobia zlyhanie namiesto tichého poškodenia pamäte.

In Android 13Google pridal ABI pre používateľský priestor na komunikáciu požadovaného prevádzkového režimu MTE s bootloaderom. Toto by sa dalo použiť na povolenie MTE na kompatibilných zariadeniach, ktoré sa nedodávajú s predvolene povoleným, alebo ho možno použiť na jeho deaktiváciu na kompatibilných zariadeniach, ktoré ho majú povolený predvolená. Nastavenie systémovej vlastnosti ro.arm64.memtag.bootctl_supported na hodnotu „true“ v systéme Android 13 by systému oznámilo, že zavádzač podporuje ABI a tiež spúšťa tlačidlo, ktoré sa zobrazí v ponuke Možnosti vývojára, ktoré používateľovi umožňuje povoliť MTE na ďalšom reštartovať. Toto bolo zamerané na vývojárov, ktorí chceli otestovať správanie svojich aplikácií s povoleným MTE.

V systéme Android 14 však povolenie MTE na kompatibilných zariadeniach už môže vyžadovať ponorenie sa do možností vývojára. Ak zariadenie obsahuje procesor Arm v8.5+ s podporou MTE, implementácia zariadenia podporuje ABI na komunikáciu požadovaného prevádzkového režimu MTE s bootloaderom a nový vlastnosť systému „ro.arm64.memtag.bootctl_settings_toggle“ je nastavená na hodnotu true, potom sa môže zobraziť nová stránka „pokročilá ochrana pamäte“ v časti Nastavenia > Zabezpečenie a súkromie > Ďalšie zabezpečenie nastavenie. Túto stránku je možné spustiť aj prostredníctvom nového ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS zámerná akcia.

Najmä čipset Tensor G2 v Google Pixel 7 séria používa jadrá CPU Arm v8.2, preto nepodporujú MTE. Ak nadchádzajúca séria Google Pixel 8 používa nové jadrá CPU Arm v9 ako mnohé iné vlajkové lode so systémom Android, potom by mali hardvér schopný podporovať MTE. Zostáva však zistiť, či sa táto funkcia „pokročilej ochrany pamäte“ skutočne dostane do stabilného vydania.

Vďaka bezpečnostnému výskumníkovi @flawedworlddev za pomoc pri tomto článku!