L1DES (CacheOut) ja VRS — uued haavatavused Intel CPU mikroarhitektuuris

Intel avalikustas kahe uue haavatavuse teavet Intel CPU-des, mis on põhjustatud L1D vahemälu andmete lekkest (CVE-2020-0549, L1DES — L1D Eviction Sampling) ja vektorialustest registritest (CVE-2020-0548, VRS — Vector Register Sampling). Haavatavused kuuluvad klassi MDS (Mikroarhitektuuri Andmete Näidustamine) ja põhinevad külgkanali analüüsi meetodite rakendamisel mikroarhitektuuriliste struktuuride andmetele. AMD, ARM ja teised protsessorid ei ole probleemide suhtes haavatavad.

Suurima ohu moodustab L1DES haavatavus, mis lubab proksimeeritud andmeplokkide (cache line) jäämist, mis on välja tõrjutud esimese taseme (L1D) vahemälust, täitmispufferisse (Fill Buffer), mis peaks sel hetkel olema tühi. Jäänud andmete tuvastamiseks täitmispufferis kasutatakse külgkanali analüüsi meetodeid, mis on varasemalt soovitatud rünnakutes MDS (Mikroarhitektuuri Andmete Näidustamine) ja TAA (Tehinguline Asünkroonne Katkestus). Varasemate MDS ja TAA kaitsemeetmete olemus seisnes mikroarhitektuuriliste puhversüsteemide puhastamises enne konteksti vahetamist, kuid nagu selgub, andmed spekulatiivselt tühjendatakse puhversüsteemides pärast puhastusoperatsiooni, mistõttu MDS ja TAA meetodid jäävad rakendatavaks.
MDS ja TAA mikroarhitektuuriliste puhverite puhastamisel konteksti vahetamise eel, kuid nagu selgus, siis teatud tingimustel andmed spekuleerivalt taastatakse puhveritesse pärast puhastusoperatsiooni, seega jäävad MDS ja TAA meetodid rakendatavaks.

L1DES (CacheOut) ja VRS - uued haavatavused Intel CPU mikroarhitektuurides

Tulemuseks on, et ründaja võib määrata esmaste tasandi vahemälust eemaldatud andmed, mis on rakenduse käitamise käigus muudetud ja mis kasutasid praegust CPU tuuma, või rakendusi, mis töötavad paralleelselt teiste loogiliste lõngede (hyperthread) sama tuuma peal (HyperThreading'i väljalülitamine vähendab rünnaku efektiivsust). Erinevalt rünnakust L1TF, L1DES ei võimalda valida konkreetseid füüsilisi aadresse kontrollimiseks, vaid annab võimaluse passiivselt jälgida muid loogiliste lõngede tegevusi, mis on seotud väärtuste laadimise või salvestamisega mällu.

L1DESi põhjal on erinevad teadlaste rühmad välja töötanud mitmeid rünnakuvõimalusi, mis võivad võimaldada konfidentsiaalse teabe väljatoomist teistest protsessidest, operatsioonisüsteemist, virtuaalmasinatest ja kaitstud SGX-anklaatidest.

  • VUSec meeskond kohandas ründemeetodit RIDL L1DES haavatavust abil. Saadaval on exploit prototüüp, mis läheb sealjuures mööda Intel'i MDS-rünnakute kaitsemeetodit, mis põhineb VERW käsu kasutamisel mikroarhitektuuri puhvrite sisu kustutamiseks, kui tuumast naasedakse kasutaja ruumi või kui kontroll antakse külgprogrammile (alguses väitsid teadlased, et VERW (mikroarhitektuuri puhvrite puhastamine) ei piisa kaitseks ning konteksti vahetuse korral on vajalik L1 vahemälu täielik lähtestamine).
  • Meeskond ZombieLoad uusim rünnakumeetod ning L1DES-i haavatavust arvesse võttes.
  • MichiGani Ülikooli teadlased töötasid välja oma rünnakumeetodi CacheOut (PDF), mis võimaldab konfidentsiaalset teavet välja võtta operatsioonisüsteemi tuumast, virtuaalmasinatest ja kaitstud SGX-uuringutest. Meetod põhineb manipuleerimistel asünkroonsete katkestuste operatsioonide mehhanismiga (TAA, TSX Asynchronous Abort) vahemälu L1D-st andmete lekke järel jääkraami sisendi tuvastamiseks.

    L1DES (CacheOut) ja VRS - uued haavatavused Intel CPU mikroarhitektuurides

Teine haavatavus VRS (Vector Register Sampling) on seotud süsteemivahemälu (Store Buffer) lekked, kui lugemisoperatsioonide tulemused, mis on seotud vektorregisteritega, muutuvad käideldes vektorite instruktsioone (SSE, AVX, AVX-512) samal CPU tuumal. Leak tekib piisavalt harva esinevate asjaolude tõttu, kus spekulatiivne teostus, mis põhjustab vektorregisterite oleku peegeldumist vahemälus, viibib ja lõpeb enne vahemälu puhastamist, mitte pärast seda. Sarnaselt L1DES haavatavusele võib vahemälu sisu tõendada MDS ja TAA rünnakute meetodite abil.

VUSeci rühma uurijad valmistasid exploit prototüüp, mis võimaldab määrata vektorregisterite väärtusi, mis on saadud teise loogilise voolu arvutustes samas CPU tuumas. Intel hindas VRS haavatavust liiga keeruliseks reaalseid rünnakute teostamiseks ja määras minimaalsete ohtude taseme (2.8 CVSS).

Probleemidest teavitati Inteli maikuus 2019 Zombieloadi meeskonna poolt Grazi Tehnikaülikoolist (Austria) ja VUSeci rühma poolt Amsterdami Vaba Ülikoolist. Hiljem, pärast MDS rünnaku erinevate kasutusviiside analüüsi, kinnitasid mõned teised uurijad haavatavusi. Esimeses MDS raportis ei sisaldunud teave L1DES ja VRS probleemide kohta, kuna lahendust ei olnud. Lahendust ei ole praegugi saadaval, kuid kokkulepitud mitteavaldamise tähtaeg on möödunud.
Kaitsemeetmena soovitatakse välja lülitada HyperThreading. Haavatavuse blokeerimiseks tuumikupoolest soovitatakse iga konteksti vahetuse korral L1 vahemälu lähtestada (MSR bitti MSR_IA32_FLUSH_CMD) ja keelata TSX laiendus (MSR bitti MSR_IA32_TSX_CTRL ja MSR_TSX_FORCE_ABORT).

Intel lubab välja anda mikrokoodi uuendus, mis aitab blokeerida probleeme lähitulevikus. Intel juhib tähelepanu ka sellele, et 2018. aastal soovitatud kaitsemeetodid rünnaku vastu L1TF (L1 Terminal Fault) võimaldavad blokeerida L1DES haavatavuse ekspluateerimist virtuaalsetes keskkondades. Rünnakule on haavatavad Intel Core protsessorid alates kuuendast põlvkonnast (Sky, Kaby, Coffee, Whiskey, Amber Lake jne) ning mõned Intel Xeon ja Xeon Scalable mudelid.

Lisaks saab märkida täiustust eksploid, mis võimaldab rakendada rünnakumeetodeid RIDL salajase parooli häshe sisu määramiseks kasutaja root kohta failis /etc/shadow perioodiliste autentimiskatsete ajal. Kui algselt pakutud eksploit määras parooli häshe 24 tunni, ja pärast leke, kui asünkroonsete operatsioonide katkestamise mehhanism (TAA, TSX Asynchronous Abort) töötas, viidi see läbi sarnase protseduuri 36 sekundiga, siis uus variant ründab 4 sekundi jooksul.

Vaata videot

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster