Bitdefenderin tutkijat
Haavoittuvuus kuuluu Spectre v1 -luokkaan ja perustuu ajatukseen palauttaa käskyjen spekulatiivisen suorittamisen jälkeen jäljelle jääneet tiedot prosessorin välimuistista. Suorituskyvyn parantamiseksi nykyaikaisten suorittimien haaraennustusyksiköt käyttävät joidenkin todennäköisimmin suoritettavien käskyjen ennaltaehkäisevää suorittamista, mutta odottamatta kaikkien niiden suorittamisen määräävien tekijöiden laskemista (esimerkiksi kun haaraehdot tai pääsyparametrit eivät ole vielä laskettu). Jos ennustetta ei vahvisteta, prosessori hylkää spekulatiivisen suorituksen tuloksen, mutta sen aikana käsitellyt tiedot jäävät prosessorin välimuistiin ja voidaan palauttaa menetelmillä, joilla määritetään välimuistin sisältö sivukanavien kautta, analysoidaan pääsyn muutos. aikaa välimuistiin tallennettuihin ja välimuistiin tallentamattomiin tietoihin.
Uuden hyökkäyksen erikoisuus on SWAPGS-käskyn spekulatiivisen suorituksen aikana tapahtuvan vuodon käyttö, jota käytetään käyttöjärjestelmissä korvaamaan GS-rekisterin arvo, kun ohjaus siirtyy käyttäjätilasta käyttöjärjestelmän ytimeen (GS käyttäjätilassa käytetty arvo korvataan arvolla, jota käytetään ytimen toimintojen aikana). Linux-ytimessä GS tallentaa per_cpu-osoittimen, jota käytetään ytimen tietojen käyttämiseen, ja käyttäjätila tallentaa osoittimet TLS:ään (Thread Local Storage).
Jotta SWAPGS-käskyä ei kutsuttaisi kahdesti, kun ytimeen päästään uudelleen ydintilasta tai kun suoritetaan koodia, joka ei vaadi GS-rekisterin muutosta, ennen käskyä suoritetaan tarkistus ja ehdollinen haara. Spekulatiivinen suoritusmoottori etenee ennakoivasti koodin suorittamiseen SWAPGS-käskyllä odottamatta tarkistuksen tulosta, ja jos valittua haaraa ei vahvisteta, se hylkää tuloksen. Siten voi syntyä tilanne, kun spekulatiivisesti valitaan haara, joka ei sisällä SWAPGS-suoritusta, mutta spekulatiivisen suorituksen aikana GS-rekisterin arvo muuttuu SWAPGS-käskyn vaikutuksesta ja sitä käytetään riippuvaisissa muistitoiminnoissa, jotka päätyvät CPU-välimuistiin.
Tutkijat ovat ehdottaneet kahta hyökkäysskenaariota, joita varten on valmistettu hyväksikäyttöprototyyppejä. Ensimmäinen skenaario perustuu tilanteeseen, jossa SWAPGS-käskyä ei suoriteta spekulatiivisesti, vaikka sitä todella käytetään suorituksessa, ja toinen on päinvastoin, kun SWAPGS-käsky suoritetaan spekulatiivisesti, vaikka sitä ei todellisuudessa pitäisi suorittaa. Jokaisessa skenaariossa on kaksi hyväksikäyttövaihtoehtoa: hyökkääjä voi määrittää arvon tietystä osoitteesta ytimen alueella ja hyökkääjä voi etsiä tiettyä arvoa satunnaisista osoitteista ytimessä. Hyökkäyksen toteuttaminen kestää kauan ja hyväksikäyttö voi kestää useita tunteja vuodon loppuun saattamiseksi.
Linux-ytimessä on ongelma
Korjaus edellyttää ytimen päivityksen asentamista sekä isäntäjärjestelmään että vierasympäristöihin, minkä jälkeen järjestelmä käynnistetään uudelleen. Suojauksen poistamiseen Linuxissa voidaan käyttää "nospectre_v1" -vaihtoehtoa, joka myös poistaa käytöstä toimenpiteet SWAPGS-haavoittuvuuden estämiseksi. Korjaus on saatavilla muodossa
Bitdefenderin tutkijoiden mukaan Intel sai tiedon ongelmasta viime vuoden elokuussa. Ongelma päätettiin korjata ohjelmallisesti, johon Microsoftin, Googlen ja Linux-ytimen kehittäjät olivat mukana koordinoidussa korjauksen kehittämisessä. Vanhemmat Intel-prosessorit, Ivy Bridgeä edeltävät prosessorit, on paljon vaikeampi hyökätä, koska hyväksikäytössä käytettyä WRGSBASE-ohjetta ei tueta. Ongelma ei vaikuta ARM-, POWER-, SPARC-, MIPS- ja RISC-V-järjestelmiin, koska ne eivät tue SWAPGS-ohjetta.
Ongelma koskee lähinnä Intel-prosessorien omistajia -
AMD-järjestelmissä pystyttiin toistamaan vain toinen hyökkäysskenaario, joka rajoittuu GS-rekisterin perusarvon spekulatiiviseen käsittelyyn, jota voidaan käyttää tiettyjen arvojen etsimiseen satunnaisilta muistialueilta. Voit estää tämän hyökkäysvaihtoehdon
Lähde: opennet.ru