BHI er en ny Spectre-klasse sårbarhed i Intel- og ARM-processorer

En gruppe forskere fra Vrije Universiteit Amsterdam har identificeret en ny sårbarhed i de mikroarkitektoniske strukturer af Intel- og ARM-processorer, som er en udvidet version af Spectre-v2-sårbarheden, som gør det muligt at omgå de eIBRS- og CSV2-beskyttelsesmekanismer, der er tilføjet til processorer . Sårbarheden har fået flere navne: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) og Spectre-BHB (CVE-2022-23960), som beskriver forskellige manifestationer af det samme problem (BHI - et angreb, der påvirker forskellige niveauer af privilegier, f.eks. brugerprocessen og kernen, BHB - et angreb på samme privilegieniveau, f.eks. eBPF JIT og kernen).

Forskere har demonstreret en fungerende udnyttelse, der gør det muligt at udtrække vilkårlige data fra kernehukommelsen fra brugerrummet. For eksempel er det vist, hvordan det ved hjælp af en forberedt udnyttelse er muligt at udtrække en streng fra kernebufferne med en hash af root-brugerens adgangskode, indlæst fra filen /etc/shadow. Udnyttelsen demonstrerer muligheden for at udnytte en sårbarhed inden for et privilegieniveau (kerne-til-kerne-angreb) ved hjælp af et brugerindlæst eBPF-program. Det er også muligt at bruge i stedet for eBPF eksisterende Spectre-gadgets i kernekoden, sekvenser af kommandoer, der fører til spekulativ udførelse af instruktioner.

Sårbarheden optræder i de fleste nuværende Intel-processorer, med undtagelse af processorer fra Atom-familien. Blandt ARM-processorer er Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 og muligvis nogle Cortex-R-chips berørt af problemet. Ifølge forskning optræder sårbarheden ikke i AMD-processorer. For at eliminere problemet er der blevet foreslået adskillige softwaremetoder til at blokere sårbarheden, som kan bruges, før hardwarebeskyttelse dukker op i fremtidige CPU-modeller.

For at blokere angreb gennem eBPF-undersystemet anbefales det som standard at deaktivere muligheden for uprivilegerede brugere til at downloade eBPF-programmer ved at skrive 1 til filen "/proc/sys/kernel/unprivileged_bpf_disabled" eller køre kommandoen "sysctl -w kernel. unprivileged_bpf_disabled=1". For at blokere gadget-angreb anbefales det at bruge LFENCE-instruktionen i kodeområder, der potentielt kan føre 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 til at deaktivere uprivilegeret adgang til eBPF er også standard siden Linux-kernen 5.16 og vil blive backporteret til tidligere filialer.

Konceptuelt er BHI en udvidet version af Spectre-v2-angrebet, hvor der, for at omgå ekstra beskyttelse (Intel eIBRS og Arm CSV2) og organisere datalækage, bruges værdisubstitution i Branch History Buffer, der bruges i CPU'en til at forbedre forudsigelse nøjagtighed forgrening ved at tage hensyn til historien om tidligere overgange. Under angrebet skabes der gennem manipulationer med overgangshistorien betingelser for forkert forudsigelse af overgangen og spekulativ udførelse af de nødvendige instruktioner, hvis resultat ender i cachen.

Med undtagelse af at bruge en Branch History Buffer i stedet for en Branch Target Buffer, er det nye angreb identisk med Spectre-v2. Angriberens opgave er at skabe betingelser, således at adressen, når du udfører en spekulativ operation, tages fra området med de definerede data. 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 ændringer i adgangstid til cachelagrede og ikke-cachelagrede data.

Kilde: opennet.ru

Tilføj en kommentar