LVI is een nieuwe klasse aanvallen op het speculatieve uitvoeringsmechanisme in de CPU

Gepubliceerd informatie over een nieuwe klasse aanvallen HVAC (Laadwaarde-injectie, CVE-2020-0551) over het speculatieve uitvoeringsmechanisme in Intel CPU's, dat kan worden gebruikt om sleutels en geheime gegevens uit Intel SGX-enclaves en andere processen te lekken.

Een nieuwe klasse aanvallen is gebaseerd op manipulatie van dezelfde microarchitecturale structuren die bij aanvallen worden gebruikt MDS (Microarchitecturale gegevensbemonstering), Spectre en Meltdown. Tegelijkertijd worden nieuwe aanvallen niet geblokkeerd door bestaande beschermingsmethoden tegen Meltdown, Spectre, MDS en andere soortgelijke aanvallen. Effectieve LVI-bescherming vereist hardwarewijzigingen aan de CPU. Wanneer de bescherming programmatisch wordt georganiseerd, door de LFENCE-instructie door de compiler toe te voegen na elke laadbewerking uit het geheugen en de RET-instructie te vervangen door POP, LFENCE en JMP, wordt er te veel overhead geregistreerd - volgens onderzoekers zal volledige softwarebescherming leiden tot een afname van de beveiliging. prestaties door 2-19 keer.

Een deel van de moeilijkheid om het probleem te blokkeren wordt gecompenseerd door het feit dat de aanval momenteel meer theoretisch dan praktisch is (de aanval is theoretisch mogelijk, maar zeer moeilijk te implementeren en alleen reproduceerbaar in synthetische tests).
Intel toegeëigend het probleem kent een gematigd risiconiveau (5.6 op 10) en vrijgegeven het updaten van de firmware en SDK voor de SGX-omgeving, waarin het de aanval probeerde te blokkeren met behulp van een tijdelijke oplossing. De voorgestelde aanvalsmethoden zijn momenteel alleen toepasbaar op Intel-processors, maar de mogelijkheid om LVI aan te passen voor andere processors waarop Meltdown-class-aanvallen van toepassing zijn, kan niet worden uitgesloten.

Het probleem werd afgelopen april geïdentificeerd door onderzoeker Jo Van Bulck van de Universiteit van Leuven, waarna, met deelname van 9 onderzoekers van andere universiteiten, vijf basisaanvalsmethoden werden ontwikkeld, die elk het bestaan ​​van meer specifieke aanvalsmethoden mogelijk maken. opties. Onafhankelijk hebben onderzoekers van Bitdefender in februari van dit jaar ook onderzoek gedaan ontdekt een van de LVI-aanvalsvarianten en rapporteerde dit aan Intel. De aanvalsvarianten onderscheiden zich door het gebruik van verschillende microarchitecturale structuren, zoals de opslagbuffer (SB, Store Buffer), vulbuffer (LFB, Line Fill Buffer), FPU-contextschakelbuffer en first-level cache (L1D), eerder gebruikt bij aanvallen zoals ZombieLoad, Rýdl, Fallout, LuiFP, voorbeduiden и Kernsmelting.

LVI is een nieuwe klasse aanvallen op het speculatieve uitvoeringsmechanisme in de CPU

De belangrijkste eer De LVI tegen MDS-aanvallen is dat MDS de bepaling manipuleert van de inhoud van microarchitecturale structuren die in de cache achterblijven na speculatieve foutafhandeling of laad- en opslagbewerkingen, terwijl
Met LVI-aanvallen kunnen de gegevens van de aanvaller in microarchitecturale structuren worden ingevoegd om de daaropvolgende speculatieve uitvoering van de code van het slachtoffer te beïnvloeden. Met behulp van deze manipulaties kan een aanvaller de inhoud van privégegevensstructuren in andere processen extraheren bij het uitvoeren van bepaalde code op de doel-CPU-kern.

LVI is een nieuwe klasse aanvallen op het speculatieve uitvoeringsmechanisme in de CPU

Voor exploitatie probleem in de code van het slachtofferproces zouden moeten ontmoeten speciale reeksen code (gadgets) waarin een door de aanvaller bestuurde waarde wordt geladen, en het laden van deze waarde zorgt ervoor dat er uitzonderingen (fout, abort of assist) worden gegenereerd, waardoor het resultaat wordt genegeerd en de instructie opnieuw wordt uitgevoerd. Wanneer een uitzondering wordt verwerkt, verschijnt er een speculatief venster waarin de in de gadget verwerkte gegevens lekken. In het bijzonder begint de processor een stukje code (gadget) uit te voeren in de speculatieve modus, stelt vervolgens vast dat de voorspelling niet gerechtvaardigd was en draait de bewerkingen terug naar hun oorspronkelijke staat, maar de gegevens die tijdens de speculatieve uitvoering worden verwerkt, worden in de L1D-cache opgeslagen. en microarchitectuurbuffers en kan daaruit worden opgehaald met behulp van bekende methoden voor het bepalen van resterende gegevens via kanalen van derden.

De "assist"-uitzondering wordt, in tegenstelling tot de "fault"-uitzondering, intern afgehandeld door de processor zonder softwarehandlers aan te roepen. Assistentie kan bijvoorbeeld optreden wanneer de A (Accessed) of D (Dirty) bit in de geheugenpaginatabel moet worden bijgewerkt. De grootste moeilijkheid bij het uitvoeren van een aanval op andere processen is hoe het optreden van hulp kan worden geïnitieerd door het slachtofferproces te manipuleren. Er zijn momenteel geen betrouwbare manieren om dit te doen, maar het is mogelijk dat ze in de toekomst zullen worden gevonden. De mogelijkheid om een ​​aanval uit te voeren is tot nu toe alleen bevestigd voor Intel SGX-enclaves, andere scenario's zijn theoretisch of reproduceerbaar in synthetische omstandigheden (vereist het toevoegen van bepaalde gadgets aan de code)

LVI is een nieuwe klasse aanvallen op het speculatieve uitvoeringsmechanisme in de CPU

LVI is een nieuwe klasse aanvallen op het speculatieve uitvoeringsmechanisme in de CPU

Mogelijke aanvalsvectoren:

  • Gegevenslekken uit kernelstructuren naar processen op gebruikersniveau. De bescherming van de Linux-kernel tegen Spectre 1-aanvallen, evenals het SMAP-beschermingsmechanisme (Supervisor Mode Access Prevention), verminderen de kans op een LVI-aanval aanzienlijk. Het toevoegen van extra bescherming aan de kernel kan nodig zijn als er in de toekomst eenvoudiger LVI-aanvalsmethoden worden geïdentificeerd.
  • Datalekken tussen verschillende processen. De aanval vereist de aanwezigheid van bepaalde stukjes code in de applicatie en de definitie van een methode voor het genereren van een uitzondering in het doelproces.
  • Gegevenslekken van de hostomgeving naar het gastsysteem. De aanval wordt geclassificeerd als te complex en vereist verschillende moeilijk te implementeren stappen en voorspellingen van activiteit in het systeem.
  • Gegevenslekken tussen processen in verschillende gastsystemen. De aanvalsvector is bijna het organiseren van gegevenslekken tussen verschillende processen, maar vereist bovendien complexe manipulaties om de isolatie tussen gastsystemen te omzeilen.

Gepubliceerd door onderzoekers verscheidene prototypen met een demonstratie van de principes van het uitvoeren van een aanval, maar ze zijn nog niet geschikt voor het uitvoeren van echte aanvallen. Met het eerste voorbeeld kunt u de uitvoering van speculatieve code in het slachtofferproces omleiden, vergelijkbaar met retourgeoriënteerd programmeren (ROP,Retourgerichte programmering). In dit voorbeeld is het slachtoffer een speciaal voorbereid proces dat de nodige snufjes bevat (een aanval uitvoeren op echte processen van derden is moeilijk). Met het tweede voorbeeld kunnen we ons bemoeien met de berekeningen tijdens AES-codering binnen de Intel SGX-enclave en een datalek organiseren tijdens de speculatieve uitvoering van instructies om de waarde van de sleutel die voor de codering wordt gebruikt, te herstellen.


Bron: opennet.ru

Voeg een reactie