LVI är en ny klass av attacker på den spekulativa exekveringsmekanismen i CPU:n

Publicerad information om en ny klass av attacker HVAC (Belastningsvärdeinjektion, CVE-2020-0551) om den spekulativa exekveringsmekanismen i Intel-processorer, som kan användas för att läcka nycklar och hemlig data från Intel SGX-enklaver och andra processer.

En ny klass av attacker är baserad på manipulation av samma mikroarkitektoniska strukturer som används i attacker MDS (Sampling av mikroarkitektonisk data), Spectre och Meltdown. Samtidigt blockeras inte nya attacker av befintliga metoder för skydd mot Meltdown, Spectre, MDS och andra liknande attacker. Effektivt LVI-skydd kräver hårdvaruändringar av CPU:n. När man organiserar skyddet programmatiskt, genom att lägga till LFENCE-instruktionen av kompilatorn efter varje laddningsoperation från minnet och ersätta RET-instruktionen med POP, LFENCE och JMP, registreras för mycket overhead - enligt forskare kommer fullständigt programvaruskydd att leda till en minskning av prestanda med 2-19 gånger.

En del av svårigheten att blockera problemet uppvägs av att attacken för närvarande är mer teoretisk än praktisk (attacken är teoretiskt möjlig, men mycket svår att implementera och endast reproducerbar i syntetiska tester).
Intel tillägnat sig problemet har en måttlig risknivå (5.6 av 10) och släppte uppdatera firmware och SDK för SGX-miljön, där den försökte blockera attacken med en lösning. De föreslagna attackmetoderna är för närvarande endast tillämpliga på Intel-processorer, men möjligheten att anpassa LVI för andra processorer som attacker av Meltdown-klass är tillämpliga på kan inte uteslutas.

Problemet identifierades i april förra året av forskaren Jo Van Bulck från universitetet i Leuven, varefter, med deltagande av 9 forskare från andra universitet, utvecklades fem grundläggande attackmetoder, som var och en möjliggör förekomsten av mer specifika alternativ. Oberoende, i februari i år, forskare från Bitdefender också upptäckt en av LVI-attackvarianterna och rapporterade den till Intel. Attackvarianterna kännetecknas av användningen av olika mikroarkitektoniska strukturer, såsom lagringsbufferten (SB, Store Buffer), fyllningsbuffert (LFB, Line Fill Buffer), FPU-kontextväxlingsbuffert och förstanivåcache (L1D), som tidigare använts vid attacker som t.ex ZombieLoad, RIDL, Nedfall, LazyFP, BÅDA и Härdsmälta.

LVI är en ny klass av attacker på den spekulativa exekveringsmekanismen i CPU:n

Det viktigaste högsta betyg LVI mot MDS-attacker är att MDS manipulerar bestämningen av innehållet i mikroarkitektoniska strukturer som finns kvar i cachen efter spekulativ felhantering eller laddnings- och lagringsoperationer, medan
LVI-attacker gör att angriparens data kan infogas i mikroarkitektoniska strukturer för att påverka efterföljande spekulativ exekvering av offrets kod. Genom att använda dessa manipulationer kan en angripare extrahera innehållet i privata datastrukturer i andra processer när han exekverar viss kod på mål-CPU-kärnan.

LVI är en ny klass av attacker på den spekulativa exekveringsmekanismen i CPU:n

för exploateringsproblem i koden för offerprocessen borde mötas speciella kodsekvenser (prylar) i vilka ett angriparkontrollerat värde laddas, och laddning av detta värde gör att undantag (fel, avbryt eller hjälp) kastas, vilket kasserar resultatet och kör instruktionen på nytt. När ett undantag bearbetas visas ett spekulativt fönster under vilket data som behandlas i gadgeten läcker. Speciellt börjar processorn exekvera en bit kod (gadget) i spekulativt läge, bestämmer sedan att förutsägelsen inte var motiverad och rullar tillbaka operationerna till deras ursprungliga tillstånd, men data som behandlas under spekulativ exekvering deponeras i L1D-cachen och mikroarkitektoniska buffertar och är tillgängliga för hämtning från dem med användning av kända metoder för att bestämma restdata genom tredje parts kanaler.

"Assist"-undantaget, till skillnad från "fel"-undantaget, hanteras internt av processorn utan att anropa mjukvaruhanterare. Assist kan till exempel inträffa när A (Accessed) eller D (Dirty) biten i minnestabellen behöver uppdateras. Den största svårigheten med att utföra en attack mot andra processer är hur man initierar förekomsten av assist genom att manipulera offerprocessen. Det finns för närvarande inga tillförlitliga sätt att göra detta, men det är möjligt att de kommer att hittas i framtiden. Möjligheten att utföra en attack har hittills bara bekräftats för Intel SGX-enklaver, andra scenarier är teoretiska eller reproducerbara under syntetiska förhållanden (kräver att vissa prylar läggs till koden)

LVI är en ny klass av attacker på den spekulativa exekveringsmekanismen i CPU:n

LVI är en ny klass av attacker på den spekulativa exekveringsmekanismen i CPU:n

Möjliga attackvektorer:

  • Dataläckage från kärnstrukturer till process på användarnivå. Linuxkärnans skydd mot Spectre 1-attacker, såväl som SMAP-skyddsmekanismen (Supervisor Mode Access Prevention), minskar sannolikheten för en LVI-attack avsevärt. Att lägga till ytterligare skydd till kärnan kan vara nödvändigt om enklare LVI-attackmetoder identifieras i framtiden.
  • Dataläckage mellan olika processer. Attacken kräver närvaron av vissa bitar av kod i applikationen och definitionen av en metod för att kasta ett undantag i målprocessen.
  • Dataläckage från värdmiljön till gästsystemet. Attacken klassificeras som för komplex och kräver olika svårgenomförda steg och förutsägelser om aktivitet i systemet.
  • Dataläckage mellan processer i olika gästsystem. Attackvektorn är nära att organisera dataläckage mellan olika processer, men kräver dessutom komplexa manipulationer för att kringgå isolering mellan gästsystem.

Publicerad av forskare flera prototyper med en demonstration av principerna för att utföra en attack, men de är ännu inte lämpade för att genomföra riktiga attacker. Det första exemplet låter dig omdirigera spekulativ kodexekvering i offerprocessen, liknande returorienterad programmering (R.O.P.,Returorienterad programmering). I det här exemplet är offret en speciellt förberedd process som innehåller de nödvändiga prylarna (det är svårt att angripa verkliga tredjepartsprocesser). Det andra exemplet tillåter oss att störa beräkningarna under AES-kryptering inuti Intel SGX-enklaven och organisera en dataläcka under spekulativ exekvering av instruktioner för att återställa värdet på nyckeln som används för kryptering.


Källa: opennet.ru

Lägg en kommentar