Toinen haavoittuvuus on havaittu AMD-suorittimissa, joka sallii Meltdown-hyökkäykset

Grazin teknisen yliopiston (Itävalta) ja Helmholtzin tietoturvakeskuksen (CISPA) tutkijaryhmä on paljastanut tietoja haavoittuvuudesta (CVE-2021-26318) kaikissa AMD-prosessoreissa, jotka mahdollistavat Meltdown-luokan suorittamisen. sivukanavahyökkäykset (alun perin oletettiin, että Meltdown-haavoittuvuus ei vaikuta AMD-prosessoreihin). Käytännössä hyökkäystä voidaan käyttää salattujen viestintäkanavien luomiseen, ytimen toiminnan valvontaan tai tietojen hankkimiseen ytimen muistissa olevista osoitteista KASLR-suojauksen ohittamiseksi samalla kun ytimen haavoittuvuuksia hyödynnetään.

AMD:n mielestä ei ole tarkoituksenmukaista ryhtyä erityistoimenpiteisiin ongelman estämiseksi, koska haavoittuvuudesta, kuten elokuussa löydetystä vastaavasta hyökkäyksestä, on vain vähän hyötyä todellisissa olosuhteissa, sitä rajoittavat prosessin osoiteavaruuden nykyiset rajat ja se vaatii tiettyjen valmiita käskysarjoja (gadgeteja) ytimessä. Hyökkäyksen havainnollistamiseksi tutkijat latasivat oman ydinmoduulinsa keinotekoisesti lisätyllä gadgetilla. Todellisissa olosuhteissa hyökkääjät voivat korvata tarvittavat sekvenssit esimerkiksi eBPF-alijärjestelmän haavoittuvuuksilla säännöllisesti.

Suojautuakseen tätä uudentyyppisiltä hyökkäyksiltä AMD suositteli turvallisten koodaustekniikoiden käyttöä, jotka auttavat estämään Meltdown-hyökkäykset, kuten LFENCE-ohjeiden käyttöä. Ongelman tunnistaneet tutkijat suosittelevat tiukemman muistisivutaulukon eristyksen (KPTI) käyttöönottoa, jota käytettiin aiemmin vain Intel-suorittimissa.

Kokeen aikana tutkijat onnistuivat vuotamaan tietoa ytimestä käyttäjätilassa olevaan prosessiin nopeudella 52 tavua sekunnissa, koska ytimessä oli gadget, joka suorittaa toiminnon "if (offset < data_len) tmp = LUT[data[offset] * 4096];” . On ehdotettu useita menetelmiä tiedon hakemiseksi sivukanavien kautta, jotka päätyvät välimuistiin spekulatiivisen suorituksen aikana. Ensimmäinen menetelmä perustuu prosessorin käskyn "PREFETCH" (Prefetch+Time) suoritusajan poikkeamien analysointiin ja toinen energiankulutuksen muutoksen muuttamiseksi suoritettaessa "PREFETCH" (Prefetch+Power).

Muista, että klassinen Meltdown-haavoittuvuus perustuu siihen, että käskyjen spekulatiivisen suorittamisen aikana prosessori voi päästä yksityiselle tietoalueelle ja sitten hylätä tuloksen, koska asetetut oikeudet estävät tällaisen pääsyn käyttäjäprosessilta. Ohjelmassa spekulatiivisesti suoritettu lohko erotetaan pääkoodista ehdollisen haaran avulla, joka todellisissa olosuhteissa laukeaa aina, mutta johtuen siitä, että ehdollinen lauseke käyttää laskettua arvoa, jota prosessori ei tiedä ennaltaehkäisevän suorituksen aikana. koodi, kaikki haaravaihtoehdot suoritetaan spekulatiivisesti.

Koska spekulatiivisesti suoritetut toiminnot käyttävät samaa välimuistia kuin normaalisti suoritettavat käskyt, on spekulatiivisen suorituksen aikana mahdollista asettaa välimuistiin merkkejä, jotka heijastavat yksittäisten bittien sisältöä yksityisellä muistialueella, ja sitten normaalisti suoritettavassa koodissa niiden arvon määrittämiseksi ajoituksen avulla. välimuistissa olevien ja ei-välimuistin tietojen analysointi.

Lähde: opennet.ru

Lisää kommentti