Pažeidžiamumas eBPF leidžia apeiti apsaugą nuo „Spectre“ atakų

Vakar čia dienoraštyje paskelbėme naujienas Aya, eBPF tvarkyklių kūrimo biblioteka "Rust" ir yra tai, kad to tikslas yra sukurti saugesnius tvarkykles arba „Prossimo“ projektas, užtikrinantis atmintį „Linux“ branduolio su „Rust“ (du puikūs projektai, apie kuriuos bus daug kalbėta ateinančiais mėnesiais).

Ir tai per trumpą laiką buvo pranešta apie įvairius pažeidžiamumus kuriame pasinaudokite eBPF klaidomis ir kad tai yra klausimas, kurio metu branduolio kūrėjai nenustojo veikti ir galbūt „Rust“ yra sprendimas.

Priežastis paliesti šią temą yra ta neseniai buvo išleista žinia, kurią jie nustatė „Kitas“ pažeidžiamumas „Linux“ branduolyje (CVE-2021-33624) už apeiti apsaugą nuo „Spectre“ klasės pažeidžiamumų, nes tai leidžia naudoti eBPF posistemį, kad būtų galima nustatyti atminties turinį, kai sukuriamos sąlygos spekuliuoti tam tikrų operacijų vykdymą.

Minima, kad pažeidžiamumas ją sukelia tikrintuvo gedimai, naudojami klaidoms ir netinkamai veiklai BPF programose aptikti. Tikrintojas pateikia galimus kodo vykdymo kelius, tačiau nepaiso jokių šakų parinkčių, kurios negalioja komandų rinkinio architektūros semantikos požiūriu.

Vykdant BPF programą, šakotojo parinktis, į kurias tikrintojas neatsižvelgė, procesorius gali neteisingai numatyti ir vykdyti spekuliaciniu režimu.

Pažeistose sistemose neprivilegijuota BPF programa gali naudoti šį pažeidžiamumą norėdama filtruoti savavališkos branduolio atminties (taigi ir visos fizinės) turinį per šalutinį kanalą.

Pavyzdžiui, analizuodamas „apkrovos“ operaciją, tikrintojas daro prielaidą, kad instrukcija naudoja registrą su adresu, kurio vertė visada neviršija nurodytų ribų, bet užpuolikas gali sukurti sąlygas pagal kurią procesorius spekuliaciškai bandys atlikti sandorį su adresu, kuris neatitinka patikrinimo sąlygų.

„Spectre“ ataka reikalauja, kad privilegijuotame kode būtų konkretus scenarijus, todėl spekuliaciškai vykdomi nurodymai. Manipuliuojant BPF programomis, kurios yra perduotos vykdyti, galima generuoti tokias instrukcijas eBPF ir filtruoti branduolio atminties turinį ir savavališkas fizinės atminties sritis per šalutinius kanalus.

Be to, galite pažymėti pastabą apie našumą turto apsisaugoti nuo „Spectre“ klasės pažeidžiamumų.

Šioje pastaboje apibendrinti rezultatai derintuvo optimizavimo rr (įrašymas ir atkūrimas), kurį kartą sukūrė „Mozilla“, norėdamas derinti sunkiai pakartojamas „Firefox“ klaidas. Sistemos iškvietimų, naudojamų katalogų egzistavimui patikrinti, talpykla sumažino bandomojo projekto „rr šaltinių“ operaciją nuo 3 minučių 19 sekundžių iki 36 sekundžių.

Optimizavimo autorius nusprendė patikrinti kiek pasikeis našumas išjungus „Spectre“ apsaugą. Paleidus sistemą su parametru „mitigations = off“, „rr šaltinių“ vykdymo laikas be optimizavimo buvo 2 minutės 5 sekundės (1.6 karto greičiau), o optimizavus - 33 sekundės (9% greičiau).

Įdomu, išjungus „Spectre“ apsaugą, sutrumpėjo ne tik vykdymo laikas branduolio lygio kodą per 1.4 karto (nuo 2 min 9s iki 1 min 32s), taip pat perpus sumažino vykdymo laiką vartotojo erdvėje (nuo 1 min. 9 s iki 33 sek.), tikriausiai dėl efektyvumo sumažėjimo procesoriaus talpykla ir TLB nustatomi iš naujo, kai įjungiama „Spectre“ apsauga.

Problema atsirado nuo 4.15 branduolio išleidimo ir buvo užfiksuotas pleistrų pavidalu, kurie šiuo metu vis dar nepasiekia visų platinimų, todėl vartotojams rekomenduojama, kad šiomis dienomis jie atliktų atitinkamus atnaujinimus, kai tik gaus pranešimus.

Si norite apie tai daugiau sužinoti, galite patikrinti išsamią informaciją Šioje nuorodoje.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.