Zavřít reklamu

Bezpečnost paměti je v poslední době pro Google hlavní prioritou, protože chyby v ní bývají ve vývoji softwaru jedny z nejzávažnějších. Ve skutečnosti byly zranitelnosti v této oblasti zodpovědné za většinu závažných vulnerabilit Androidu až do minulého roku, kdy Google vytvořil významnou část nového nativního kódu Androidu v programovacím jazyce Rust místo C/C++. Softwarový obr pracuje na podpoře dalších prostředků ke zmírnění zranitelnosti paměti ve svém systému, z nichž jeden má název označování paměti. Na podporovaných zařízeních se systémem Android 14 bude možná existovat nové nastavení s názvem Advanced memory protection (pokročilá ochrana paměti), které by mohlo tuto funkci přepínat.

Memory Tagging Extension (MTE) je povinná hardwarová funkce procesorů založených na architektuře Arm v9, která poskytuje podrobné informace o narušení paměti a chrání před chybami v bezpečnosti paměti. Jak vysvětluje Google: „MTE na vysoké úrovni označí každou alokaci/dealokaci paměti dalšími metadaty. Přiřadí značku k umístění paměti, která poté může být spojena s ukazateli, které na toto paměťové místo odkazují. Za běhu procesor kontroluje, jestli se ukazatel a značky metadat při každém načtení a uložení shodují.“

Google pracuje na podpoře MTE v rámci celé sady softwaru Android již delší dobu. Do Androidu 12 přidal alokátor paměti Scudo a podporu pro tři provozní režimy MTE na kompatibilních zařízeních: synchronní režim, asynchronní režim a asymetrický režim. Společnost též umožnila povolit MTE pro systémové procesy prostřednictvím vlastností systému a/nebo proměnných prostředí. Aplikace mohou přidat podporu MTE prostřednictvím atributu android:memtagMode. Když je MTE povoleno pro procesy v Androidu, celé třídy chyb v oblasti bezpečnosti paměti, jako je Use-After-Free a přetečení vyrovnávací paměti, způsobí selhání místo tichého poškození paměti.

Do Androidu 13 Google přidal binární rozhraní aplikace (ABI) pro uživatelský prostor, aby komunikoval požadovaný provozní režim MTE do bootloaderu. To lze použít k povolení MTE na kompatibilních zařízeních, která nejsou standardně dodávána s povoleným MTE, nebo je lze použít k jeho zakázání na kompatibilních zařízeních, která jej mají ve výchozím nastavení povolený. Nastavení systémové vlastnosti ro.arm64.memtag.bootctl_supported na hodnotu „true“ v systému Android 13 systému sdělovalo, že bootloader podporuje ABI, a také aktivovalo v nabídce možností pro vývojáře tlačítko, jež uživateli umožnilo povolit MTE při příštím restartu.

V Androidu 14 však povolení MTE na kompatibilních zařízeních již může vyžadovat ponoření se do nabídky možností pro vývojáře. Pokud zařízení používá procesor s architekturou Arm v8.5+ s podporou MTE, implementace zařízení podporuje ABI pro komunikaci požadovaného provozního režimu MTE do bootloaderu a nová vlastnost systému ro.arm64.memtag.bootctl_settings_toggle je nastavena na „true“, pak se může objevit nová stránka Advanced memory protection v Nastavení→Zabezpečení a soukromí→Další nastavení bezpečnosti. Tuto stránku lze také spustit prostřednictvím nové akce ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS.

Není bez zajímavosti, že čipset Tensor G2, který pohání řadu Google Pixel 7, používá procesorová jádra Arm v8.2, což znamená, že MTE nepodporuje. Pokud chystaná řada Google Pixel 8 bude používat nová jádra Arm v9 jako řada jiných vlajkových androidových telefonů, pak by jejich hardware měl být schopný MTE podporovat. Zůstává však otázkou, zda se funkce „pokročilé ochrany paměti“ dostane do stabilní verze Androidu 14.

Dnes nejčtenější

.