SLAM — een aanval op Intel, AMD en ARM CPU's, die de inhoud van het geheugen kan bepalen

Een groep onderzoekers van de Vrije Universiteit Amsterdam heeft een nieuwe aanvalstechniek gepresenteerd, genaamd SLAM (Spectre Linear Address Masking), die een nieuwe manier biedt om microarchitecturale kwetsbaarheden van het Spectre-type te exploiteren. Hierbij vindt datalek plaats tijdens de vertaling van niet-canonieke adressen, waarbij nieuwe procesorextensies voor het maskeren van lineaire adressen worden gebruikt om controles op canonieke adressen te omzeilen. De onderzoekers hebben een toolkit gepubliceerd met de implementatie van de methode en een demonstratie aangeboden die laat zien hoe gegevens uit de kernel-geheugen kunnen worden geëxtraheerd die overeenkomen met een bepaalde maskering (er werd gedemonstreerd hoe binnen enkele tientallen seconden in Ubuntu een string met de hash van het root-wachtwoord uit het kernel-geheugen kan worden gehaald).

Video afspelen

De aanval kan worden uitgevoerd op systemen met Intel-processoren die de LAM (Linear Address Masking) extensie ondersteunen, AMD-processoren met de UAI (Upper Address Ignore) extensie en ARM-processoren met de TBI (Top Byte Ignore) extensie. Deze extensies maken het mogelijk om een deel van de bits van 64-bits pointers te gebruiken voor het opslaan van metadata die niet gerelateerd is aan adressering (voor gewone programma's is er niet zoveel geheugen nodig dat 64-bits pointers kunnen adresseren, waardoor de hoogste bits kunnen worden gebruikt voor bijvoorbeeld beveiligingsgerelateerde controles). Interessant is dat Intel-, AMD- en ARM-processoren met ondersteuning voor LAM, UAI en TBI nog slechts zijn aangekondigd, maar nog niet massaal worden geproduceerd, wat SLAM de eerste speculatieve aanval op de toekomstige CPU's maakt. De aanval kan ook worden uitgevoerd op oudere AMD Zen+ en Zen 2 CPU's, die kwetsbaar zijn voor de CVE-2020-12965 kwetsbaarheid.

Op basis van de exploitatie van Spectre-kwetsbaarheden vereist de SLAM-aanval de aanwezigheid van specifieke instructievolgordes (gadgets) in de kernel die leidt tot speculatieve uitvoering van instructies. Dergelijke instructies resulteren in speculatieve lezing van gegevens uit het geheugen, afhankelijk van externe omstandigheden waar de aanvaller invloed op kan uitoefenen. Nadat de foutieve voorspelling is vastgesteld, wordt het resultaat van de speculatieve uitvoering afgewezen, maar de verwerkte gegevens blijven in de cache en kunnen later worden opgehaald via analyse via externe kanalen. Voor het extraheren van gegevens die in de cache zijn blijven hangen, gebruiken onderzoekers de Evict+Reload-methode, die is gebaseerd op het creëren van omstandigheden om gegevens uit de cache te verdringen (bijvoorbeeld door activiteit te genereren die de cache gelijkmatig vult met typische inhoud) en het uitvoeren van operaties waarvan de uitvoertijd kan aangeven of gegevens in de CPU-cache aanwezig zijn.

Voor de SLAM-aanval worden gadgets gebruikt op basis van code waarin de door de aanvaller gecontroleerde gegevens (hieronder aangeduid als de variabele ‘secret’) worden gebruikt als een aanwijzer. Bijvoorbeeld: void unmasked_gadget(long **secret) { **secret; }

Het wordt opgemerkt dat dergelijke codepatronen vaak worden gebruikt in programma's; in de Linux-kernel zijn tientallen duizenden van dergelijke gadgets ontdekt, waarvan er minstens enkele honderden geschikt zijn voor gebruik in exploits. Het lek kan worden geblokkeerd door extra instructies aan deze gadgets toe te voegen die de speculatieve uitvoering blokkeren. Intel is van plan een softwarematige methode voor het blokkeren van het lek te bieden voordat ze processors met ondersteuning voor LAM gaan leveren. AMD heeft aangeraden bestaande methoden voor het blokkeren van Spectre v2-klasse aanvallen te gebruiken. De ontwikkelaars van de Linux-kernel hebben besloten om standaard de ondersteuning voor LAM uit te schakelen tot Intel aanbevelingen publiceert voor het blokkeren van de kwetsbaarheid.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster