Wat is MTE (Memory Tagging Extension)?
Een uitbreiding van Arm, toegevoegd in Armv8.5-A. Elke 16 bytes geheugen krijgt een tag van 4 bits, ook in de hoge bits van de pointer wordt een tag van 4 bits gezet, en de CPU controleert bij elke toegang of beide overeenkomen. Gebruik van geheugen nadat het is vrijgegeven en toegang buiten het bereik kunnen met weinig overhead op probabilistische wijze worden gevonden.
Japanse benaming: MTE(メモリタギング拡張)
“MTE (Memory Tagging Extension)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Hardwarebeveiliging: nieuwste ontwikkelingen.
Vakgebied: Hardwarebeveiliging: nieuwste ontwikkelingen
Probabilistische detectie
Omdat een tag 4 bits heeft, zijn er maar 16 waarden, en de kans dat een willekeurig gekozen tag toevallig overeenkomt, is 1/16. Een enkele foute toegang wordt dus met een kans van ongeveer 6% gemist en in ongeveer 94% van de gevallen gevonden. Met strategieën bij het toewijzen, zoals naburige gebieden altijd verschillende tags geven, kan een overloop naar een naburig gebied altijd detecteerbaar worden gemaakt. Voor het opslaan van de tags is extra geheugen nodig van ongeveer 4/128 = 3,125% van de capaciteit.
Veelgestelde vragen
Waar wordt MTE gebruikt?
Halverwege de jaren 2020 ondersteunen sommige SoC's voor smartphones het, en besturingssystemen en geheugenallocators schakelen het in voor controles tijdens de ontwikkeling en om aanvallen te bemoeilijken. Zowel ondersteunende hardware als ondersteunende software is nodig.
Houdt MTE aanvallen tegen die geheugenfouten misbruiken?
Het vangt veel fouten af en maakt aanvallen moeilijker, maar tags kunnen toevallig overeenkomen, en het effect neemt af als tagwaarden worden geraden of uitlekken. Omdat de detectie probabilistisch is, wordt het, waar deterministische garanties nodig zijn, gecombineerd met mechanismen zoals CHERI of met geheugenveilige programmeertalen.