Retbleed: een nieuwe speculatieve uitvoeringsaanval die Intel en AMD treft

Het nieuws brak onlangs date een groep onderzoekers van ETH Zürich heeft een nieuwe aanval geïdentificeerd tot het speculatieve uitvoeringsmechanisme van indirecte sprongen in de CPU, waarmee informatie uit het kernelgeheugen kan worden gehaald of een aanval op het hostsysteem kan worden georganiseerd vanaf virtuele machines.

De kwetsbaarheden hadden de codenaam Retbleed (reeds gecatalogiseerd onder CVE-2022-29900, CVE-2022-29901) en zijn qua aard vergelijkbaar met Spectre-v2-aanvallen.

Het verschil komt neer op het organiseren van de speculatieve uitvoering van willekeurige code door de "ret" (return) instructie te verwerken, die het adres ophaalt om van de stapel te springen, in plaats van indirect te springen met behulp van de "jmp" instructie, waarbij het adres uit het geheugen wordt geladen of een CPU-register.

Over de nieuwe aanval wordt vermeld dat een aanvaller kan voorwaarden scheppen voor een fork-voorspelling onjuist en organiseer een opzettelijke speculatieve sprong naar een codeblok dat niet bedoeld is door de uitvoeringslogica van het programma.

uiteindelijk, de processor zal bepalen dat de vertakkingsvoorspelling niet gerechtvaardigd was en zal de bewerking terugdraaien in zijn oorspronkelijke staat, maar de verwerkte gegevens Tijdens speculatieve executie ze zullen in de cache zitten en micro-architecturale buffers. Als een foutief uitgevoerd blok een geheugentoegang uitvoert, zal de speculatieve uitvoering ervan leiden tot de installatie in de algemene cache en het lezen van gegevens uit het geheugen.

Om te bepalen welke gegevens in de cache achterblijven na de speculatieve uitvoering van bewerkingen, kan de aanvaller methoden gebruiken om de resterende gegevens te bepalen via kanalen van derden, bijvoorbeeld door wijzigingen in de toegangstijd voor gegevens in de cache te analyseren en niet in de cache.

Voor het opzettelijk extraheren van informatie uit gebieden op een ander privilegeniveau (bijvoorbeeld uit het kernelgeheugen), worden "devices" gebruikt: scripts die aanwezig zijn in de kernel, geschikt voor speculatief lezen van gegevens uit het geheugen, afhankelijk van externe omstandigheden kan het worden beïnvloed door een aanvaller.

Ter bescherming tegen klassieke Spectre-klasse-aanvallen, die indirecte en voorwaardelijke vertakkingsinstructies gebruiken, gebruiken de meeste besturingssystemen de "retpoline"-techniek, die is gebaseerd op het vervangen van indirecte vertakkingsbewerkingen door de "ret" -instructie, waarvoor een afzonderlijke voorspelling van de stapelstatus vereist is eenheid wordt gebruikt in processors, gebruikt geen vertakkingsvoorspellingsblok.

Bij de introductie van retpoline in 2018 werd aangenomen dat Spectre-achtige adresmanipulatie onpraktisch was voor speculatieve forking met de "ret" -instructie.

De onderzoekers die de aanvalsmethode hebben ontwikkeld Retbleed toonde de mogelijkheid aan om micro-architecturale omstandigheden te creëren om een ​​speculatieve overgang te initiëren met behulp van de "ret"-instructie en een kant-en-klare toolkit uitgebracht om geschikte instructiereeksen (gadgets) te identificeren om de kwetsbaarheid in de Linux-kernel waarin dergelijke omstandigheden voorkomen, te misbruiken.

In de loop van de studie, een werkende exploit werd voorbereid waarmee op systemen met Intel-CPU's vanuit een onbevoorrecht proces in de gebruikersruimte willekeurige gegevens uit het kernelgeheugen kunnen worden geëxtraheerd met een snelheid van 219 bytes per seconde en met een nauwkeurigheid van 98%.

En de processors AMD, de efficiëntie van de exploit is veel hoger, aangezien de leksnelheid 3,9 KB per seconde is. Als praktisch voorbeeld wordt getoond hoe de voorgestelde exploit te gebruiken om de inhoud van het /etc/shadow-bestand te bepalen. Op systemen met Intel-CPU's werd een aanval om de root-wachtwoordhash te bepalen in 28 minuten uitgevoerd en op systemen met AMD-CPU's in 6 minuten.

De aanval werd bevestigd voor 6-8 generaties Intel-processors die zijn uitgebracht vóór Q2019 1 (inclusief Skylake), en AMD-processors op basis van Zen 1, Zen 2+ en Zen 2021-microarchitecturen die vóór QXNUMX XNUMX zijn uitgebracht. Op nieuwere processormodellen, zoals AMD Zen3 en Intel Alder Lake, evenals ARM-processors, het probleem wordt geblokkeerd door bestaande beschermingsmechanismen. Het gebruik van IBRS-instructies (Indirect Branch Restricted Speculation) helpt bijvoorbeeld te beschermen tegen een aanval.

Een reeks wijzigingen voorbereid voor de Linux-kernel en de Xen-hypervisor, die het probleem programmatisch blokkeren op oudere CPU's. De voorgestelde Linux-kernelpatch verandert 68 bestanden, voegt 1783 regels toe en verwijdert 387 regels.

Helaas brengt bescherming aanzienlijke overheadkosten met zich mee: in teksten die zijn gemaakt op AMD- en Intel-processors, wordt de prestatievermindering geschat op tussen de 14% en 39%. Het heeft meer de voorkeur om bescherming te gebruiken op basis van IBRS-instructies, beschikbaar in nieuwere generaties Intel-CPU's en ondersteund sinds Linux-kernel 4.19.

Tot slot, als u er meer over wilt weten, kunt u de details in de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.