Een groep onderzoekers van de Seoul National University en Samsung heeft een aanvalstechniek ontwikkeld voor ARM-processors, gecodeerd als TikTag, die kan worden gebruikt om de hardwarebeveiligingsmechanismen van MemTag (MTE, Memory Tagging Extension) te omzeilen, zoals aanwezig in chips op basis van de ARMv8.5-A-architectuur. De aanval stelt in staat om de inhoud van TikTag-tags voor willekeurige geheugensystemen te bepalen vanwege gegevenslekken die ontstaan door speculatieve uitvoering van CPU-instructies.
De MemTag-technologie maakt het mogelijk om tags aan geheugengebieden te koppelen en zorgt voor het controleren van de correctheid van pointergebruik om de exploitatie van kwetsbaarheden te blokkeren die worden veroorzaakt door toegang tot al vrijgegeven geheugengebieden, buffer-overflows en toegang voordat initialisatie plaatsvindt. Bij het gebruik van MemTag wordt voor elke 16 bytes fysieke geheugen een 4-bit tag aangemaakt, die fungeert als een sleutel voor toegang tot dat geheugen. De tag kan door een applicatie worden gegenereerd voor een toegewezen geheugengebied met behulp van speciale CPU-instructies, en vervolgens worden opgeslagen in de bovenste ongebruikte bits van de pointer. Bij toegang tot geheugen met behulp van een getagde pointer, controleert de processor of de tag die aan de pointer is gekoppeld, overeenkomt met de tags die aan geheugengebieden zijn gekoppeld, en staat alleen toegang toe als de tags overeenkomen.
De voorgestelde aanvalsmethode stelt in staat om de aan geheugengebieden gekoppelde tags te bepalen en de bescherming van MemTag te omzeilen. Onderzoekers hebben aangetoond dat de TikTag-aanval kan worden uitgevoerd door kwetsbaarheden in de Linux-kernel en de Chrome-browser te exploiteren, met gebruik van bestaande instructiesequenties (gadget) in deze producten die leiden tot speculatieve uitvoering van code. Dergelijke gadgets, wanneer uitgevoerd in de speculatieve modus van code die met pointers werkt, roepen het lezen van MemTag-metadata op, afhankelijk van externe omstandigheden die door de aanvaller kunnen worden beĆÆnvloed. Na het bepalen van de foutieve voorspelling worden de resultaten van de speculatieve uitvoering verworpen, maar de verkregen gegevens blijven in de cache en kunnen vervolgens worden opgehaald via zijkanalen. De kans op succesvol omzeilen van de MemTag-beveiliging is in de uitgevoerde tests geschat op 95% bij aanvallen die ongeveer 4 seconden duren.

Er zijn twee soorten gadgets ontdekt die leiden tot een lek van informatie over MemTag-tags. In het eerste geval ontstaat speculatieve uitvoering door een onjuiste sprongvoorspelling, en de voorwaarden voor het uitvoeren van de gadget kunnen worden gecreƫerd door manipulaties met systeemaanroepen. In het tweede geval
ontstaat speculatieve uitvoering door een fout in de voorspelling van de relatie tussen lees- en schrijfbewerkingen bij het gebruik van STLF (Store-To-Load-Forwarding) optimalisatie, wat het mogelijk maakt om de tag te raden door de status van de cache te evalueren (als de tag overeenkomt, wordt de waarde rechtstreeks doorgestuurd van de vorige 'store' opdracht naar de 'load' operatie en verandert het de status van de cache). De eerste soort gadgets is geschikt voor een aanval op de Linux-kernel, terwijl de tweede gericht is op de JavaScript-engine V8, die wordt gebruikt in browsers op basis van Chromium. Een prototype van gereedschap voor het uitvoeren van de aanval is gepubliceerd op GitHub.


Het bedrijf ARM heeft de mogelijkheid van een aanval op systemen met de Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 en Cortex-A720-processors bevestigd, maar is niet van plan om wijzigingen aan de CPU aan te brengen om het probleem te blokkeren, aangezien de MemTag-architectuur impliceert dat tags geen geheime gegevens zijn voor applicaties. In de codebase van Chromium blijft het probleem ook onopgelost, omdat de bescherming op basis van MemTag momenteel niet standaard in de browser Chrome wordt toegepast. Het team dat verantwoordelijk is voor de beveiliging van het Android-platform heeft erkend dat er een aanval mogelijk is op Pixel 8-apparaten waarop de MemTag-beveiliging wordt toegepast, heeft patches toegevoegd om lekken te blokkeren en heeft zijn bereidheid uitgesproken om een beloning te betalen voor de gevonden kwetsbaarheid.
Als omzeilingstechnieken voor het blokkeren van de aanval stellen onderzoekers voor om de instructies sb of isb te gebruiken om speculatieve uitvoering tijdens kritieke geheugenoperaties te verbieden, of om tussen takinstructies en geheugenopdrachten in te voegen door opvulling met andere instructies.
Bron: opennet.ru
