Sårbarhed i den spekulative udførelsesmekanisme for AMD-processorer

Grsecurity-projektet har offentliggjort detaljer og en demonstration af angrebsmetoden for en ny sårbarhed (CVE-2021-26341) i AMD-processorer relateret til spekulativ eksekvering af instruktioner efter ubetingede fremadgående operationer. Hvis angrebet lykkes, gør sårbarheden det muligt at bestemme indholdet af vilkårlige hukommelsesområder. For eksempel har forskere udarbejdet en udnyttelse, der giver dem mulighed for at bestemme adresselayoutet og omgå KASLR-beskyttelsesmekanismen (kernel memory randomization) ved at udføre uprivilegeret kode i ePBF-kerneundersystemet. Andre angrebsscenarier kan ikke udelukkes, som kan føre til et læk af indhold i kernehukommelsen.

Sårbarheden giver dig mulighed for at skabe betingelser, hvorunder processoren under forebyggende eksekvering spekulativt behandler instruktionen umiddelbart efter springinstruktionen i hukommelsen (SLS, Straight Line Speculation). Desuden virker en sådan optimering ikke kun for betingede spring-operatører, men også for instruktioner, der indebærer direkte ubetinget spring, såsom JMP, RET og CALL. Ved at følge ubetingede springinstruktioner kan vilkårlige data, der ikke er beregnet til eksekvering, placeres. Efter at have fastslået, at en gren ikke involverer udførelse af den næste instruktion, ruller processoren simpelthen tilstanden tilbage og ignorerer spekulativ udførelse, men sporet af instruktionsudførelse forbliver i den delte cache og er tilgængelig for analyse ved hjælp af side-kanal genfindingsteknikker.

Som med udnyttelsen af ​​Spectre-v1-sårbarheden, kræver angrebet tilstedeværelsen af ​​visse sekvenser af instruktioner (gadgets) i kernen, der fører til spekulativ eksekvering. Blokering af en sårbarhed i dette tilfælde kommer ned til at identificere sådanne gadgets i koden og tilføje yderligere instruktioner til dem, der blokerer spekulativ eksekvering. Betingelser for spekulativ udførelse kan også skabes af uprivilegerede programmer, der kører i den virtuelle eBPF-maskine. For at blokere muligheden for at konstruere gadgets ved hjælp af eBPF, anbefales det 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, herunder første og anden generation af AMD EPYC- og AMD Ryzen Threadripper-processorer, samt AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO- og APU-seriens processorer A. For at blokere spekulativ udførelse af instruktioner, anbefales det at kalde INT3- eller LFENCE-instruktioner efter filialoperationer (RET, JMP, CALL).

Kilde: opennet.ru

Tilføj en kommentar