Sårbarhed i Intel-processorer, der fører til datalækage gennem tredjepartskanaler

En gruppe forskere fra kinesiske og amerikanske universiteter har identificeret en ny sårbarhed i Intel-processorer, der fører til tredjepartslækage af information om resultatet af spekulative operationer, som for eksempel kan bruges til at organisere en skjult kommunikationskanal mellem processer eller identificere lækager under Meltdown-angreb.

Essensen af ​​sårbarheden er, at en ændring i EFLAGS-processorregisteret, der sker som følge af spekulativ udførelse af instruktioner, påvirker den efterfølgende eksekveringstid af JCC-instruktioner (hop når specificerede betingelser er opfyldt). Spekulative operationer fuldføres ikke, og resultatet kasseres, men den kasserede EFLAGS-ændring kan bestemmes ved at analysere udførelsestiden for JCC-instruktioner. Sammenligningsoperationer udført i spekulativ tilstand før overgangen, hvis den lykkes, resulterer i en lille forsinkelse, der kan måles og bruges som et tegn for indholdsvalg.

Sårbarhed i Intel-processorer, der fører til datalækage gennem tredjepartskanaler

I modsætning til andre lignende sidekanalangreb analyserer den nye metode ikke ændringer i adgangstid til cachelagrede og ikke-cachelagrede data og kræver ikke et trin til at nulstille EFLAGS-registret til dets oprindelige tilstand, hvilket gør det vanskeligt at opdage og blokere angrebet. Som en demonstration implementerede forskerne en variant af Meltdown-angrebet ved at bruge en ny metode til at få information om resultatet af en spekulativ operation. Funktionen af ​​metoden til at organisere informationslækage under Meltdown-angrebet blev med succes demonstreret på systemer med en Intel Core i7-6700 og i7-7700 CPU i et miljø med Ubuntu 22.04 og Linux-kernen 5.15. På et system med en Intel i9-10980XE CPU blev angrebet kun delvist udført.

Meltdown-sårbarheden er baseret på det faktum, at processoren under spekulativ udførelse af instruktioner kan få adgang til et privat dataområde og derefter kassere resultatet, fordi de indstillede privilegier forbyder sådan adgang fra brugerens proces. I programmet er den spekulativt udførte blok adskilt fra hovedkoden af ​​en betinget gren, som under reelle forhold altid affyres, men på grund af det faktum, at den betingede sætning bruger en beregnet værdi, som processoren ikke kender under den præventive eksekvering af koden udføres alle filialoptioner spekulativt.

I den klassiske version af Meltdown, da den samme cache bruges til spekulativt udførte operationer som til normalt udførte instruktioner, er det muligt under spekulativ eksekvering at sætte markører i cachen, der afspejler indholdet af individuelle bits i et lukket hukommelsesområde, og derefter bestemme deres betydning i normalt udført kode gennem analyse af adgangstiden til cachelagrede og ikke-cachelagrede data. Den nye variant bruger en ændring i EFLAGS-registret som lækagemarkør. I den skjulte kanal-demonstration modulerede en proces de transmitterede data for at skabe betingelser for at ændre indholdet af EFLAGS-registret, og en anden proces analyserede ændringen i eksekveringstiden for JCC-instruktionen for at genskabe de data, der blev transmitteret af den første proces.

Kilde: opennet.ru

Tilføj en kommentar