L1DES (CacheOut) ja VRS – uusia haavoittuvuuksia Intel-suorittimien mikroarkkitehtuurirakenteissa

Intel paljastettu tiedot kahdesta uudesta haavoittuvuudesta Intel-suorittimissa, jotka johtuvat tietovuodosta L1D-välimuistista (CVE-2020-0549, L1DES - L1D Eviction Sampling) ja vektorirekisterit (CVE-2020-0548, VRS - Vector Register Sampling). Haavoittuvuudet kuuluvat luokkaan MDS (Microarchitectural Data Sampling) ja perustuvat sivukanava-analyysimenetelmien soveltamiseen mikroarkkitehtuurirakenteiden dataan. Ongelmat eivät vaikuta AMD-, ARM- ja muihin prosessoreihin.

Suurin vaara on L1DES-haavoittuvuus, joka luvat ensimmäisen tason välimuistista (L1D) poistettujen välimuistitietojen lohkojen asettaminen (cache line) täyttöpuskuriin, jonka tässä vaiheessa pitäisi olla tyhjä. Täyttöpuskuriin asettuneiden tietojen määrittämiseksi voimme käyttää hyökkäyksissä aiemmin ehdotettuja sivukanava-analyysimenetelmiä. MDS (Microarchitectural Data Sampling) ja TAA (Transaktionaalinen asynkroninen abortti). Aiemmin toteutetun suojauksen ydin
MDS ja TAA mikroarkkitehtonisten puskurien huuhteluun ennen kontekstin vaihtoa, mutta käy ilmi, että joissakin olosuhteissa data huuhdellaan spekulatiivisesti puskureihin huuhtelun jälkeen, joten MDS- ja TAA-menetelmät ovat edelleen käyttökelpoisia.

L1DES (CacheOut) ja VRS – uusia haavoittuvuuksia Intel-suorittimien mikroarkkitehtuurirakenteissa

Tämän seurauksena hyökkääjä voi havaita ensimmäisen tason välimuistista poistetut tiedot, joita on muutettu suoritettaessa sovellus, joka on aiemmin miehittänyt nykyisen CPU-ytimen, tai sovellukset, jotka toimivat rinnakkain muissa loogisissa säikeissä (hypersäikeessä) samassa suorittimessa. ydin (HyperThreadingin poistaminen käytöstä vähentää hyökkäyksen tehokkuutta). Toisin kuin hyökkäys L1TF,L1DES ei salli tiettyjen fyysisten osoitteiden valitsemista tarkastettavaksi, mutta se tarjoaa mahdollisuuden passiivisesti valvoa toimintaa muissa loogisissa säikeissä, jotka liittyvät arvojen lataamiseen tai tallentamiseen muistiin.

L1DES:n perusteella useat tutkimusryhmät ovat kehittäneet useita hyökkäysversioita, jotka voivat mahdollisesti poimia arkaluonteisia tietoja muista prosesseista, käyttöjärjestelmästä, virtuaalikoneista ja suojatuista SGX-enklaaveista.

  • VUSec-tiimi mukautettu RIDL-hyökkäysmenetelmä L1DES-haavoittuvuuden varalta. Saatavilla hyödyntää prototyyppiä, joka ohittaa myös Intelin ehdottaman MDS-suojausmenetelmän, joka perustuu VERW-käskyn käyttämiseen mikroarkkitehtonisten puskurien sisällön tyhjentämiseen palatessa ytimestä käyttäjätilaan tai siirrettäessä ohjausta vierasjärjestelmään (tutkijat väittivät aluksi, että VERW (clearing microarchitectural). puskurit) suojausta varten on riittämätön ja vaatii jokaisen kontekstikytkimen L1-välimuistin täydellisen tyhjennyksen).
  • Joukkue ZombieLoad päivitti omani hyökkäysmenetelmä ottaen huomioon L1DES-haavoittuvuuden.
  • Michiganin yliopiston tutkijat ovat kehittäneet oman hyökkäysmenetelmänsä Välimuisti (PDF), jonka avulla voit poimia luottamuksellisia tietoja käyttöjärjestelmän ytimestä, virtuaalikoneista ja suojatuista SGX-enklaaveista. Menetelmä perustuu manipulaatioita mekanismilla toimintojen asynkroniseen keskeytykseen (TAA, TSX Asynchronous Abort) täyttöpuskurin sisällön määrittämiseksi tietovuodon jälkeen L1D-välimuistista.

    L1DES (CacheOut) ja VRS – uusia haavoittuvuuksia Intel-suorittimien mikroarkkitehtuurirakenteissa

Toinen VRS-haavoittuvuus (Vector Register Sampling). sidottu vektorirekisterien lukutoimintojen tulosten vuotaminen tallennuspuskuriin (Store Buffer) vektorikäskyjen (SSE, AVX, AVX-512) suorittamisen aikana samalla CPU-ytimellä. Vuoto tapahtuu melko harvinaisissa olosuhteissa ja johtuu siitä, että spekulatiivinen operaatio, joka johtaa vektorirekisterien tilan heijastukseen tallennuspuskurissa, viivästyy ja päättyy puskurin tyhjentämisen jälkeen, ei ennen sitä. L1DES-haavoittuvuuden tapaan tallennuspuskurin sisältö voidaan sitten määrittää MDS- ja TAA-hyökkäystekniikoilla.

VUSec-ryhmän tutkijat valmis hyödyntää prototyyppiä, jonka avulla voit määrittää vektorirekisterien arvot, jotka on saatu laskelmien tuloksena saman CPU-ytimen toisessa loogisessa säikeessä. Intel Company arvostettu VRS-haavoittuvuutta pidettiin liian monimutkaisena todellisten hyökkäysten suorittamiseen, ja sille määritettiin vähimmäisvakavuustaso (2.8 CVSS).

Grazin teknisen yliopiston (Itävalta) Zombieload-tiimi ja Amsterdamin vapaan yliopiston VUSec-tiimi ilmoittivat ongelmista Intelille toukokuussa 2019, ja myöhemmin useat muut tutkijat vahvistivat haavoittuvuudet analysoituaan muita MDS-hyökkäysvektoreita. Ensimmäinen MDS-raportti ei sisältänyt tietoja L1DES- ja VRS-ongelmista korjauksen puutteen vuoksi. Korjaus ei ole nyt saatavilla, mutta sovittu salassapitoaika on umpeutunut.
Kiertotavana on suositeltavaa poistaa HyperThreading käytöstä. Ytimen haavoittuvuuden estämiseksi ehdotetaan, että L1-välimuisti nollataan jokaisessa kontekstikytkimessä (MSR-bitti MSR_IA32_FLUSH_CMD) ja poistetaan käytöstä TSX-laajennus (MSR-bitit MSR_IA32_TSX_CTRL ja MSR_TSX_FORCE_ABORT).

Intel lupauksia julkaise mikrokoodipäivitys, joka sisältää mekanismeja ongelmien estämiseksi lähitulevaisuudessa. Intel huomauttaa myös, että hyökkäyssuojausmenetelmien käyttöä ehdotettiin vuonna 2018 L1TF (L1 Terminal Fault) -toiminnon avulla voit estää L1DES-haavoittuvuuden hyödyntämisen virtuaaliympäristöistä. Hyökkäys jollei Intel Core -prosessorit kuudennesta sukupolvesta alkaen (Sky, Kaby, Coffee, Whiskey, Amber Lake jne.), samoin kuin joitain Intel Xeon- ja Xeon Scalable -malleja.

Lisäksi voidaan huomauttaa parannus käyttää hyväkseen, jonka avulla voit käyttää hyökkäysmenetelmiä RIDL pääkäyttäjän salasanan tiivisteen sisällön määrittämiseksi tiedostosta /etc/shadow säännöllisten todennusyritysten aikana. Jos alun perin ehdotettu hyväksikäyttö määritti salasanan hajautusarvon 24 tuntia, ja suoritettuaan vuodon asynkronisen keskeytysmekanismin toiminnan aikana (TAA, TSX Asynchronous Abort) suoritti samanlaisen toimenpiteen 36 sekuntia, niin uusi variantti tekee hyökkäyksen 4 sekunnissa.

Lähde: opennet.ru

Lisää kommentti