Twee aanvallen op het cachekanaalvoorspellingsmechanisme in AMD-processors

Een groep onderzoekers van de Technische Universiteit van Graz (Oostenrijk), voorheen bekend om het ontwikkelen van aanvalsmethoden MDS, NetSpectre, Gooihamer и ZombieLoad, deed onderzoek naar hardware-optimalisaties specifiek voor AMD-processors en heeft ontwikkeld twee nieuwe methoden voor zijkanaalaanvallen die datalekken manipuleren tijdens de werking van het LXNUMX-cachekanaalvoorspellingsmechanisme van AMD-processors. De technieken kunnen worden gebruikt om de effectiviteit van ASLR-bescherming te verminderen, sleutels in kwetsbare AES-implementaties te herstellen en de effectiviteit van de Spectre-aanval te vergroten.

Er werden problemen vastgesteld bij de implementatie van het kanaalvoorspellingsmechanisme (way-predictor) in de datacache op het eerste niveau (L1D) van de CPU, dat wordt gebruikt om te voorspellen welk cachekanaal een bepaald geheugenadres bevat. De optimalisatie die wordt gebruikt in AMD-processors is gebaseerd op het controleren van μ-tags (μTag). μTag wordt berekend door een specifieke hashfunctie op het virtuele adres toe te passen. Tijdens bedrijf gebruikt de kanaalvoorspellingsengine μTag om het cachekanaal uit de tabel te bepalen. Met μTag kan de processor zich dus beperken tot toegang tot slechts een specifiek kanaal, zonder alle opties te doorzoeken, wat het energieverbruik van de CPU aanzienlijk vermindert.

Twee aanvallen op het cachekanaalvoorspellingsmechanisme in AMD-processors

Tijdens reverse engineering van de implementatie van het kanaalvoorspellingssysteem in verschillende generaties AMD-processors die tussen 2011 en 2019 zijn uitgebracht, werden twee nieuwe zijkanaalaanvaltechnieken geïdentificeerd:

  • Collide+Probe - stelt een aanvaller in staat de geheugentoegang te volgen voor processen die op dezelfde logische CPU-kern draaien. De essentie van de methode is om virtuele adressen te gebruiken die botsingen veroorzaken in de hashfunctie die wordt gebruikt om μTag te berekenen om de geheugentoegang bij te houden. In tegenstelling tot de Flush+Reload- en Prime+Probe-aanvallen die op Intel-processors worden gebruikt, maakt Collide+Probe geen gebruik van gedeeld geheugen en werkt het zonder kennis van fysieke adressen.
  • Load+Reload - hiermee kunt u zeer nauwkeurig geheugentoegangssporen op dezelfde fysieke CPU-kern bepalen. De methode is gebaseerd op het feit dat een fysieke geheugencel slechts één keer in de L1D-cache kan voorkomen. Die. toegang krijgen tot dezelfde geheugencel op een ander virtueel adres zal ervoor zorgen dat de cel uit de L1D-cache wordt verwijderd, waardoor de geheugentoegang kan worden gevolgd. Hoewel de aanval afhankelijk is van gedeeld geheugen, worden de cachelijnen niet leeggemaakt, waardoor stealth-aanvallen mogelijk zijn waarbij gegevens niet uit de cache op het laatste niveau worden verwijderd.

Op basis van de Collide+Probe- en Load+Reload-technieken hebben onderzoekers verschillende zijkanaalaanvalscenario's gedemonstreerd:

  • De mogelijkheid wordt getoond om methoden te gebruiken voor het organiseren van een verborgen indirect communicatiekanaal tussen twee processen, waardoor gegevensoverdracht met snelheden tot 588 kB per seconde mogelijk is.
  • Door botsingen in μTag te gebruiken, was het mogelijk om de entropie voor verschillende varianten van ASLR (Address Space Layout Randomization) te verminderen en ASLR-bescherming in de kernel te omzeilen op een volledig bijgewerkt Linux-systeem. De mogelijkheid wordt getoond om een ​​aanval uit te voeren om de ASLR-entropie te verminderen, zowel van gebruikersapplicaties als van het gebruik van JavaScript-code die wordt uitgevoerd in een sandbox-omgeving en code die wordt uitgevoerd in een andere gastomgeving.

    Twee aanvallen op het cachekanaalvoorspellingsmechanisme in AMD-processors

  • Op basis van de Collide+Probe-methode werd een aanval geïmplementeerd om de encryptiesleutel van een kwetsbare implementatie (gebaseerd op T-tafel) AES-codering.
  • Door de Collide+Probe-methode als data-acquisitiekanaal te gebruiken, kon de Spectre-aanval privégegevens uit de kernel extraheren zonder gebruik te maken van gedeeld geheugen.

Het beveiligingslek doet zich voor op AMD-processors op basis van microarchitecturen
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ en Zen2.
AMD werd op 23 augustus 2019 op de hoogte gebracht van het probleem, maar tot nu toe heeft het rapport niet vrijgegeven met informatie over het blokkeren van de kwetsbaarheid. Volgens de onderzoekers kan het probleem op microcode-updateniveau worden geblokkeerd door MSR-bits te leveren om het kanaalvoorspellingssysteem selectief uit te schakelen, vergelijkbaar met wat Intel deed om het uitschakelen van vertakkingsvoorspellingsmechanismen te controleren.

Twee aanvallen op het cachekanaalvoorspellingsmechanisme in AMD-processors

Bron: opennet.ru

Voeg een reactie