LVI er en ny klasse af angreb på den spekulative udførelsesmekanisme i CPU'en

Udgivet oplysninger om en ny klasse af angreb HVAC (Load Value Injection, CVE-2020-0551) om den spekulative udførelsesmekanisme i Intel CPU'er, som kan bruges til at lække nøgler og hemmelige data fra Intel SGX-enklaver og andre processer.

En ny klasse af angreb er baseret på manipulation af de samme mikroarkitektoniske strukturer, der bruges i angreb MDS (mikroarkitektonisk datasampling), Spectre og nedsmeltning. Samtidig blokeres nye angreb ikke af eksisterende metoder til beskyttelse mod Meltdown, Spectre, MDS og andre lignende angreb. Effektiv LVI-beskyttelse kræver hardwareændringer til CPU'en. Når man organiserer beskyttelse programmatisk, ved at tilføje LFENCE-instruktionen af ​​compileren efter hver indlæsningsoperation fra hukommelsen og erstatte RET-instruktionen med POP, LFENCE og JMP, registreres for meget overhead - ifølge forskere vil fuldstændig softwarebeskyttelse føre til et fald i præstation med 2-19 gange.

En del af vanskeligheden ved at blokere problemet opvejes af, at angrebet i øjeblikket er mere teoretisk end praktisk (angrebet er teoretisk muligt, men meget vanskeligt at implementere og kun reproducerbart i syntetiske tests).
Intel bevilget problemet har et moderat fareniveau (5.6 ud af 10) og udgivet opdatering af firmware og SDK til SGX-miljøet, hvor det forsøgte at blokere angrebet ved hjælp af en løsning. De foreslåede angrebsmetoder er i øjeblikket kun anvendelige til Intel-processorer, men muligheden for at tilpasse LVI til andre processorer, hvor angreb i Meltdown-klassen er anvendelige, kan ikke udelukkes.

Problemet blev identificeret i april sidste år af forsker Jo Van Bulck fra universitetet i Leuven, hvorefter der med deltagelse af 9 forskere fra andre universiteter blev udviklet fem grundlæggende angrebsmetoder, som hver især muliggør eksistensen af ​​mere specifikke optioner. Uafhængigt, i februar i år, forskere fra Bitdefender også opdaget en af ​​LVI-angrebsvarianterne og rapporterede det til Intel. Angrebsvarianterne er kendetegnet ved brugen af ​​forskellige mikroarkitektoniske strukturer, såsom lagerbufferen (SB, Store Buffer), fill buffer (LFB, Line Fill Buffer), FPU kontekst switch buffer og første niveau cache (L1D), tidligere brugt ved angreb som f.eks ZombieLoad, RIDL, Fallout, LazyFP, varsle и Nedsmeltning.

LVI er en ny klasse af angreb på den spekulative udførelsesmekanisme i CPU'en

Det vigtigste hæder LVI mod MDS-angreb er, at MDS manipulerer bestemmelsen af ​​indholdet af mikroarkitektoniske strukturer, der er tilbage i cachen efter spekulativ fejlhåndtering eller indlæsning og lageroperationer, mens
LVI-angreb gør det muligt at indsætte angriberens data i mikroarkitektoniske strukturer for at påvirke den efterfølgende spekulative eksekvering af ofrets kode. Ved at bruge disse manipulationer kan en angriber udtrække indholdet af private datastrukturer i andre processer, når han udfører bestemt kode på mål-CPU-kernen.

LVI er en ny klasse af angreb på den spekulative udførelsesmekanisme i CPU'en

for udnyttelsesproblem i koden for offerprocessen skulle mødes særlige sekvenser af kode (gadgets), hvori en angriberstyret værdi indlæses, og indlæsning af denne værdi forårsager, at undtagelser (fejl, afbrydelse eller assist) bliver kastet, hvilket kasserer resultatet og genudfører instruktionen. Når en undtagelse behandles, vises et spekulativt vindue, hvor de data, der behandles i gadget'en, lækker. Især begynder processoren at udføre et stykke kode (gadget) i spekulativ tilstand, bestemmer derefter, at forudsigelsen ikke var berettiget og ruller operationerne tilbage til deres oprindelige tilstand, men de data, der behandles under spekulativ eksekvering, deponeres i L1D-cachen og mikroarkitektoniske buffere og er tilgængelig til hentning fra dem med anvendelse af kendte metoder til bestemmelse af resterende data gennem tredjepartskanaler.

"Assist"-undtagelsen, i modsætning til "fejl"-undtagelsen, håndteres internt af processoren uden at kalde softwarehandlere. Assist kan for eksempel forekomme, når A (Accessed) eller D (Dirty) bit i hukommelsessidetabellen skal opdateres. Den største vanskelighed ved at udføre et angreb på andre processer er, hvordan man initierer forekomsten af ​​assist ved at manipulere offerprocessen. Der er i øjeblikket ingen pålidelige måder at gøre dette på, men det er muligt, at de vil blive fundet i fremtiden. Muligheden for at udføre et angreb er indtil videre kun blevet bekræftet for Intel SGX-enklaver, andre scenarier er teoretiske eller reproducerbare under syntetiske forhold (kræver tilføjelse af visse gadgets til koden)

LVI er en ny klasse af angreb på den spekulative udførelsesmekanisme i CPU'en

LVI er en ny klasse af angreb på den spekulative udførelsesmekanisme i CPU'en

Mulige angrebsvektorer:

  • Datalækage fra kernestrukturer til proces på brugerniveau. Linux-kernens beskyttelse mod Spectre 1-angreb samt SMAP-beskyttelsesmekanismen (Supervisor Mode Access Prevention) reducerer betydeligt sandsynligheden for et LVI-angreb. Det kan være nødvendigt at tilføje yderligere beskyttelse til kernen, hvis enklere LVI-angrebsmetoder identificeres i fremtiden.
  • Datalækage mellem forskellige processer. Angrebet kræver tilstedeværelsen af ​​visse stykker kode i applikationen og definitionen af ​​en metode til at kaste en undtagelse i målprocessen.
  • Datalækage fra værtsmiljøet til gæstesystemet. Angrebet er klassificeret som for komplekst, hvilket kræver forskellige vanskelige at implementere trin og forudsigelser af aktivitet i systemet.
  • Datalækage mellem processer i forskellige gæstesystemer. Angrebsvektoren er tæt på at organisere datalækage mellem forskellige processer, men kræver desuden komplekse manipulationer for at omgå isolation mellem gæstesystemer.

Udgivet af forskere flere prototyper med en demonstration af principperne for at udføre et angreb, men de er endnu ikke egnede til at udføre reelle angreb. Det første eksempel giver dig mulighed for at omdirigere spekulativ kodeudførelse i offerprocessen, svarende til returorienteret programmering (ROP,Returorienteret programmering). I dette eksempel er offeret en specielt forberedt proces, der indeholder de nødvendige gadgets (det er svært at anvende et angreb på rigtige tredjepartsprocesser). Det andet eksempel giver os mulighed for at interferere med beregningerne under AES-kryptering inde i Intel SGX-enklaven og organisere et datalæk under den spekulative udførelse af instruktioner for at genoprette værdien af ​​nøglen, der bruges til kryptering.


Kilde: opennet.ru

Tilføj en kommentar