Nouă variantă de atac BHI asupra CPU-urilor Intel, care permite ocolirea protecției în nucleul Linux

Un grup de cercetători de la Universitatea Liberă din Amsterdam a identificat o nouă metodă de atac „Native BHI” (CVE-2024-2201), care permite determinarea conținutului memoriei nucleului Linux pe sistemele cu procesoare Intel în timpul executării unui exploit în spațiul utilizatorului. În cazul aplicării atacului la sistemele de virtualizare, atacatorul din sistemul gazdă poate determina conținutul memoriei mediului gazdă sau al altor sisteme virtuale.

Metoda Native BHI propune o tehnică diferită de exploatare a vulnerabilității BHI (Branch History Injection, CVE-2022-0001), care ocolește metodele de protecție implementate anterior. Metoda de atac BHI, propusă în 2022, presupunea exploatarea vulnerabilității în cadrul unui nivel unic de privilegii, ceea ce implica utilizarea unui exploit bazat pe executarea unui program eBPF, încărcat de utilizator în nucleu. Pentru a bloca vulnerabilitatea, era suficient să se limiteze accesul la executarea codului eBPF pentru utilizatorii obișnuiți.

Noua metodă Native BHI nu necesită acces la eBPF și permite atacul unui utilizator neprivilegiat din spațiul utilizatorului. Metoda se bazează pe executarea gadgetilor existenți în codul nucleului — secvențe de instrucțiuni care conduc la execuția speculativă a instrucțiunilor. Pentru a căuta gadgeti corespunzători în nucleu, a fost dezvoltat un instrument special numit InSpectre Gadget, care, în timpul analizei nucleului 6.6-rc4, a identificat 1511 gadgeti Spectre și 2105 gadgeti auxiliare de dispecerizare.

Nouă variantă de atac BHI asupra CPU-urilor Intel, care permite ocolirea protecției în nucleul Linux

Pe baza gadgetilor găsiți, cercetătorii au pregătit un exploit care oferă posibilitatea de a extrage din buffer-ele nucleului un șir cu hash-ul parolei utilizatorului root, încărcat din fișierul /etc/shadow. Viteza de extragere a datelor din memoria nucleului este de aproximativ 3.5 KB pe secundă.

Redați video

Metoda BHI reprezintă o variantă extinsă a atacului Spectre-v2, în care, pentru a ocoli protecția suplimentară (Intel eIBRS și Arm CSV2) și a organiza scurgerea de date, se folosește înlocuirea valorilor într-un buffer cu istoria globală a ramificărilor (Branch History Buffer), utilizat în CPU pentru a crește acuratețea predicției ramificării prin luarea în considerare a istoricului tranzițiilor anterioare. În cadrul atacului, prin manevrarea istoriei tranzițiilor, se creează condiții pentru o predicție greșită a tranzițiilor și executarea speculativă a instrucțiunilor necesare, ale căror rezultate ajung în cache.

Diferente de atacurile Spectre-v2, este utilizarea unui buffer cu istoric de ramificații (Branch History Buffer) în locul bufferului de predicție a ramificațiilor (Branch Target Buffer). Pentru a extrage date din memorie, atacatorul trebuie să creeze condițiile în care, în timpul executării unei operațiuni speculative, adresa va fi luată dintr-o zonă care trebuie definită. După ce se efectuează o ramificație speculativă indirectă, adresa citită din memorie rămâne în cache, după care poate fi folosită una dintre metodele de determinare a conținutului cache-ului pe baza analizei modificării timpului de acces la datele cached și necached.

Atacul Native BHI nu este protejat prin aplicarea instrucțiunilor Intel IBT (Indirect Branch Tracking) și prin mecanismul hibrid de protecție a fluxului de execuție FineIBT, implementat în nucleul Linux, care combină utilizarea instrucțiunilor hardware IBT și protecția software kCFI (kernel Control Flow Integrity) pentru a bloca încălcarea ordinii normale de execuție (control flow). FineIBT permite executarea prin ramificație indirectă doar în cazul unei tranziții către instrucțiunea ENDBR, care este plasată la începutul funcției. În plus (analog cu mecanismul kCFI), se efectuează o verificare a hash-urilor, care garantează imutabilitatea pointerilor.

Pentru a proteja de noul tip de atac, în nucleul Linux a fost adăugat un modificat care implementează un mod suplimentar de protecție, folosind echipamentele de protecție hardware propuse de Intel (BHI_DIS_S) sau o alternativă de protecție software, implementată pentru a proteja hypervisor-ul. KVM. Dezvoltatorii hypervisor-ului Xen au lansat de asemenea o corecție bazată pe utilizarea modului BHI_DIS_S, care limitează predicțiile bazate pe istoria ramificațiilor. Suportul pentru BHI_DIS_S este disponibil în procesoarele începând cu Intel Alder Lake, precum și în CPU-urile servere începând cu Intel Sapphire Rapids. Este disponibil și un mod software de protecție, bazat pe utilizarea secvențelor pentru curățarea bufferului de istoric al ramificațiilor, dar acesta duce la o scădere mai semnificativă a performanței.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster