SÄrbarheter i eBPF som gör det möjligt att kringgÄ skydd mot Spectre 4-attacker

TvÄ sÄrbarheter har identifierats i Linux-kÀrnan, vilket möjliggör att anvÀnda eBPF-subsystemet för att kringgÄ skyddet mot Spectre v4-attacker (SSB, Speculative Store Bypass). Genom att anvÀnda ett icke-privilegierat BPF-program kan en angripare skapa förutsÀttningar för spekulativ exekvering av vissa operationer och bestÀmma innehÄllet i godtyckliga minnesomrÄden i kÀrnan. De tillhörande eBPF-subsystemen i kÀrnan har fÄtt tillgÄng till en prototyp av en exploatering som visar möjligheten att utföra attacker i praktiken. Problemet har ÄtgÀrdats med hjÀlp av patchar (1, 2) som kommer att ingÄ i den kommande uppdateringen av Linux-kÀrnan. Uppdateringar för distributionerna Àr Ànnu inte tillgÀngliga (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Spectre 4-attackmetoden bygger pÄ att ÄterstÀlla data som har legat kvar i processorcacheminnet efter att resultatet av den spekulativa exekveringen av operationer har slÀngts, nÀr vÀxlingsoperationer för skrivning och lÀsning hanteras med indirekt adressering. NÀr en lÀsoperation följer efter en skrivoperation (t.ex. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), kan förskjutningen av adressen för lÀsning redan vara kÀnd pÄ grund av att liknande operationer har exekverats (lÀroperationer utförs betydligt oftare och lÀsning kan göras frÄn cachen) och processorn kan spekulativt exekvera lÀsningen innan skrivningen, utan att vÀnta pÄ att förskjutningen för den indirekta adresseringen ska berÀknas.

Om det efter berÀkningen av förskjutningen upptÀcks att det finns en överlappning mellan minnesomrÄdena för skrivning och lÀsning, kommer processorn helt enkelt att slÀnga det redan spekulativt erhÄllna resultatet av lÀsningen och upprepa den operationen. Denna funktion gör att lÀsoperationer kan fÄ tillgÄng till det gamla vÀrdet pÄ en given adress medan skrivoperationen fortfarande pÄgÄr. Efter att den misslyckade spekulativa operationen har slÀngts finns det spÄr av dess exekvering kvar i cachen, och en av metoderna för att extrahera detta kan vara att analysera förÀndringen i Ätkomsttiden till cachad och icke-cachad data.

Den första sÄrbarheten (CVE-2021-35477) orsakas av brister i mekanismen för verifiering av BPF-program. För att skydda mot Spectre 4 lÀgger verifieraren till en extra instruktion efter potentiellt problematiska minnesoperationer, som sparar ett nollvÀrde för att dölja spÄren av den föregÄende operationen. Det förvÀntades att nulÀgesoperationen skulle utföras mycket snabbt och blockera spekulativ exekvering, eftersom den enbart beror pÄ pekaren till BPF-stackens ram. Men det visade sig vara möjligt att skapa förhÄllanden dÀr instruktionen som leder till spekulativ exekvering kan utföras innan den dÀmpande sparningsoperationen.

Den andra sÄrbarheten (CVE-2021-3455) Àr relaterad till det faktum att nÀr verifieraren BPF identifierar potentiellt farliga minnesoperationer, beaktas inte icke-initialiserade omrÄden i BPF-stacken, vars första skrivoperation inte skyddas. Denna egenskap möjliggör en spekulativ lÀsoperation som beror av ett icke-initialiserat minnesomrÄde innan sparningsinstruktionen utförs. Nytt minne för BPF-stacken tilldelas utan att kontrollera innehÄllet som redan finns i den tilldelade minnet, och innan BPF-programmet körs finns det en metod för att styra innehÄllet i det omrÄde som senare kommer att tilldelas för BPF-stacken.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster