LVI er en ny klasse av angrep på den spekulative utførelsesmekanismen i CPU

Publisert informasjon om en ny klasse av angrep HVAC (Belastningsverdiinjeksjon, CVE-2020-0551) på den spekulative utførelsesmekanismen i Intel CPUer, som kan brukes til å lekke nøkler og hemmelige data fra Intel SGX-enklaver og andre prosesser.

En ny klasse av angrep er basert på manipulering av de samme mikroarkitektoniske strukturene som brukes i angrep MDS (Sampling av mikroarkitektonisk data), Spectre og Meltdown. Samtidig blokkeres ikke nye angrep av eksisterende metoder for beskyttelse mot Meltdown, Spectre, MDS og andre lignende angrep. Effektiv LVI-beskyttelse krever maskinvareendringer i CPU. Når du organiserer beskyttelse programmatisk, ved å legge til LFENCE-instruksjonen av kompilatoren etter hver lasteoperasjon fra minnet og erstatte RET-instruksjonen med POP, LFENCE og JMP, registreres for mye overhead - ifølge forskere vil fullstendig programvarebeskyttelse føre til en reduksjon i ytelse med 2-19 ganger.

En del av vanskeligheten med å blokkere problemet oppveies av at angrepet for tiden er mer teoretisk enn praktisk (angrepet er teoretisk mulig, men svært vanskelig å implementere og kun reproduserbart i syntetiske tester).
Intel bevilget problemet har et moderat farenivå (5.6 av 10) og utgitt oppdatering av fastvaren og SDK for SGX-miljøet, der den forsøkte å blokkere angrepet ved å bruke en løsning. De foreslåtte angrepsmetodene er foreløpig kun gjeldende for Intel-prosessorer, men muligheten for å tilpasse LVI for andre prosessorer som Meltdown-klasse-angrep kan brukes på kan ikke utelukkes.

Problemet ble identifisert i april i fjor av forsker Jo Van Bulck fra Universitetet i Leuven, hvoretter det, med deltakelse av 9 forskere fra andre universiteter, ble utviklet fem grunnleggende angrepsmetoder, som hver tillater eksistensen av mer spesifikke opsjoner. Uavhengig, i februar i år, også forskere fra Bitdefender oppdaget en av LVI-angrepsvariantene og rapporterte den til Intel. Angrepsvariantene utmerker seg ved bruk av forskjellige mikroarkitektoniske strukturer, slik som lagringsbuffer (SB, Store Buffer), fyllebuffer (LFB, Line Fill Buffer), FPU kontekstsvitsjbuffer og første-nivå cache (L1D), tidligere brukt ved angrep som f.eks ZombieLoad, RIDL, Fallout, LazyFP, Forskygge и Meltdown.

LVI er en ny klasse av angrep på den spekulative utførelsesmekanismen i CPU

Hoved utmerkelser LVI mot MDS-angrep er at MDS manipulerer bestemmelsen av innholdet i mikroarkitektoniske strukturer som er igjen i hurtigbufferen etter spekulativ feilhåndtering eller last- og lagringsoperasjoner, mens
LVI-angrep gjør at angriperens data kan settes inn i mikroarkitektoniske strukturer for å påvirke påfølgende spekulativ utførelse av offerets kode. Ved å bruke disse manipulasjonene kan en angriper trekke ut innholdet i private datastrukturer i andre prosesser når han utfører bestemt kode på mål-CPU-kjernen.

LVI er en ny klasse av angrep på den spekulative utførelsesmekanismen i CPU

For utnyttelsesproblem i koden for offerprosessen bør møtes spesielle sekvenser av kode (gadgets) der en angriperkontrollert verdi lastes inn, og lasting av denne verdien fører til at unntak (feil, avbryt eller assist) blir kastet, forkaster resultatet og utførelse av instruksjonen på nytt. Når et unntak behandles, vises et spekulativt vindu der dataene som behandles i gadgeten lekker. Spesielt begynner prosessoren å kjøre et stykke kode (gadget) i spekulativ modus, bestemmer deretter at prediksjonen ikke var rettferdiggjort og ruller tilbake operasjonene til sin opprinnelige tilstand, men dataene som behandles under spekulativ utførelse blir deponert i L1D-bufferen og mikroarkitektoniske buffere og er tilgjengelig for uthenting fra dem ved bruk av kjente metoder for å bestemme gjenværende data gjennom tredjepartskanaler.

"Assist"-unntaket, i motsetning til "feil"-unntaket, håndteres internt av prosessoren uten å ringe programvarebehandlere. Assist kan for eksempel oppstå når A (Accessed) eller D (Dirty) biten i minnesidetabellen må oppdateres. Den største vanskeligheten med å utføre et angrep på andre prosesser er hvordan man kan initiere forekomsten av assist ved å manipulere offerprosessen. Det er foreløpig ingen pålitelige måter å gjøre dette på, men det er mulig at de vil bli funnet i fremtiden. Muligheten for å utføre et angrep har så langt blitt bekreftet kun for Intel SGX-enklaver, andre scenarier er teoretiske eller reproduserbare under syntetiske forhold (krever å legge til visse gadgets i koden)

LVI er en ny klasse av angrep på den spekulative utførelsesmekanismen i CPU

LVI er en ny klasse av angrep på den spekulative utførelsesmekanismen i CPU

Mulige angrepsvektorer:

  • Datalekkasje fra kjernestrukturer til prosess på brukernivå. Linux-kjernens beskyttelse mot Spectre 1-angrep, samt SMAP-beskyttelsesmekanismen (Supervisor Mode Access Prevention), reduserer sannsynligheten for et LVI-angrep betydelig. Det kan være nødvendig å legge til ekstra beskyttelse til kjernen hvis enklere LVI-angrepsmetoder blir identifisert i fremtiden.
  • Datalekkasje mellom ulike prosesser. Angrepet krever tilstedeværelse av visse kodebiter i applikasjonen og definisjon av en metode for å kaste et unntak i målprosessen.
  • Datalekkasje fra vertsmiljøet til gjestesystemet. Angrepet er klassifisert som for komplekst, og krever ulike trinn som er vanskelige å implementere og spådommer om aktivitet i systemet.
  • Datalekkasje mellom prosesser i ulike gjestesystemer. Angrepsvektoren er nær ved å organisere datalekkasje mellom ulike prosesser, men krever i tillegg komplekse manipulasjoner for å omgå isolasjon mellom gjestesystemer.

Utgitt av forskere noen prototyper med en demonstrasjon av prinsippene for å gjennomføre et angrep, men de er ennå ikke egnet til å gjennomføre reelle angrep. Det første eksemplet lar deg omdirigere kjøring av spekulativ kode i offerprosessen, lik returorientert programmering (ROP,Returorientert programmering). I dette eksemplet er offeret en spesielt forberedt prosess som inneholder de nødvendige gadgetene (det er vanskelig å bruke et angrep på ekte tredjepartsprosesser). Det andre eksemplet lar oss forstyrre beregningene under AES-kryptering inne i Intel SGX-enklaven og organisere en datalekkasje under spekulativ utførelse av instruksjoner for å gjenopprette verdien av nøkkelen som brukes til kryptering.


Kilde: opennet.ru

Legg til en kommentar