Zavrieť reklamu

Bezpečnosť pamäte je v poslednej dobe pre Google hlavnou prioritou, pretože chyby v nej bývajú vo vývoji softvéru jedny z najzávažnejších. V skutočnosti boli zraniteľnosti v tejto oblasti zodpovedné za väčšinu závažných vulnerabilít Androidu až do minulého roku, kedy Google vytvoril významnú časť nového natívneho kódu Androiduv programovacom jazyku Rust namiesto C/C++. Softvérový obor pracuje na podpore ďalších prostriedkov na zmiernenie zraniteľnosti pamäte vo svojom systéme, z ktorých jeden má názov označovania pamäte. Na podporovaných zariadeniach so systémom Android 14 bude možno existovať nové nastavenie s názvom Advanced memory protection (pokročilá ochrana pamäte), ktoré by mohlo túto funkciu prepínať.

Memory Tagging Extension (MTE) je povinná hardvérová funkcia procesorov založených na architektúre Arm v9, ktorá poskytuje podrobné informace o narušení pamäte a chráni pred chybami v bezpečnosti pamäte. Ako vysvetľuje Google: „MTE na vysokej úrovni označí každú alokáciu/dealokáciu pamäte ďalšími metadátami. Priradí značku k umiestneniu pamäte, ktorá potom môže byť spojená s ukazovateľmi, ktoré na toto pamäťové miesto odkazujú. Počas behu procesor kontroluje, či sa ukazovateľ a značky metadát pri každom načítaní a uložení zhodujú.“

Google pracuje na podpore MTE v rámci celej sady softvéru Android už dlhšiu dobu. Do Androidu 12 pridal alokátor pamäte Scudo a podporu pre tri prevádzkové režimy MTE na kompatibilných zariadeniach: synchrónny režim, asynchrónny režim a asymetrický režim. Spoločnosť tiež umožnila povoliť MTE pre systémové procesy prostredníctvom vlastností systému a/alebo premenných prostredí. Aplikácie môžu pridať podporu MTE prostredníctvom atribútu android:memtagMode. Keď je MTE povolené pre procesy v Androidu, celej triedy chýb v oblasti bezpečnosti pamäte, ako je Use-After-Free a pretečeniu vyrovnávacej pamäte, spôsobí zlyhanie miesto tichého poškodenia pamäte.

Do Androidu 13 Google pridal binárne rozhranie aplikácie (ABI) pre užívateľský priestor, aby komunikoval požadovaný prevádzkový režim MTE do bootloaderu. To je možné použiť na povolenie MTE na kompatibilných zariadeniach, ktoré nie sú štandardne dodávané s povoleným MTE, alebo ich možno použiť na jeho zakázanie na kompatibilných zariadeniach, ktoré ho majú v predvolenom nastavení povolený. Nastavenie systémovej vlastnosti ro.arm64.memtag.bootctl_supported na hodnotu „true“ v systéme Android 13 systému oznamovalo, že bootloader podporuje ABI, a tiež aktivovalo v ponuke možností pre vývojárov tlačidlo, ktoré užívateľovi umožnilo povoliť MTE pri ďalšom reštarte.

V Androidu 14 však povolenie MTE na kompatibilných zariadeniach už môže vyžadovať ponorenie sa do ponuky možností pre vývojárov. Pokiaľ zariadenie používa procesor s architektúrou Arm v8.5+ s podporou MTE, implementácia zariadenia podporuje ABI pre komunikáciu požadovaného prevádzkového režimu MTE do bootloaderu a nová vlastnosť systému ro.arm64.memtag.bootctl_settings_toggle je nastavená na „true“, potom sa môže objaviť nová stránka Advanced memory protection v Nastavenie→Zabezpečenie a súkromie→Ďalšie nastavenia bezpečnosti. Túto stránku je možné spustiť aj prostredníctvom novej akcie ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS.

Nie je bez zaujímavosti, že čipset Tensor G2, ktorý poháňa rad Google Pixel 7, používa procesorové jadrá Arm v8.2, čo znamená, že MTE nepodporuje. Pokiaľ chystaný rad Google Pixel 8 bude používať nové jadrá Arm v9 ako rad iných vlajkových androidových telefónov, potom by ich hardvér mal byť schopný MTE podporovať. Zostáva však otázkou, či sa funkcia „pokročilej ochrany pamäte“ dostane do stabilnej verzie Androidv roku 14

Dnes najčítanejšie

.