CROSSTalk - Intel-suorittimien haavoittuvuus, joka johtaa tietovuotoon ytimien välillä

Vrije Universiteit Amsterdamin tutkijaryhmä on tunnistanut uuden haavoittuvuus (CVE-2020-0543) Intel-prosessorien mikroarkkitehtuurirakenteissa, mikä on huomionarvoista siinä, että sen avulla voit palauttaa joidenkin toisessa prosessoriytimessä suoritettujen ohjeiden suorittamisen tulokset. Tämä on ensimmäinen haavoittuvuus spekulatiivisessa käskyn suoritusmekanismissa, joka mahdollistaa tietovuodon yksittäisten CPU-ytimien välillä (aiemmin vuodot rajoittuivat saman ytimen eri säikeisiin). Tutkijat antoivat ongelman nimeksi CROSSTalk, mutta Intel asiakirjat Haavoittuvuutta kutsutaan nimellä SRBDS (Special Register Buffer Data Sampling).

Haavoittuvuus liittyy esitetty vuosi sitten MDS (Microarchitectural Data Sampling) -ongelmien luokkaan ja perustuu sivukanava-analyysimenetelmien soveltamiseen mikroarkkitehtuurirakenteiden dataan. Toiminnan periaate CROSSTalk on lähellä haavoittuvuutta RIDL, mutta eroaa vuodon lähteestä.
Uusi haavoittuvuus manipuloi aiemmin dokumentoimattoman välipuskurin vuotoa, joka on kaikkien suorittimen ytimien yhteinen.

CROSSTalk - Intel-suorittimien haavoittuvuus, joka johtaa tietovuotoon ytimien välillä

Ongelman ydin on, että jotkin mikroprosessorin käskyt, mukaan lukien RDRAND, RDSEED ja SGX EGETKEY, toteutetaan käyttämällä sisäistä mikroarkkitehtuurista SRR (Special Register Reads) -toimintoa. Prosessoreissa, joita tämä koskee, SRR:lle palautetut tiedot tallennetaan kaikille CPU-ytimille yhteiseen välipuskuriin, minkä jälkeen ne siirretään täyttöpuskuriin, joka liittyy tiettyyn fyysiseen prosessorin ytimeen, jossa lukutoiminto aloitettiin. Seuraavaksi täyttöpuskurin arvo kopioidaan sovelluksille näkyviin rekistereihin.

Välissä olevan jaetun puskurin koko vastaa välimuistiriviä, joka on yleensä suurempi kuin luettavan tiedon koko, ja erilaiset lukemat vaikuttavat puskurin erilaisiin siirtymiin. Koska jaettu puskuri kopioidaan kokonaan täyttöpuskuriin, ei vain nykyiseen toimintoon tarvittava osa siirretä, vaan myös muista toiminnoista jäljelle jäänyt data, mukaan lukien muille suorittimen ytimille suoritetut toiminnot.

CROSSTalk - Intel-suorittimien haavoittuvuus, joka johtaa tietovuotoon ytimien välillä

CROSSTalk - Intel-suorittimien haavoittuvuus, joka johtaa tietovuotoon ytimien välillä

Jos hyökkäys onnistuu, järjestelmään todennettu paikallinen käyttäjä voi määrittää RDRAND-, RDSEED- ja EGETKEY-käskyjen suorittamisen tuloksen vieraassa prosessissa tai Intel SGX -enklaaven sisällä riippumatta siitä, millä prosessorilla koodi suoritetaan.
Tutkijat, jotka tunnistivat ongelman julkaistu Prototyypin hyväksikäyttö, joka osoittaa kyvyn vuotaa tietoja RDRAND- ja RDSEED-ohjeiden kautta saaduista satunnaisarvoista Intel SGX -enklaavissa käsitellyn yksityisen ECDSA-avaimen palauttamiseksi sen jälkeen, kun järjestelmässä on suoritettu vain yksi digitaalinen allekirjoitus.


ongelma alttiita laaja valikoima pöytäkone-, mobiili- ja palvelinprosessoreja, mukaan lukien Core i3, i5, i7, i9, m3, Celeron (J-, G- ja N-sarjat), Atom (C-, E- ja X-sarjat), Xeon (E3, E5, E7-perheet , W ja D), Xeon Scalable jne. On huomionarvoista, että Intelille ilmoitettiin haavoittuvuudesta syyskuussa 2018, ja heinäkuussa 2019 toimitettiin hyväksikäyttöprototyyppi, joka havainnollistaa datavuotoa suorittimen ytimien välillä, mutta korjauksen kehittäminen viivästyi sen toteuttamisen monimutkaisuuden vuoksi. Tänään ehdotettu mikrokoodipäivitys korjaa ongelman muuttamalla RDRAND-, RDSEED- ja EGETKEY-ohjeiden käyttäytymistä jaetun puskurin tietojen korvaamiseksi, jotta jäännöstiedot eivät pääse asettumaan sinne. Lisäksi puskurin käyttö keskeytetään, kunnes sisältö on luettu ja kirjoitettu uudelleen.

Tämän tyyppisen suojauksen sivuvaikutuksena on lisääntynyt viive RDRAND-, RDSEED- ja EGETKEY-suorituksissa ja alentunut suorituskyky, kun näitä ohjeita yritetään suorittaa samanaikaisesti eri loogisissa prosessoreissa. RDRAND-, RDSEED- ja EGETKEY-komentojen suorittaminen keskeyttää myös muiden loogisten prosessorien muistin käytön. Nämä ominaisuudet voivat vaikuttaa negatiivisesti joidenkin palvelinsovellusten suorituskykyyn, joten laiteohjelmisto tarjoaa mekanismin (RNGDS_MITG_DIS), joka poistaa suojauksen RDRAND- ja RDSEED-käskyiltä, ​​jotka suoritetaan Intel SGX -enklaaven ulkopuolella.

Lähde: opennet.ru

Lisää kommentti