L1DES (CacheOut) ja VRS – uued haavatavused Inteli protsessorite mikroarhitektuursetes struktuurides

Intel katmata teave kahe uue turvaauku kohta Inteli protsessorites, mis on põhjustatud andmete lekkimisest L1D vahemälust (CVE-2020-0549, L1DES - L1D Eviction Sampling) ja vektorregistrid (CVE-2020-0548, VRS – vektorregistri proovide võtmine). Haavatavused kuuluvad klassi MDS (Microarchitectural Data Sampling) ja põhinevad külgkanalite analüüsimeetodite rakendamisel andmetele mikroarhitektuuristruktuurides. Probleemid ei puuduta AMD-d, ARM-i ja teisi protsessoreid.

Suurim oht ​​on L1DES-i haavatavus, mis lubab esimese taseme vahemälust (L1D) välja tõstetud vahemällu salvestatud andmete plokkide arveldamine täitepuhvris, mis selles etapis peaks olema tühi. Täitepuhvrisse settinud andmete määramiseks saame kasutada rünnetes varem pakutud külgkanali analüüsi meetodeid MDS (Microarchitectural Data Sampling) ja TAA (Transaktsionaalne asünkroonne abort). Varem rakendatud kaitse olemus
MDS ja TAA mikroarhitektuursete puhvrite loputamisel enne konteksti vahetamist, kuid selgub, et teatud tingimustel loputatakse andmed pärast loputamist spekulatiivselt puhvritesse, nii et MDS- ja TAA-meetodid jäävad kohaldatavaks.

L1DES (CacheOut) ja VRS – uued haavatavused Inteli protsessorite mikroarhitektuursetes struktuurides

Selle tulemusel võib ründaja tuvastada esimese taseme vahemälust välja tõrjutud andmed, mida muudeti praeguse CPU tuuma varem hõivanud rakenduse käivitamisel või rakenduste, mis töötavad paralleelselt sama protsessori teistes loogilistes lõimedes (hüperlõime) tuum (HyperThreadingi keelamine vähendab rünnakute puudumise efektiivsust). Erinevalt rünnakust L1TF,L1DES ei võimalda kontrollimiseks valida konkreetseid füüsilisi ,aadresse, kuid annab võimaluse passiivselt jälgida tegevust muudes loogilistes lõimedes, mis on seotud väärtuste mällu laadimise või salvestamisega.

Erinevad uurimisrühmad on L1DES-i põhjal välja töötanud mitu ründevarianti, mis võivad potentsiaalselt eraldada tundlikku teavet teistest protsessidest, operatsioonisüsteemist, virtuaalmasinatest ja kaitstud SGX enklaavidest.

  • VUSEci meeskond kohandatud RIDL-i ründemeetod L1DES-i haavatavuse jaoks. Saadaval prototüüpi ära kasutada, mis läheb mööda ka Inteli pakutud MDS-kaitsemeetodist, mis põhineb VERW käsu kasutamisel mikroarhitektuuripuhvrite sisu tühjendamiseks kernelist kasutajaruumi naasmisel või juhtimise ülekandmisel külalissüsteemile (teadlased väitsid algselt, et VERW (mikroarhitektuuri puhastamine puhvrid) on kaitseks ebapiisav ja nõuab iga kontekstilüliti L1 vahemälu täielikku loputamist).
  • Meeskond ZombieLoad uuendas mu rünnaku meetod võttes arvesse L1DES haavatavust.
  • Michigani ülikooli teadlased on välja töötanud oma rünnakumeetodi Vahemälu (pDF), mis võimaldab teil operatsioonisüsteemi tuumast, virtuaalmasinatest ja kaitstud SGX-enklaavidest eraldada konfidentsiaalset teavet. Meetod põhineb manipulatsioonid mehhanismiga toimingute asünkroonseks katkestamiseks (TAA, TSX Asynchronous Abort), et määrata täitepuhvri sisu pärast andmete lekkimist L1D vahemälust.

    L1DES (CacheOut) ja VRS – uued haavatavused Inteli protsessorite mikroarhitektuursetes struktuurides

Teine VRS-i (Vector Register Sampling) haavatavus seotud vektorkäskude (SSE, AVX, AVX-512) täitmisel samal CPU tuumal muudetud vektorregistritest lugemisoperatsioonide tulemuste lekkimisega salvestuspuhvrisse (Store Buffer). Leke esineb üsna harvadel asjaoludel ja selle põhjuseks on asjaolu, et spekulatiivne toiming, mille tulemuseks on vektorregistrite oleku peegeldus mälupuhvris, viibib ja lõpeb pärast puhvri tühjendamist, mitte enne seda. Sarnaselt L1DES-i haavatavusele saab salvestuspuhvri sisu määrata MDS- ja TAA-ründetehnikate abil.

VUSeci grupi teadlased ette valmistatud prototüüpi ära kasutada, mis võimaldab teil määrata sama protsessori tuuma teises loogilises lõimes arvutuste tulemusena saadud vektorregistrite väärtused. Inteli ettevõte hinnatud VRS-i haavatavust peeti tegelike rünnakute läbiviimiseks liiga keeruliseks ja sellele määrati minimaalne raskusaste (2.8 CVSS).

Probleemidest teatasid Intelile 2019. aasta mais Grazi tehnikaülikooli (Austria) Zombieloadi meeskond ja Amsterdami vaba ülikooli VUSeci meeskond ning haavatavused kinnitasid hiljem pärast teiste MDS-i ründevektorite analüüsimist mitmed teised teadlased. Esimene MDS-aruanne ei sisaldanud paranduse puudumise tõttu teavet L1DES-i ja VRS-i probleemide kohta. Parandus pole praegu saadaval, kuid kokkulepitud mitteavaldamise periood on möödas.
Lahendusena on soovitatav HyperThreading keelata. Kernelipoolse haavatavuse blokeerimiseks tehakse ettepanek lähtestada L1 vahemälu iga kontekstilüliti juures (MSR-bitt MSR_IA32_FLUSH_CMD) ja keelata TSX-laiendus (MSR-bitid MSR_IA32_TSX_CTRL ja MSR_TSX_FORCE_ABORT).

Intel lubadusi välja anda mikrokoodi värskendus koos mehhanismide rakendamisega probleemide blokeerimiseks lähitulevikus. Intel märgib ka, et 2018. aastal pakuti välja rünnakukaitsemeetodite kasutamine L1TF (L1 terminali viga) võimaldab blokeerida L1DES-i haavatavuse ärakasutamise virtuaalses keskkonnas. Rünnak allutatud Intel Core protsessorid alates kuuendast põlvkonnast (Sky, Kaby, Coffee, Whisky, Amber Lake jne), samuti mõned Intel Xeon ja Xeon Scalable mudelid.

Lisaks võib märkida paranemine ära kasutada, mis võimaldab teil kasutada rünnakumeetodeid RIDL et määrata perioodiliste autentimiskatsete ajal juurparooli räsi sisu failist /etc/shadow. Kui algselt pakutud ärakasutamine määras parooli räsi 24 tundi, ja pärast lekke rakendamist asünkroonse katkestusmehhanismi (TAA, TSX Asynchronous Abort) töötamise ajal tegi sarnase toimingu aastal 36 sekundit, siis teeb uus variant rünnaku 4 sekundiga.

Allikas: opennet.ru

Lisa kommentaar