Nieuwe aanval op microarchitecturale structuren van Intel- en AMD-processors

Een groep onderzoekers van de Universiteit van Virginia en de Universiteit van Californië presenteerde een nieuw type aanval op de microarchitecturale structuren van Intel- en AMD-processors, geïdentificeerd tijdens reverse engineering van ongedocumenteerde CPU-mogelijkheden. De voorgestelde aanvalsmethode omvat het gebruik van een tussenliggende micro-op-cache in processors, die kan worden gebruikt om informatie op te halen die is verzameld tijdens de speculatieve uitvoering van instructies.

Voor optimalisatiedoeleinden begint de processor enkele instructies uit te voeren in de speculatieve modus, zonder te wachten tot eerdere berekeningen zijn voltooid. Als hij vervolgens vaststelt dat de voorspelling niet gerechtvaardigd was, draait hij de bewerking terug naar de oorspronkelijke staat, maar de gegevens die tijdens de bewerking zijn verwerkt speculatieve uitvoering wordt in een cache gedeponeerd, waarvan de inhoud kan worden bepaald.

Opgemerkt wordt dat de nieuwe methode aanzienlijk beter presteert dan de Spectre v1-aanval, de aanval moeilijk te detecteren maakt en niet wordt geblokkeerd door bestaande methoden voor bescherming tegen zijkanaalaanvallen die zijn ontworpen om kwetsbaarheden te blokkeren die worden veroorzaakt door speculatieve uitvoering van instructies (bijvoorbeeld het gebruik van de LFENCE-instructieblokken lekt in de laatste fasen van speculatieve uitvoering, maar beschermt niet tegen lekkage via microarchitecturale structuren).

De methode is van invloed op Intel- en AMD-processormodellen die sinds 2011 zijn uitgebracht, inclusief de Intel Skylake- en AMD Zen-serie. Moderne CPU's splitsen complexe processorinstructies op in eenvoudigere RISC-achtige microbewerkingen, die in een aparte cache worden opgeslagen. Deze cache verschilt fundamenteel van caches op een hoger niveau, is niet direct toegankelijk en fungeert als een streambuffer voor snelle toegang tot de resultaten van het decoderen van CISC-instructies in RISC-micro-instructies. Onderzoekers hebben echter een manier gevonden om omstandigheden te creëren die ontstaan ​​wanneer cachetoegangsconflicten optreden en iemand in staat te stellen de inhoud van de micro-operatiecache te beoordelen door verschillen in de uitvoeringstijd van bepaalde acties te analyseren.

Nieuwe aanval op microarchitecturale structuren van Intel- en AMD-processors

De micro-operatiecache in Intel-processors is gesegmenteerd in relatie tot CPU-threads (Hyper-Threading), terwijl AMD Zen-processors een gedeelde cache gebruiken, wat voorwaarden schept voor gegevenslekken, niet alleen binnen één uitvoeringsthread, maar ook tussen verschillende threads in SMT (mogelijke gegevenslekken tussen code die op verschillende logische CPU-kernen wordt uitgevoerd).

Onderzoekers hebben een basismethode voorgesteld voor het detecteren van veranderingen in de micro-operatiecache en verschillende aanvalsscenario's die het mogelijk maken verborgen datatransmissiekanalen te creëren en kwetsbare code te gebruiken om vertrouwelijke gegevens te lekken, beide binnen één enkel proces (bijvoorbeeld om procesgegevens te lekken bij het uitvoeren van code van derden in motoren met JIT en in virtuele machines), en tussen de kernel en processen in de gebruikersruimte.

Bij het organiseren van een variant van de Spectre-aanval met behulp van een micro-operatiecache konden onderzoekers prestaties van 965.59 Kbps bereiken met een foutenpercentage van 0.22% en 785.56 Kbps bij gebruik van foutcorrectie, in het geval van het organiseren van een lek binnen hetzelfde adres ruimte- en privilegeniveau. Met een lek dat verschillende privilegeniveaus omvatte (tussen kernel en gebruikersruimte), bedroegen de prestaties 85.2 Kbps met toegevoegde foutcorrectie en 110.96 Kbps met een foutenpercentage van 4%. Bij het aanvallen van AMD Zen-processors, waarbij een lek ontstond tussen verschillende logische CPU-kernen, waren de prestaties 250 Kbps met een foutenpercentage van 5.59% en 168.58 Kbps met foutcorrectie. Vergeleken met de klassieke Spectre v1-methode was de nieuwe aanval 2.6 keer sneller.

Er wordt verwacht dat bescherming tegen een micro-op cache-aanval wijzigingen vereist die de prestaties meer zullen verminderen dan wanneer u Spectre-aanvalsbescherming zou inschakelen. Als optimaal compromis wordt voorgesteld om dergelijke aanvallen niet te blokkeren door caching uit te schakelen, maar door het monitoren van afwijkingen en het identificeren van cachestatussen die typisch zijn voor aanvallen.

Net als bij Spectre-aanvallen vereist het organiseren van een lek uit de kernel of andere processen de uitvoering van een bepaalde reeks opdrachten (gadgets) aan de kant van de slachtofferprocessen, wat leidt tot speculatieve uitvoering van instructies. Er zijn ongeveer 100 soortgelijke gadgets gevonden in de Linux-kernel, die zullen worden verwijderd, maar er worden periodiek oplossingen gevonden voor het genereren ervan, bijvoorbeeld gerelateerd aan het uitvoeren van speciaal ontworpen BPF-programma's in de kernel.

Bron: opennet.ru

Voeg een reactie