AMD heeft de potentiële kwetsbaarheid van AMD Zen 3 CPU's voor de Spectre-STL-aanval bevestigd

AMD heeft een rapport gepubliceerd waarin de veiligheid wordt geanalyseerd van de PSF-optimalisatietechnologie (Predictive Store Forwarding) die is geïmplementeerd in processors uit de Zen 3-serie. Het onderzoek bevestigde theoretisch de toepasbaarheid van de Spectre-STL-aanvalsmethode (Spectre-v4), die in mei 2018 werd geïdentificeerd, om PSF-technologie, maar in de praktijk zijn er nog geen codesjablonen gevonden die tot een aanval kunnen leiden en wordt het algehele gevaar als onbeduidend ingeschat.

Laten we niet vergeten dat de Spectre-v4-aanval (Speculative Store Bypass) gebaseerd is op het herstellen van gegevens die zich in de processorcache hebben gevestigd na het negeren van het resultaat van speculatieve uitvoering van bewerkingen bij het verwerken van afwisselende schrijf- en leesbewerkingen met behulp van indirecte adressering. Wanneer een leesbewerking volgt op een schrijfbewerking (bijvoorbeeld mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), is de offset van het leesadres mogelijk al bekend omdat soortgelijke bewerkingen worden uitgevoerd (leesbewerkingen zijn wordt veel vaker uitgevoerd en er kunnen leesbewerkingen worden uitgevoerd vanuit de cache) en de processor kan speculatief leesbewerkingen uitvoeren voordat wordt geschreven, zonder te wachten tot de indirectie-offset van het schrijfproces is berekend.

Met deze functie kan een leesinstructie toegang krijgen tot een oude waarde op een bepaald adres terwijl de opslagbewerking nog niet is voltooid. Als er een voorspellingsfout optreedt, wordt de mislukte speculatieve bewerking weggegooid, maar sporen van de uitvoering ervan blijven in de processorcache achter en kunnen worden opgehaald met een van de methoden voor het bepalen van de inhoud van de cache op basis van een analyse van wijzigingen in de toegang tijd voor gecachte en niet-gecachte gegevens.

Toegevoegd aan AMD Zen 3-processors, optimaliseert PSF STLF (Store-To-Load-Forwarding), dat speculatief leesbewerkingen uitvoert door de relatie tussen lees- en schrijfbewerkingen te voorspellen. Bij het gebruik van klassieke STLF voert de processor een "load" -bewerking uit op de gegevens die rechtstreeks zijn doorgestuurd vanuit het vorige "store" -commando, zonder te wachten tot het resultaat daadwerkelijk naar het geheugen is geschreven, maar ervoor te zorgen dat de adressen die in de "load" worden gebruikt en "store" -opdrachten komen overeen. De PSF-optimalisatie maakt adrescontrole speculatief en voert een "laad"-operatie uit voordat de adresinformatie is berekend als eerder een opslag/laad-paar is uitgevoerd dat een enkel adres manipuleert. Als de voorspelling mislukt, wordt de status teruggedraaid, maar blijven de gegevens in de cache staan.

Een aanval op PSF is alleen mogelijk binnen het raamwerk van één privilegeniveau, bestrijkt alleen de huidige procescontext en wordt geblokkeerd door adresruimte-isolatiemethoden of hardware-sandbox-mechanismen. In dit geval kunnen software-sandboxingmethoden in processen mogelijk door het probleem worden beïnvloed. De aanval vormt een bedreiging voor systemen zoals browsers, virtuele machines voor het uitvoeren van code en JIT's die code van derden binnen één enkel proces uitvoeren (de aanval zou ervoor kunnen zorgen dat niet-vertrouwde code in een sandbox toegang krijgt tot andere procesgegevens).

AMD heeft een aantal methoden geleverd om PSF volledig of selectief uit te schakelen, maar heeft, gezien het verwaarloosbare risico voor de meeste applicaties, aanbevolen deze optimalisatie niet standaard uit te schakelen. Om processen die onbetrouwbare code uitvoeren selectief te beschermen, wordt voorgesteld om PSF uit te schakelen door de MSR-bits “SSBD” en “PSFD” in te stellen, ook voor individuele threads. Er zijn patches voorbereid voor de Linux-kernel met de implementatie van de opdrachtregelopties “psfd” en “nopsfd” die bepalen hoe PSF wordt in- en uitgeschakeld.

Bron: opennet.ru

Voeg een reactie