Ranjivost u eBPF-u omogućava zaobilaženje zaštite od Spectre napada

Jučer smo ovdje na blogu objavili vijesti o Aya, biblioteka za stvaranje eBPF upravljačkih programa u Rustu i je li svrha ovoga stvoriti sigurnije upravljačke programe ili Prossimo projekt za osiguranje memorije Linux kernel sa Rustom (dva sjajna projekta koja će dati puno toga za razgovarati u narednim mjesecima).

I to je to u kratkom vremenu zabilježene su razne ranjivosti u kojem iskoristite greške u eBPF-u i da je to problem u kojem programeri kernela nisu prestali raditi i možda je Rust rješenje.

Razlog za dodirivanje ove teme je taj nedavno je objavljena vijest koju su identifikovali "Ostala" ranjivost u Linux kernelu (CVE-2021-33624) za zaobilaženje zaštite od ranjivosti klase Spectre, jer to omogućava upotrebu eBPF podsistema kako bi se mogao odrediti sadržaj memorije kao rezultat stvaranja uslova za spekulacije izvršavanja određenih operacija.

Spominje se da je ranjivost uzrokovan je neuspjesima u provjeri, koji se koristi za otkrivanje grešaka i nevaljanih aktivnosti u BPF programima. Verifikator navodi moguće staze izvršavanja koda, ali zanemaruje sve opcije grananja koje nisu valjane sa stanovišta semantike arhitekture skupa naredbi.

Kada se izvodi BPF program, procesor pogrešno može predvidjeti mogućnosti grananja koje verifikator nije uzeo u obzir i izvršiti ih u spekulativnom načinu.

Na pogođenim sistemima, neprivilegirani BPF program može iskoristiti ovu ranjivost za filtriranje sadržaja proizvoljne memorije jezgre (a time i sve fizičke memorije) kroz bočni kanal.

Na primjer, kada analizira operaciju "učitavanja", verifikator pretpostavlja da naredba koristi registar s adresom čija je vrijednost uvijek u navedenim granicama, ali napadač može stvoriti uvjete pod kojim procesor će špekulativno pokušati obaviti trgovinu sa adresom koja ne ispunjava uvjete za verifikaciju.

Napad Spectre zahtijeva prisustvo određene skripte u privilegiranom kodu, što dovodi do spekulativnog izvršavanja uputstava. Manipuliranjem BPF programa koji se prosljeđuju na izvršenje, moguće je generirati takve upute u eBPF i filtrirati sadržaj memorije jezgra i proizvoljna područja fizičke memorije kroz bočne kanale.

Takođe, možete označiti napomenu o uticaju na performanse imovine za zaštitu od klase ranjivosti Spectre.

Ova napomena sumira rezultate rr (Record and Replay) optimizacija programa za otklanjanje pogrešaka, koju je jednom kreirala Mozilla za otklanjanje grešaka koje se teško ponavljaju u Firefoxu. Keširanje sistemskih poziva korištenih za provjeru postojanja direktorija smanjilo je operaciju "rr izvora" za test projekt s 3 minute 19 sekundi na 36 sekundi.

Autor optimizacije odlučio je provjeriti koliko će se promijeniti performanse nakon onemogućavanja Spectre zaštite. Nakon pokretanja sistema s parametrom "ublažavanje = isključeno", vrijeme izvršavanja "rr izvora" bez optimizacije bilo je 2 minute 5 sekundi (1.6 puta brže), a sa optimizacijom 33 sekunde (9% brže).

Zanimljivo, onemogućavanje Spectre zaštite ne samo da je smanjilo vrijeme izvođenja koda na razini jezgre za 1.4 puta (od 2 min 9s do 1 min 32s), također je prepolovio vrijeme izvršenja u korisničkom prostoru (od 1 min 9s do 33s), vjerovatno zbog smanjenja efikasnosti CPU predmemorija i TLB se resetiraju kada je omogućena Spectre zaštita.

Problem se pojavio od izdavanja kernela 4.15 i je fiksiran u obliku zakrpa, koji trenutno još uvijek ne dolaze u sve distribucije, pa se preporučuje korisnicima da ovih dana izvrše relevantna ažuriranja čim prime obavijesti.

Si želite znati više o tome, možete provjeriti detalje Na sledećem linku.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.