AMD on vahvistanut AMD Zen 3 -suorittimien mahdollisen haavoittuvuuden Spectre-STL-hyökkäykselle

AMD on julkaissut Zen 3 -sarjan prosessoreihin toteutetun PSF-optimointiteknologian (Predictive Store Forwarding) turvallisuutta analysoivan raportin.Tutkimus vahvisti teoreettisesti toukokuussa 4 tunnistetun Spectre-STL (Spectre-v2018) -hyökkäysmenetelmän soveltuvuuden mm. PSF-teknologiaa, mutta käytännössä hyökkäykseen johtavia koodimalleja ei ole vielä löydetty ja kokonaisvaara on arvioitu merkityksettömäksi.

Muistetaan, että Spectre-v4 (Speculative Store Bypass) -hyökkäys perustuu tietojen palauttamiseen, jotka ovat asettuneet prosessorin välimuistiin sen jälkeen, kun toimintojen spekulatiivisen suorituksen tulos on hylätty käsiteltäessä vuorottelevia kirjoitus- ja lukutoimintoja epäsuoralla osoituksella. Kun lukutoiminto seuraa kirjoitustoimintoa (esim. mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), lukuosoitteen siirtymä saattaa olla jo tiedossa suoritettavien vastaavien toimintojen vuoksi (lukutoiminnot ovat suoritetaan paljon useammin ja lukuja voidaan suorittaa välimuistista) ja prosessori voi spekulatiivisesti suorittaa lukuja ennen kirjoittamista odottamatta kirjoitusvirheen siirtymän laskemista.

Tämä ominaisuus sallii lukukäskyn päästä käsiksi vanhaan arvoon jossain osoitteessa, kun varastotoiminto ei ole vielä valmis. Jos tapahtuu ennustevirhe, epäonnistunut spekulaatiotoiminto hylätään, mutta jälkiä sen suorittamisesta jää prosessorin välimuistiin ja ne voidaan noutaa jollakin välimuistin sisällön määrittämismenetelmistä pääsyn muutosten analyysiin perustuen. aikaa välimuistiin tallennettuihin ja välimuistiin tallentamattomiin tietoihin.

AMD Zen 3 -prosessoreihin lisätty PSF optimoi STLF:n (Store-To-Load-Forwarding), joka suorittaa lukutoiminnot spekulatiivisesti ennustamalla luku- ja kirjoitustoimintojen välistä suhdetta. Klassista STLF:ää käytettäessä prosessori suorittaa "lataus"-operaation datalle, joka on suoraan välitetty edellisestä "store"-komennosta odottamatta, että tulos todella kirjoitetaan muistiin, mutta varmistaa, että "latauksessa" käytetyt osoitteet ja "store"-komennot täsmäävät. PSF-optimointi tekee osoitteen tarkistuksesta spekulatiivista ja suorittaa "lataus"-operaation ennen kuin osoitetiedot on laskettu, jos yhtä osoitetta käsittelevä varasto/latauspari on suoritettu aiemmin. Jos ennuste epäonnistuu, tila palautetaan, mutta tiedot jäävät välimuistiin.

Hyökkäys PSF:ää vastaan ​​on mahdollista vain yhden käyttöoikeustason puitteissa, se kattaa vain nykyisen prosessikontekstin ja sen estävät osoiteavaruuden eristysmenetelmät tai laitteiston hiekkalaatikkomekanismit. Tässä tapauksessa ongelma voi mahdollisesti vaikuttaa ohjelmistojen hiekkalaatikkomenetelmiin prosesseissa. Hyökkäys muodostaa uhan järjestelmille, kuten selaimille, koodinsuoritusvirtuaalikoneille ja JIT:ille, jotka suorittavat kolmannen osapuolen koodia yhdessä prosessissa (hyökkäys voi antaa epäluotettavalle hiekkalaatikkokoodille pääsyn muihin prosessitietoihin).

AMD on tarjonnut useita menetelmiä PSF:n poistamiseksi kokonaan tai valikoivasti käytöstä, mutta koska useimpien sovellusten riski on vähäinen, se on suositellut, että tätä optimointia ei poisteta oletusarvoisesti käytöstä. Epäluotettavaa koodia suorittavien prosessien selektiiviseksi suojaamiseksi ehdotetaan, että PSF poistetaan käytöstä asettamalla MSR-bitit "SSBD" ja "PSFD", myös yksittäisille säikeille. Linux-ytimelle on valmistettu korjaustiedostoja, joissa on toteutettu "psfd"- ja "nopsfd"-komentorivivaihtoehdot, jotka ohjaavat PSF:n päälle- ja poiskytkentää.

Lähde: opennet.ru

Lisää kommentti