BHI är en ny sårbarhet i Spectre-klassen i Intel- och ARM-processorer

En grupp forskare från Vrije Universiteit Amsterdam har identifierat en ny sårbarhet i de mikroarkitektoniska strukturerna hos Intel- och ARM-processorer, vilket är en utökad version av Spectre-v2-sårbarheten, som gör att man kan kringgå eIBRS- och CSV2-skyddsmekanismerna som läggs till processorer . Sårbarheten har fått flera namn: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) och Spectre-BHB (CVE-2022-23960), som beskriver olika manifestationer av samma problem (BHI - en attack som påverkar olika nivåer av privilegier, till exempel användarprocessen och kärnan, BHB - en attack på samma behörighetsnivå, till exempel eBPF JIT och kärnan).

Forskare har visat ett fungerande utnyttjande som gör att godtyckliga data kan extraheras från kärnminnet från användarutrymmet. Det visas till exempel hur, med hjälp av en förberedd exploit, är det möjligt att extrahera från kärnbuffertarna en sträng med en hash av rootanvändarlösenordet laddat från filen /etc/shadow. Exploateringen visar möjligheten att utnyttja en sårbarhet inom en behörighetsnivå (kärna-till-kärna-attack) med ett användarladdat eBPF-program. Det är också möjligt att istället för eBPF befintliga Spectre-gadgets i kärnkoden använda kommandosekvenser som leder till spekulativ exekvering av instruktioner.

Sårbarheten förekommer i de flesta nuvarande Intel-processorer, med undantag för processorer från Atom-familjen. Bland ARM-processorer är Cortex-A15, Cortex-A57, Cortex-A7*, Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1 och eventuellt några Cortex-R-chips som berörs av problemet. Enligt forskning förekommer inte sårbarheten i AMD-processorer. För att eliminera problemet har flera programvarumetoder föreslagits för att blockera sårbarheten, som kan användas innan hårdvaruskydd uppstår i framtida CPU-modeller.

För att blockera attacker genom eBPF-undersystemet, rekommenderas det att som standard inaktivera möjligheten för oprivilegierade användare att ladda ner eBPF-program genom att skriva 1 till filen "/proc/sys/kernel/unprivileged_bpf_disabled" eller köra kommandot "sysctl -w kernel. unprivileged_bpf_disabled=1”. För att blockera gadgetattacker rekommenderas det att använda LFENCE-instruktionen i kodområden som potentiellt leder till spekulativ exekvering. Det är anmärkningsvärt att standardkonfigurationen för de flesta Linux-distributioner redan innehåller de nödvändiga skyddsåtgärderna som är tillräckliga för att blockera eBPF-attacken som demonstrerats av forskarna. Intels rekommendationer för att inaktivera oprivilegierad åtkomst till eBPF är också standard sedan Linux-kärnan 5.16 och kommer att backporteras till tidigare grenar.

Konceptuellt är BHI en utökad version av Spectre-v2-attacken, där, för att kringgå extra skydd (Intel eIBRS och Arm CSV2) och organisera dataläckage, används värdesubstitution i Branch History Buffer, som används i CPU:n för att öka förutsägelsen noggrannhetsförgrening genom att ta hänsyn till tidigare övergångars historia. Under attacken, genom manipulationer med övergångars historia, skapas förutsättningar för felaktig förutsägelse av övergången och spekulativ exekvering av nödvändiga instruktioner, vars resultat hamnar i cachen.

Förutom att använda en Branch History Buffer istället för en Branch Target Buffer, är den nya attacken identisk med Spectre-v2. Angriparens uppgift är att skapa förhållanden så att adressen, när du utför en spekulativ operation, tas från området för den definierade datan. Efter att ha utfört ett spekulativt indirekt hopp, finns hoppadressen som läses från minnet kvar i cachen, varefter en av metoderna för att bestämma innehållet i cachen kan användas för att hämta den baserat på en analys av ändringar i åtkomsttid till cachad och uncachad data.

Källa: opennet.ru

Lägg en kommentar