EBPF-i haavatavus võimaldab kaitsta Spectre'i rünnakute eest

Eile avaldasime siin blogis uudised Aya, raamatukogu eBPF-draiverite loomiseks Rustis ja et selle eesmärk on luua turvalisemaid draivereid või Prossimo projekt mälu tagamiseks Rustiga Linuxi kernelist (kaks suurepärast projekti, mis annavad järgnevatel kuudel palju rääkida).

Ja see lühikese aja jooksul on teatatud erinevatest haavatavustest milles ära kasutada vead eBPF-is ja et see on küsimus, milles tuumaarendajad pole töötamist lõpetanud ja võib-olla on lahendus Rust.

Selle teema puudutamise põhjus on see hiljuti avaldati uudis, mille nad on tuvastanud "Muu" haavatavus Linuxi kernelis (CVE-2021-33624) jaoks ümbersõit Spectre-klassi haavatavuste eest, kuna see võimaldab kasutada eBPF-i alamsüsteemi, et oleks võimalik määrata mälu sisu teatud toimingute teostamise spekulatsioonide tingimuste loomise tulemusena.

Mainitakse, et haavatavus selle põhjustavad tõendid tõendites, mida kasutatakse vigade ja kehtetu tegevuse tuvastamiseks BPF-i programmides. Tõendaja loetleb võimalikud koodi täitmise teed, kuid ignoreerib kõiki hargnemisvalikuid, mis pole käskude arhitektuuri semantika seisukohast kehtivad.

BPF-i programmi käivitamisel võib protsessor valesti ennustada hargnemisvalikuid, mida tõendaja arvesse ei võtnud, ja need saab rakendada spekulatiivses režiimis.

Mõjutatud süsteemides saab privilegeeritud BPF-i programm seda haavatavust ära kasutada, et suvalise tuumamälu (ja seega ka kogu füüsilise mälu) sisu läbi külgkanali filtreerida.

Nt "koormuse" toimingu analüüsimisel eeldab kontrollija, et käsk kasutab registrit aadressiga, mille väärtus jääb alati kindlaksmääratud piiridesse, kuid ründaja saab tingimusi luua mille all töötleja üritab spekulatiivselt kauplemist teostada aadressiga, mis ei vasta kinnitamistingimustele.

Spectre rünnak nõuab konkreetse skripti olemasolu privilegeeritud koodis, mis viib käskude spekulatiivse täitmiseni. Käivitamiseks BPF-programmidega manipuleerides on võimalik sellised käsud genereerida eBPF-is ja filtreerida tuumamälu sisu ja suvalised füüsilise mälu piirkonnad külgkanalite kaudu.

Lisaks saate märkida märkuse jõudluse mõju kohta vara Spectre klassi haavatavuste eest kaitsmiseks.

See märkus võtab tulemused kokku siluri optimeerimine rr (Record and Replay), mille Mozilla on loonud Firefoxis raskesti korratavate vigade silumiseks. Kataloogide olemasolu kontrollimiseks kasutatud süsteemikõnede vahemällu salvestamine vähendas testiprojekti "rr allikad" toimingut 3 minutilt 19 sekundilt 36 sekundile.

Optimeerimise autor otsustas seda kontrollida kui palju muutub jõudlus pärast Spectre kaitse keelamist. Pärast süsteemi taaskäivitamist parameetriga "leevendused = välja" oli "rr allikate" ilma optimeerimiseta 2 minutit 5 sekundit (1.6 korda kiirem) ja optimeerimisega 33 sekundit (9% kiirem).

Uudishimulikult, Spectre kaitse keelamine mitte ainult ei vähenda käitamisaega tuuma taseme kood 1.4 korda (2 min 9 s kuni 1 min 32 s), Samuti vähendas see kasutajate ruumi täitmise aega poole võrra (arvult 1 min 9 s kuni 33 s), arvatavasti efektiivsuse vähenemise tõttu lähtestatakse CPU vahemälu ja TLB, kui Spectre kaitse on sisse lülitatud.

Probleem on ilmnenud alates 4.15 kerneli vabastamisest ja on fikseeritud plaastrite kujul, mis praegu veel kõikidesse levitamistesse ei jõua, seetõttu on kasutajatel soovitatav teha nendel päevadel asjakohased värskendused kohe, kui teavitused kätte saavad.

Si soovite selle kohta rohkem teada saada, saate üksikasju vaadata Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.