Projektet for nylig Grsecurity gjort kendt gennem en publikation detaljer og en demo en angrebsmetode til en ny sårbarhed (allerede opført som CVE-2021-26341) i AMD-processorer relateret til udførelse af spekulative instruktioner efter ubetingede spring-forlæns operationer.
Sårbarhed giver processoren mulighed for spekulativt at behandle instruktionen umiddelbart efter spring-instruktionen (SLS) i hukommelsen under spekulativ udførelse. På samme tid virker en sådan optimering ikke kun for betingede spring-operatører, men også for instruktioner, der involverer et direkte ubetinget spring, såsom JMP, RET og CALL.
Ubetingede greninstruktioner kan efterfølges af vilkårlige data, der ikke er beregnet til udførelse. Efter at have fastslået, at grenen ikke involverer udførelse af den næste erklæring, processoren ruller simpelthen tilstanden tilbage og ignorerer spekulativ udførelse, men instruktionsudførelsessporet forbliver i den generelle cache og er tilgængelig til analyse ved hjælp af side-kanal-hentningsmetoder.
AMD giver en opdatering til en anbefalet afbødning, G-5-reduktionen, i hvidbogen "Softwareteknikker til håndtering af spekulation i AMD-processorer". G-5-reduktionen hjælper med at adressere potentielle sårbarheder forbundet med spekulativ adfærd af filialinstruktioner.
AMD-processorer kan forbigående eksekvere instruktioner efter en ubetinget forgrening, som kan resultere i cache-aktivitet
Som med udnyttelsen af spektret-v1, et angreb kræver tilstedeværelsen af visse sekvenser af instruktioner (gadgets) i kernen, hvilket fører til spekulativ eksekvering.
I dette tilfælde bunder blokering af en sårbarhed til at identificere sådanne enheder i koden og tilføje yderligere instruktioner til dem, der blokerer spekulativ eksekvering. Betingelser for spekulativ udførelse kan også oprettes ved hjælp af ikke-privilegerede programmer, der kører på den virtuelle eBPF-maskine.
Denne undersøgelse resulterede i opdagelsen af en ny sårbarhed, CVE-2021-26341 [1] , som vi vil diskutere i detaljer i denne artikel. Som sædvanlig vil vi fokusere på de tekniske aspekter af sårbarheden, de begrænsninger, som AMD foreslår, og udnyttelsesaspekterne.
For at blokere muligheden for at bygge enheder ved hjælp af eBPF, Det anbefales at deaktivere uprivilegeret adgang til eBPF i systemet ("sysctl -w kernel.unprivileged_bpf_disabled=1").
Sårbarheden påvirker processorer baseret på Zen1- og Zen2-mikroarkitekturen:
Desk
- AMD Athlon™ X4-processor
- AMD Ryzen™ Threadripper™ PRO-processor
- XNUMX. generation af AMD Ryzen™ Threadripper™-processorer
- XNUMX. generation af AMD Ryzen™ Threadripper™-processorer
- XNUMX. generation af AMD A-serie APU
- AMD Ryzen™ 2000-seriens desktopprocessorer
- AMD Ryzen™ 3000-seriens desktopprocessorer
- AMD Ryzen™ 4000-seriens desktopprocessorer med Radeon™-grafik
Mobile
- AMD Ryzen™ 2000-serien mobil processor
- AMD Athlon™ 3000-seriens mobile processorer med Radeon™-grafik
- AMD Ryzen™ 3000-seriens mobile processorer eller XNUMX. generations AMD Ryzen™ mobile processorer med Radeon™-grafik
- AMD Ryzen™ 4000-seriens mobile processorer med Radeon™-grafik
- AMD Ryzen™ 5000-seriens mobile processorer med Radeon™-grafik
Chromebook
- AMD Athlon™ mobile processorer med Radeon™-grafik
server
- Første generation af AMD EPYC™-processorer
- XNUMX. generation af AMD EPYC™-processorer
Det nævnes, at hvis angrebet lykkes, sårbarheden gør det muligt at bestemme indholdet af vilkårlige hukommelsesområder.
På grund af denne sårbarhed kan det være muligt at identificere godartede kodekonstruktioner, der danner begrænsede, men potentielt udnyttelige SLS-enheder på berørte CPU'er. Som vist med eBPF-eksemplet er det også muligt at udnytte sårbarheden med håndbyggede, selvinjicerede enheder. Den præsenterede metode kan f.eks. bruges til at bryde KASLR-reduktionen af Linux-kernen.
For eksempel har forskere udarbejdet en udnyttelse, der giver dig mulighed for at bestemme layoutet af adressen og omgå KASLR-beskyttelsesmekanismen (kernel memory randomization) ved at udføre kode uden privilegier i eBPF-kerneundersystemet, foruden Andre angrebsscenarier, der kunne lække indhold af kernehukommelse er ikke udelukket.
Endelig hvis du er interesseret i at vide lidt mere om det, kan du kontrollere detaljerne I det følgende link.