BHI on uusi Spectre-luokan haavoittuvuus Intel- ja ARM-suorittimissa

Ryhmä Vrije Universiteit Amsterdamin tutkijoita on tunnistanut Intel- ja ARM-suorittimien mikroarkkitehtuurirakenteissa uuden haavoittuvuuden, joka on laajennettu versio Spectre-v2-haavoittuvuudesta, jonka avulla voidaan ohittaa prosessoreihin lisätyt eIBRS- ja CSV2-suojausmekanismit. . Haavoittuvuudelle on annettu useita nimiä: BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) ja Spectre-BHB (CVE-2022-23960), jotka kuvaavat eri ilmenemismuotoja. sama ongelma (BHI - hyökkäys, joka vaikuttaa eri käyttöoikeustasoihin, esimerkiksi käyttäjäprosessiin ja ytimeen, BHB - hyökkäys samalla käyttöoikeustasolla, esim. eBPF JIT ja ydin).

Tutkijat ovat osoittaneet toimivan hyväksikäytön, jonka avulla ytimen muistista voidaan poimia mielivaltaisia ​​tietoja käyttäjätilasta. Esimerkiksi näytetään, kuinka valmisteltua hyväksikäyttöä käyttämällä on mahdollista poimia ytimen puskureista merkkijono, jossa on /etc/shadow-tiedostosta ladattu pääkäyttäjän salasanan hash. Hyökkäys osoittaa mahdollisuuden hyödyntää haavoittuvuutta yhdellä käyttöoikeustasolla (ytimen välinen hyökkäys) käyttämällä käyttäjän lataamaa eBPF-ohjelmaa. On myös mahdollista käyttää eBPF:n sijasta olemassa olevia Spectre-gadgeteja ytimen koodissa komentosarjoja, jotka johtavat käskyjen spekulatiiviseen suorittamiseen.

Haavoittuvuus esiintyy useimmissa nykyisissä Intel-prosessoreissa, lukuun ottamatta Atom-perheen prosessoreita. ARM-prosessoreista ongelma vaikuttaa Cortex-A15-, Cortex-A57-, Cortex-A7*, Cortex-X1-, Cortex-X2-, Cortex-A710-, Neoverse N1-, Neoverse N2-, Neoverse V1- ja mahdollisesti joihinkin Cortex-R-siruihin. Tutkimusten mukaan haavoittuvuus ei esiinny AMD-prosessoreissa. Ongelman poistamiseksi on ehdotettu useita ohjelmistomenetelmiä haavoittuvuuden estämiseksi, joita voidaan käyttää ennen laitteistosuojauksen ilmestymistä tuleviin CPU-malleihin.

Hyökkäysten estämiseksi eBPF-alijärjestelmän kautta on suositeltavaa poistaa oletusarvoisesti etuoikeutettujen käyttäjien mahdollisuus ladata eBPF-ohjelmia kirjoittamalla 1 tiedostoon “/proc/sys/kernel/unprivileged_bpf_disabled” tai suorittamalla komento “sysctl -w kernel. unprivileged_bpf_disabled=1". Gadget-hyökkäysten estämiseksi on suositeltavaa käyttää LFENCE-käskyä koodialueilla, jotka voivat johtaa spekulatiiviseen suorittamiseen. On huomionarvoista, että useimpien Linux-jakelujen oletuskokoonpano sisältää jo tarvittavat suojatoimenpiteet, jotka riittävät estämään tutkijoiden osoittaman eBPF-hyökkäyksen. Intelin suositukset eBPF:n etuoikeutettujen käyttöoikeuksien poistamisesta ovat myös oletusarvoja Linux-ytimen versiosta 5.16 lähtien, ja ne siirretään takaisin aikaisempiin haaroihin.

Käsitteellisesti BHI on laajennettu versio Spectre-v2-hyökkäyksestä, jossa lisäsuojan (Intel eIBRS ja Arm CSV2) ohittamiseksi ja tietovuotojen järjestämiseksi käytetään arvojen korvaamista Branch History -puskurissa, jota käytetään suorittimen ennusteen lisäämiseen. tarkkuushaaroitus ottamalla huomioon menneiden siirtymien historia. Hyökkäyksen aikana siirtymähistorian manipuloinnilla luodaan olosuhteet siirtymän virheelliselle ennustamiselle ja tarvittavien ohjeiden spekulatiiviselle suorittamiselle, jonka tulos päätyy välimuistiin.

Uusi hyökkäys on identtinen Spectre-v2:n kanssa lukuun ottamatta Branch History -puskurin käyttöä Branch Target -puskurin sijaan. Hyökkääjän tehtävänä on luoda olosuhteet sellaisiksi, että osoite, kun suoritetaan spekulatiivista toimintoa, otetaan määritellyn datan alueelta. Spekulatiivisen epäsuoran hypyn suorittamisen jälkeen muistista luettu hyppyosoite jää välimuistiin, minkä jälkeen se voidaan hakea jollakin välimuistin sisällön määrittämismenetelmistä perustuen välimuistiin tallennettujen ja välimuistiin tallentamattomien käyttöaikojen muutosten analyysiin. tiedot.

Lähde: opennet.ru

Lisää kommentti