Forskere ved Det Frie Universitet i Amsterdam gjort kendt for nylig fundet en ny sÄrbarhed, der er en udvidet version af Spectre-v2-sÄrbarheden pÄ Intel- og ARM-processorer.
Denne nye sÄrbarhed, som er dÞbt som BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) og Spectre-BHB (CVE-2022-23960), er kendetegnet ved at tillade omgÄelse af eIBRS- og CSV2-beskyttelsesmekanismerne tilfÞjet til processorerne.
SÄrbarheden er beskrevet i forskellige manifestationer af samme problemstilling, da BHI er et angreb, der pÄvirker forskellige privilegieniveauer, for eksempel en brugerproces og kernen, mens BHB er et angreb pÄ samme privilegieniveau, for eksempel eBPF JIT og kernen.
Om sÄrbarhed
Konceptuelt, BHI er en udvidet variant af Spectre-v2-angrebet, hvor man kan omgÄ yderligere beskyttelse (Intel eIBRS og Arm CSV2) og orkestrere datalÊkage, udskiftning af vÊrdier i bufferen med en global filialhistorik (Branch History Buffer), som bruges i CPU'en til at forbedre forgreningsforudsigelsesnÞjagtigheden ved at tage hÞjde for historien om tidligere overgange.
I lĂžbet af et angreb gennem manipulationer med overgangshistorien, der skabes betingelser for ukorrekt forudsigelse af overgangen og spekulativ udfĂžrelse af de nĂždvendige instruktioner, hvis resultat deponeres i cachen.
Med undtagelse af at bruge en versionshistorikbuffer i stedet for en versionsmÄlbuffer, er det nye angreb identisk med Spectre-v2. Angriberens opgave er at skabe sÄdanne forhold, at adressen, nÄr du udfÞrer en spekulativ operation, tages den fra omrÄdet for de data, der bestemmes.
Efter at have udfĂžrt et spekulativt indirekte hop, forbliver hopadressen, der er lĂŠst fra hukommelsen, i cachen, hvorefter en af ââmetoderne til at bestemme indholdet af cachen kan bruges til at hente den baseret pĂ„ en analyse af ĂŠndringen i cache-adgangstiden og uncached data.
Forskere har demonstreret en funktionel udnyttelse, der giver brugerplads mulighed for at udtrÊkke vilkÄrlige data fra kernehukommelsen.
For eksempel viser den, hvordan det ved hjĂŠlp af den forberedte udnyttelse er muligt at udtrĂŠkke fra kernebufferne en streng med en hash af root-brugerens adgangskode, indlĂŠst fra filen /etc/shadow.
Udnyttelsen demonstrerer evnen til at udnytte sÄrbarheden inden for et enkelt privilegieniveau (kerne-til-kerne-angreb) ved hjÊlp af et brugerindlÊst eBPF-program. Muligheden for at bruge eksisterende Spectre-gadgets i kernekoden, scripts, der fÞrer til spekulativ udfÞrelse af instruktioner, er heller ikke udelukket.
SĂ„rbarhed vises pĂ„ de fleste nuvĂŠrende Intel-processorer, med undtagelse af Atom-familien af ââprocessorer og i flere af ARM-processorerne.
IfĂžlge forskning viser sĂ„rbarheden sig ikke pĂ„ AMD-processorer. For at lĂžse problemet er flere metoder blevet foreslĂ„et. software til at blokere sĂ„rbarheden, som kan bruges fĂžr fremkomsten af ââhardwarebeskyttelse i fremtidige CPU-modeller.
For at blokere angreb gennem eBPF-undersystemet, sDet anbefales som standard at deaktivere muligheden for at indlĂŠse eBPF-programmer af uprivilegerede brugere ved at skrive 1 til filen "/proc/sys/kernel/unprivileged_bpf_disabled" eller ved at kĂžre kommandoen "sysctl -w kernel .unprivileged_bpf_disabled=1".
For at blokere angreb gennem gadgets, det anbefales at bruge LFENCE-instruktionen i sektioner af kode, der potentielt fĂžrer til spekulativ eksekvering. Det er bemĂŠrkelsesvĂŠrdigt, at standardkonfigurationen af ââde fleste Linux-distributioner allerede indeholder de nĂždvendige beskyttelsesforanstaltninger, der er tilstrĂŠkkelige til at blokere eBPF-angrebet, som forskerne har demonstreret.
Intels anbefalinger om at deaktivere uprivilegeret adgang til eBPF gÊlder ogsÄ som standard startende med Linux-kerne 5.16 og vil blive porteret til tidligere filialer.
Endelig, hvis du er interesseret i at kunne vide mere om det, kan du konsultere detaljerne i fĂžlgende link.