Sikkerhedsforskere har opdaget et nyt spekulativt eksekveringsangreb kaldet Retbleed, der påvirker processorer fra både Intel og AMD og kan bruges til at udtrække følsomme oplysninger.
Retbleed fokuserer på returinstruktioner, som er en del af retpoline software mitigation mod den spekulative eksekveringsklasse af angreb, der blev kendt fra begyndelsen af 2018, med Spectre.
Problemet påvirker Intel Core CPU’er fra generation 6 (Skylake – 2015) til 8 (Coffee Lake – 2017) og AMD Zen 1, Zen 1+, Zen 2 udgivet mellem 2017 og 2019.
Udnyttelse af returinstruktioner
Spekulativ udførelse er en optimeringsteknik, der gør det muligt for CPU’er at udføre beregninger, før de ved, om de kræves af fremtidige opgaver.
Når destinationsadressen er kendt, følges en direkte gren indeholdt i instruktionen. En indirekte gren opstår, når der ikke er nogen anelse om destinationen, men det forudsiges fra allerede udførte grene.
Spectre-angreb drager fordel af disse gæt og narrer processoren til at køre instruktioner, der kræver følsomme data fra hukommelsen.
Retpoline blev frigivet en softwarebaseret løsning til at afbøde spekulative eksekveringsangreb ved hjælp af returoperationer til at isolere indirekte filialer.
Forskere ved ETH Zürich Universitet fandt imidlertid en måde at tvinge forudsigelsen af returoperationerne ligesom i tilfælde af indirekte grene og at injicere filialmål i kerneadresserummet, uanset brugerens privilegier.
Vi fandt ud af, at vi kan udløse de mikroarkitektoniske forhold på både AMD- og Intel-CPU’er, der tvinger vender tilbage til at blive forudsagt som indirekte grene. Vi byggede også de nødvendige værktøjer til at opdage placeringer i Linux-kernen, hvor disse betingelser er opfyldt.
Vi fandt ud af, at vi kan injicere grenmål, der befinder sig inde i kernens adresserum, selv som en ikke-privilegeret bruger. Selvom vi ikke kan få adgang til forgreningsmål inde i kernens adresserum – forgrening til et sådant mål resulterer i en sidefejl – vil Branch Prediction Unit opdatere sig selv, når den observerer en gren og antage, at den blev lovligt udført, selvom den er til en kerneadresse.
Forskerne forklarer yderligere i et teknisk papir om Retbleed, at ved hjælp af en præcis grenhistorie på Intel-CPU’er er det muligt at kapre alle returinstruktioner, der “følger tilstrækkeligt dybe opkaldsstakke.”
I tilfælde af AMD-processorer er det muligt at kapre eventuelle returinstruktioner, hvis den tidligere filialdestination blev valgt korrekt under grenforgiftning.
PoC i aktion
Forskerne offentliggjorde også en video, der viser, hvordan Retbleed kan bruges til at lække kernehukommelse på Intel- og AMD-processorer:
For Intel-processorer, sårbarheden spores som CVE-2022-29901. Intel har udgivet en sikkerhedsrådgivning, der anbefaler brugen af Indirect Branch Restricted Speculation (IBRS) i stedet for retpoline.
IBRS er som standard tilgængelig på Windows-systemer, så der kræves ingen opdatering. Intel arbejdede sammen med Linux-fællesskabet om at oprette opdateringer, der løser problemet med Retbleed.
For AMD-CPU’er spores Retbleed som CVE-2022-29900. Virksomheden udgav vejledning for at afbøde problemet, der kunne føre til offentliggørelse af følsomme oplysninger.
Selvom ETH Zürich-forskere udviklede et retbleed proof of concept (PoC) kun til Linux, sårbarheden påvirker andre operativsystemer, også, fordi det er hardwarerelateret.
Det tekniske papir om Retbleed er blevet offentliggjort, og forskerne vil præsentere sårbarheden den 10. august på Usenix Security-konferencen.
Kilde: Bleeping Computer
Grafik: Icare.dk