Haavoittuvuus AMD-suorittimien spekulatiivisessa suoritusmekanismissa

Grsecurity-projekti on julkaissut yksityiskohdat ja esittelyn AMD-prosessorien uuden haavoittuvuuden (CVE-2021-26341) hyökkäysmenetelmästä, joka liittyy käskyjen spekulatiiviseen suorittamiseen ehdottomien eteenpäinlähetystoimintojen jälkeen. Jos hyökkäys onnistuu, haavoittuvuus mahdollistaa mielivaltaisten muistialueiden sisällön määrittämisen. Esimerkiksi tutkijat ovat valmistaneet hyväksikäytön, jonka avulla he voivat määrittää osoitteen asettelun ja ohittaa KASLR-suojausmekanismin (ytimen muistin satunnaistaminen) suorittamalla etuoikeutettua koodia ePBF-ytimen alijärjestelmässä. Ei voida sulkea pois muita hyökkäysskenaarioita, jotka voivat johtaa ytimen muistin sisällön vuotamiseen.

Haavoittuvuuden avulla voit luoda olosuhteita, joissa prosessori ennakoivan suorituksen aikana spekulatiivisesti käsittelee käskyn välittömästi muistissa olevan hyppykäskyn jälkeen (SLS, Straight Line Speculation). Lisäksi tällainen optimointi ei toimi vain ehdollisen hypyn operaattoreille, vaan myös käskyille, jotka edellyttävät suoraa ehdotonta hyppyä, kuten JMP, RET ja CALL. Noudattamalla ehdottomia hyppyohjeita voidaan sijoittaa mielivaltaisia ​​tietoja, joita ei ole tarkoitettu suoritettavaksi. Määritettyään, että haara ei sisällä seuraavan käskyn suorittamista, prosessori yksinkertaisesti peruuttaa tilan ja jättää huomioimatta spekulatiivisen suorituksen, mutta käskyn suorittamisen jälki jää jaettuun välimuistiin ja on käytettävissä analysoitavaksi käyttämällä sivukanavan hakutekniikoita.

Kuten Spectre-v1-haavoittuvuuden hyväksikäytössä, hyökkäys vaatii tiettyjen käskysarjojen (gadgetien) läsnäolon ytimessä, jotka johtavat spekulatiiviseen suoritukseen. Haavoittuvuuden estäminen tässä tapauksessa tarkoittaa tällaisten gadgetien tunnistamista koodissa ja lisäohjeiden lisäämistä niihin, jotka estävät spekulatiivisen suorittamisen. Edellytykset spekulatiiviselle suoritukselle voivat luoda myös eBPF-virtuaalikoneessa käynnissä olevilla ohjelmilla, joilla ei ole erityisoikeuksia. Jotta kyky rakentaa gadgeteja eBPF:n avulla voidaan estää, on suositeltavaa poistaa eBPF:n etuoikeutetut käyttöoikeudet järjestelmästä ("sysctl -w kernel.unprivileged_bpf_disabled=1").

Haavoittuvuus vaikuttaa Zen1- ja Zen2-mikroarkkitehtuuriin perustuviin prosessoreihin, mukaan lukien ensimmäisen ja toisen sukupolven AMD EPYC- ja AMD Ryzen Threadripper -prosessorit sekä AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon X, AMD Ryzen Threadripper PRO- ja APU-sarjan prosessorit A. Ohjeiden spekulatiivisen suorittamisen estämiseksi on suositeltavaa kutsua INT3- tai LFENCE-käskyjä haaratoimintojen (RET, JMP, CALL) jälkeen.

Lähde: opennet.ru

Lisää kommentti