Vulnerabilitetet në nën-sistemin e eBPF që lejojnë kalimin e mbrojtjes nga sulmet e klasës Spectre.

Një dobësi është zbuluar në kernelin Linux (CVE-2021-33624), e cila lejon përdorimin e nënësisë eBPF për të anashkaluar mbrojtjen nga dobësitë e klasës Spectre, duke krijuar mundësinë për të përcaktuar përmbajtjen e memories si rezultat i krijimit të kushteve për ekzekutimin spekulativ të operacioneve të caktuara. Për një sulm Spectre kërkohet një sekuencë e caktuar komandash në kodin me privilegje që çon në ekzekutimin spekulativ të instrukcioneve. Nëpërmjet manipulimit të programeve BPF të transferuara për ekzekutim, mund të arrihet gjenerimi i instrukcioneve të tilla në eBPF dhe të shfaqen të dhëna përmbajtjeje të memories së kernelit dhe rajoneve të rastit të memories fizike përmes kanaleve anësore.

Dobësia shkaktohet nga mangësitë në verifikuesin, i cili përdoret për të zbuluar gabimet dhe aktivitetin e papranueshëm në programet BPF. Verifikuesi shqyrton rrugët e mundshme të ekzekutimit të kodit, por lë pas dore opsione të degëve që janë të papranueshme nga pikëpamja semantike e arkitekturës së setit të komandave. Kur ekzekutohet një program BPF, këto opsione të degëve, të cilat nuk janë marrë parasysh nga verifikuesi, mund të parashikohen gabimisht nga procesori dhe të ekzekutohen në modin spekulativ. Për shembull, gjatë analizës të operacionit 'load', verifikuesi llogarit se në instruksion përdoret një regjistër me një adresë, vlera e së cilës gjithmonë është brenda kufijve të caktuar, por sulmuesi mund të krijojë kushte në të cilat procesori do të përpiqet të ekzekutojë spekulativisht një operacion me adresë që nuk përputhet me kushtet e verifikimit.

Problemi shfaqet që nga lëshimi i kernelit 4.15 dhe është eliminuar në formën e patches (1, 2, 3, 4). Në distribucione, dobësia ende mbetet e papërmirësuar (Debian, RHEL, Ubuntu, Fedora, SUSE, Arch).

Për më tepër, një vërejtje mbi ndikimin në performancën e mjeteve për mbrojtjen nga dobësitë e klasës Spectre mund të përmendet. Në vërejtje janë përmbledhur rezultatet e optimizimit të de-buggerit rr (Record and Replay), i cili u krijua në Mozilla për të debuguar gabimet e vështira për t'u riprodhuar në Firefox. Keshimi i thirrjeve sistemore, të përdorura për të verifikuar ekzistencën e katalogëve, ka lejuar që ekzekutimi i operacionit 'rr sources' për një projekt provë të reduktohet nga 3 minuta 19 sekonda në 36 sekonda.

Autori i optimizimit vendosi të kontrollojë se sa do të ndryshonte performanca pas çaktivizimit të mbrojtjes nga Spectre. Pas ngarkimit të sistemit me parametrin "mitigations=off", koha e ekzekutimit për "rr sources" pa optimizim ishte 2 minuta 5 sekonda (1.6 herë më e shpejtë), ndërsa me optimizim ishte 33 sekonda (9% më shpejt). E çuditshme është se çaktivizimi i mbrojtjes nga Spectre jo vetëm që reduktoi kohën e ekzekutimit të kodit në nivelin e bërthamës me 1.4 herë (nga 2m9s në 1m32s), por gjithashtu dyfishoi kohën e ekzekutimit në hapësirën e përdoruesit (nga 1m9s në 0m33s), e cila supozohet se është për shkak të uljes së efikasitetit të caches së CPU dhe ri-ngarkimeve të TLB kur mbrojtja nga Spectre është aktivizuar.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster