Er is een andere kwetsbaarheid geïdentificeerd in AMD-processors die Meltdown-aanvallen mogelijk maakt

Een team van onderzoekers van de Technische Universiteit van Graz (Oostenrijk) en het Helmholtz Center for Information Security (CISPA) heeft een kwetsbaarheid (CVE-2021-26318) in alle AMD-processors onthuld die het mogelijk maakt om Meltdown-klasse side- channel-aanvallen (aanvankelijk werd aangenomen dat AMD-processors niet worden getroffen door de Meltdown-kwetsbaarheid). In praktische termen kan de aanval worden gebruikt om geheime communicatiekanalen tot stand te brengen, de activiteit in de kernel te monitoren of informatie te verkrijgen over adressen in het kernelgeheugen om de KASLR-bescherming te omzeilen en tegelijkertijd kwetsbaarheden in de kernel te exploiteren.

AMD acht het ongepast om speciale maatregelen te nemen om het probleem te blokkeren, omdat de kwetsbaarheid, net als een soortgelijke aanval die in augustus werd ontdekt, in reële omstandigheden van weinig nut is, wordt beperkt door de huidige grenzen van de procesadresruimte en de aanwezigheid vereist van bepaalde kant-en-klare reeksen instructies (gadgets) in de kernel. Om de aanval aan te tonen laadden de onderzoekers hun eigen kernelmodule met een kunstmatig toegevoegd gadget. In reële omstandigheden kunnen aanvallers bijvoorbeeld regelmatig opduikende kwetsbaarheden in het eBPF-subsysteem gebruiken om de noodzakelijke reeksen te vervangen.

Ter bescherming tegen dit nieuwe type aanval raadde AMD aan om veilige coderingstechnieken te gebruiken die Meltdown-aanvallen helpen blokkeren, zoals het gebruik van LFENCE-instructies. De onderzoekers die het probleem hebben geïdentificeerd, bevelen aan om strengere Memory Page Table Isolation (KPTI) in te schakelen, die voorheen alleen werd gebruikt voor Intel-processors.

Tijdens het experiment slaagden de onderzoekers erin om informatie uit de kernel te lekken naar een proces in de gebruikersruimte met een snelheid van 52 bytes per seconde, gegeven de aanwezigheid van een gadget in de kernel die de bewerking “if (offset < data_len) tmp = LUT[gegevens[offset] * 4096];” . Er zijn verschillende methoden voorgesteld voor het ophalen van informatie via zijkanalen die tijdens speculatieve uitvoering in de cache terechtkomen. De eerste methode is gebaseerd op het analyseren van afwijkingen in de uitvoeringstijd van de processorinstructie “PREFETCH” (Prefetch+Time), en de tweede op het veranderen van de verandering in energieverbruik bij het uitvoeren van “PREFETCH” (Prefetch+Power).

Bedenk dat de klassieke Meltdown-kwetsbaarheid is gebaseerd op het feit dat de processor tijdens speculatieve uitvoering van instructies toegang kan krijgen tot een privégegevensgebied en vervolgens het resultaat kan negeren, aangezien de ingestelde privileges dergelijke toegang van het gebruikersproces verbieden. In het programma wordt het speculatief uitgevoerde blok gescheiden van de hoofdcode door een voorwaardelijke vertakking, die in reële omstandigheden altijd wordt geactiveerd, maar vanwege het feit dat de voorwaardelijke instructie een berekende waarde gebruikt die de processor niet kent tijdens de preventieve uitvoering van de code worden alle vertakkingsopties speculatief uitgevoerd.

Omdat speculatief uitgevoerde bewerkingen dezelfde cache gebruiken als normaal uitgevoerde instructies, is het mogelijk om tijdens speculatieve uitvoering markeringen in de cache te plaatsen die de inhoud van individuele bits in een privégeheugengebied weerspiegelen, en vervolgens in normaal uitgevoerde code hun waarde te bepalen door middel van timing. analysetoegang tot gegevens in de cache en niet in de cache.

Bron: opennet.ru

Voeg een reactie