Vulnerabilitetet në eBPF që lejojnë për të anashkaluar mbrojtjen nga sulmi Spectre 4

Në bërthamën e Linux janë identifikuar dy vulnerabilitete që lejojnë përdorimin e nën-sistemës eBPF për të anashkaluar mbrojtjen nga sulmi Spectre v4 (SSB, Speculative Store Bypass). Me një program BPF pa privilegje, një sulmues mund të krijojë kushte për ekzekutimin spekulativ të operacioneve të caktuara dhe të përcaktojë përmbajtjen e zonave të rastit të memories së bërthamës. Nën-sistemet e shoqëruese eBPF në bërthamë kanë akses në një prototip të eksploitit që tregon mundësinë e kryerjes së sulmeve në praktikë. Problemet janë eliminuar në formën e patch-eve (1, 2), të cilat do të përfshihen në përditësimin e ardhshëm të bërthamës Linux. Përditësimet në shpërndarje ende nuk janë formuar (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Metoda e sulmit Spectre 4 bazohet në rikuperimin e të dhënave që kanë mbetur në cache-in e procesorit pas heqjes së rezultatit të ekzekutimit spekulativ të operacioneve gjatë përpunimit të operacioneve të ndërlikuara të shkruarjes dhe leximit duke përdorur adresimin e tërthortë. Kur operacioni i leximit pason operacionin e shkruarjes (për shembull, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), offset-i i adresës për leximin mund të jetë i njohur nga ekzekutimi i operacioneve të ngjashme (operacionet e leximit ekzekutohen shumë më shpesh dhe leximi mund të kryhet nga cache-i) dhe procesori mund të ekzekutojë spekulativisht leximin përpara shkruarjes, pa pritur që të llogaritet offset-i i adresimit të tërthortë për shkruarjen.

Nëse pas llogaritjes së offset-it zbulohen të kaluara të zonave të memories për shkruarje dhe lexim, procesori thjesht do të hedhë rezultatin e leximit të fituar spekulativisht dhe do ta përsërisë këtë operacion. Kjo veçori lejon që instrukcioni i leximit të ketë akses në vlerën e vjetër në një adresë të caktuar ndërsa operacioni i ruajtjes ende nuk ka përfunduar. Pas hedhjes së operacionit spekulativ të dështuar, në cache mbeten gjurmë nga ekzekutimi i tij, pas së cilës një nga metodat për të përcaktuar përmbajtjen e cache-it mund të përdoret duke analizuar ndryshimin e kohës së qasjes në të dhënat e ruajtura në cache dhe ato që nuk janë në cache.

Vulnerabiliteti i parë (CVE-2021-35477) është shkaktuar nga mangësi në mekanizmin e kontrollit të programeve BPF. Për të mbrojtur nga sulmi Spectre 4, verifikuesi shton pas operacioneve potencialisht problematike të ruajtjes në memory një instrukcion të shtuar që ruan një vlerë zero për të hedhur gjurmët e operacionit të kaluar. Supozohej se operacioni i shkruarjes së zeros do të përfundonte shumë shpejt dhe do të bllokonte ekzekutimin spekulativ, pasi ai varet vetëm nga treguesi në kadru BPF. Por në të vërtetë, është e mundur të krijohen kushte në të cilat instruksioni që shkakton ekzekutimin spekulativ përfundon para operacionit të ruajtjes që e zëvendëson.

Vulnerabiliteti i dytë (CVE-2021-3455) lidhet me faktin se kur verifikuesi BPF zbulon operacione potencialisht të rrezikshme të ruajtjes në memory, nuk merren parasysh zonat e pa inicializuar të stekës BPF, operacioni i parë i shkruarjes në të cilat nuk është i mbrojtur. Kjo veçori sjell mundësinë e kryerjes së një operacioni spekulativ të leximit, të varur nga një zonë të pa inicializuar të memories, para se të kryhet instruksioni i ruajtjes. Memoria e re për stekën BPF ndahet pa kontrollin e përmbajtjes që tashmë ndodhet në memorien e ndarë, dhe në fazën para ekzekutimit të programit BPF ka një mënyrë për të menaxhuar përmbajtjen e zonës së memories, e cila më pas do të ndahet për stekën BPF.

Burimi: opennet.ru

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