Viimeisin prosessorien tietoturvavirheiden sarjassa, Zenbleed on jälleen yksi asia, joka on korjattava. Tässä on mitä sinun on tiedettävä.
Sen jälkeen kun Spectre- ja Meltdown-prosessorihyödykkeet julkistettiin vuonna 2018, laskentamaailma on ollut melko valppaana tietoturvavirheiden ja porsaanreikien löytämisestä prosessoreista, ja viimeisen viiden vuoden aikana tutkijat ovat löytäneet paljon. Heinäkuun 24. päivänä julkistettiin vielä toinen hyväksikäyttö sen jälkeen, kun siitä ilmoitettiin ensimmäisen kerran toukokuussa. Tällä kertaa se on nimenomaan Zen 2 -arkkitehtuuriin rakennetuille AMD-prosessoreille, ja sitä kutsutaan nimellä "Zenbleed". Tässä on kaikki mitä sinun tulee tietää Zenbleedistä ja sen merkityksestä maailmalle.
Miten Zenbleed toimii?
Zenbleed on hyvin samanlainen kuin muut laitteistopohjaiset tietoturvavirheet, kuten Spectre, siinä mielessä, että se hyödyntää suorittimien spekulatiivista kykyä. Suorituskyvyn parantamiseksi prosessorit spekuloida tai ennustaa seuraavaa, mitä heidän on tehtävä, ja sen jälkeen kun Spectre julkistettiin ensimmäisen kerran, maailma on oppinut, että spekulointi voi olla hyvin epävarmaa, jos se tehdään väärin.
CPU: n rekistereissä voi olla pieni määrä tietoa, tyypillisesti käsky, tallennusosoite tai mitä tahansa muuta pientä dataa. XMM-rekistereitä x86_64-arkkitehtuurissa (siis mitä tahansa vaikuttavia Zen 2 -prosessoreja) voidaan käyttää vain tietojen laskemiseen, ei muistin osoitteisiin. Tämä on laajennettu 256 bittiin YMM-rekistereissä ja 512 bittiin ZMM-rekistereissä. Tässä tapauksessa XMM viittaa alempaan 128 bittiin kaikki yhteensä 512 bittiä ZMM-rekistereistä.
Nämä rekisterit ovat uskomattoman hyödyllisiä monille eri asioille, mukaan lukien tavalliset C-toiminnot. Haavoittuvuus väärinkäyttää spekulatiivista suoritusta ja haarojen vääriä ennusteita sylkeäkseen satunnaisen datan muistista, mutta tiedot voivat olla peräisin mitä tahansa. Normaalit C-kirjastofunktiot, kuten strlen, joka mittaa merkkijonon pituutta, voivat käyttää näitä rekistereitä tiedon siirtämiseen ympärilläsi, ja on mahdollista, että käyttämäsi salasana on vahingossa joutunut johonkin näistä rekisterit.
Haarojen ennustaminen ja spekulatiivinen suoritus viittaavat yleisesti siihen, kun tietokoneesi suorittaa toimintoja, joita ei vielä tarvita, mutta joita todennäköisesti tarvitaan seuraavissa jaksoissa. Se tehdään usein aikoina, jolloin järjestelmälläsi on vapaita resursseja, koska se nopeuttaa kokonaiskäsittelyä, kun ohjeet tai tiedot eivät muuten olisi vielä valmiita prosessorille. Jos tehtyä työtä ei tarvita, se tyypillisesti hylätään ja prosessori voi hypätä takaisin sinne, missä se tarvitsee suorittaakseen seuraavan, oikean käskyn. Kun se tekee tämän, sitä kutsutaan haaran väärin ennustukseksi.
Ongelma ilmenee vzeroupper-käskyssä, joka nollaa pois YMM- ja ZMM-rekisterien 128 ja ylemmän bitit. Tämä tehdään erityisesti siirryttäessä AVX: n ja vanhan SSE-koodin välillä, koska se eliminoi suorituskyvyn väärien riippuvuuksien aiheuttamat rangaistukset samalla, kun vältetään efekti, joka on samanlainen kuin kokonaislukupromootio C.
Jos prosessori suorittaa spekulatiivisesti vzeroupper-käskyn, oikeaa palautusta ei ole. Asianomaiset Ryzen-prosessorit voidaan kuitenkin pakottaa toipumaan siitä, vaikkakin väärin. Kun ohjelma on tässä tilassa, sillä hetkellä suoritettava ohjelma voi vakoilla näitä rekistereitä reaaliajassa ja tarkastella kaikkialla järjestelmässä kulkevaa dataa milloin tahansa.
Mihin prosessoreihin Zenbleed vaikuttaa, ja milloin korjaukset ovat saatavilla?
Kuten aiemmin todettiin, vain Zen 2 -arkkitehtuuriin perustuvien AMD-suorittimien tiedetään olevan alttiin Zenbleed-tietoturvavirheelle, mutta Zen 2 -arkkitehtuuri on käyttänyt prosessoreita kolmessa sarjassa, joten on sotkuista selvittää, mitkä prosessorit ovat haavoittuvia ja mitkä eivät ole. Tässä on taulukko, jonka pitäisi tehdä kaikki selväksi:
Vaikutetut prosessorit | |
---|---|
Ryzen 3000 -sarja |
Kaikki paitsi APU: t (esim. Ryzen 3 3200G) |
Epyc Rooma |
Kaikki |
Ryzen 4000 -sarja |
Kaikki |
Ryzen 5000 -sarja |
Vain 5300U, 5500U ja 5700U |
Ryzen 7000 -sarja |
Vain 7020 APU: ta (esim. Ryzen 3 7320U) |
Tämä on melko suuri määrä AMD-prosessoreita, ja nämä ovat vain ne, jotka on vahvistettu tähän mennessä. Zen 2:ta käytetään myös Steam Deckin, Xbox Series S: n ja X: n sekä PS5:n virtalähteissä. Emme ole kuulleet kumpaakaan tapaa, onko vaikutusta myös näihin prosessoreihin, mutta tämän hyväksikäytön toiminnasta päätellen olisin yllättynyt, jos ne eivät vaikuttaisi myös niihin. Vaikuttaa epätodennäköiseltä, että AMD korjasi sen Xboxille ja PS5:lle, koska se vaikuttaa myös 7020-sarjan siruihin, jotka ovat uudempia.
Kirjoitushetkellä mikrokoodi on lähetetty Linux-ytimeen joka korjaa tämän haavoittuvuuden, ja käyttöjärjestelmässäsi tai BIOSissasi saattaa jo olla päivitys, joka korjaa tämän ongelman.
Mitä tämä tarkoittaa tietokoneille, jotka käyttävät haavoittuvia suorittimia?
Tähän on vaikea vastata, koska kaikki tietokoneet eivät ole samanarvoisia. Tavallisten ihmisten, jotka käyttävät vain pelipöytätietokoneita ja kannettavia tietokoneita, ei luultavasti tarvitse olla niin huolissaan. Tämä on melko hienostunut hyväksikäyttö, ja vaikka se on nyt julkisesti tiedossa, ei ole vielä tunnettuja esimerkkejä hyökkääjästä, joka olisi käyttänyt Zenbleediä murtautuakseen mihinkään.
Panokset ovat kuitenkin paljon suuremmat palvelinkeskuksille ja tärkeille henkilöille, jotka käsittelevät arkaluonteisia tietoja omilla tietokoneillaan. On syy, miksi AMD on ollut hyvin selvä, että Epyc Rome korjattiin ennen haavoittuvuuden julkistamista: paljon arkaluonteisia tietoja käsittelevät Epyc-suorittimet, ja olisi katastrofi, jos suuria palvelimia käyttäviä suorittimia onnistuisi hyökkäsi. Linux-ydin 6.4.6 on jo julkaistu ja korjaa tämän haavoittuvuuden ottamalla käyttöön virallinen mikrokoodikorjaus AMD: ltä. Näyttää todennäköiseltä, että Microsoft sisällyttää jotain vastaavaa Windowsiin.
Huolestuttavaa, AMD: n viralliset BIOS-korjaukset eivät välttämättä ole saatavilla useisiin kuukausiin, jolloin siinä on "kanapala", jonka voit asettaa, jos käytät Linux- tai FreeBSD-konetta. Linux-koneissa voit käyttää msr-toolsia ja suorittaa seuraavan komennon.
wrmsr -a 0xc0011029 $(($(rdmsr -c 0xc0011029) | (1<<9)))
FreeBSD: ssä voit käyttää myös seuraavaa.
cpucontrol(8)
SMT: n poistaminen käytöstä ei riitä vähentämään haavoittuvuutta.
Yksi asia, joka tekee Zenbleedistä erityisen huonon, on se, että Zen 2 oli yksi AMD: n suosituimmista suoritinarkkitehtuureista. Se aloitti AMD: n paluun vuosina 2019 ja 2020, ja monet ihmiset, yritykset ja organisaatiot käyttävät edelleen Zen 2 -prosessorilla varustettuja tietokoneita vuonna 2023, erityisesti Epyc Romea. prosessorit. Tämä ei ole niin huono kuin Spectre (joka vaikuttaa melkein kaikkiin ennen 2019-prosessoreihin) ja Meltdown (joka vaikuttaa melkein kaikkiin ennen 2019 Intel-suorittimiin), mutta se on silti melko laajalle levinnyt.
Tällaisten haavoittuvuuksien tietoturvakorjaukset johtavat myös usein suorituskykyyn, mutta AMD kertoi Tomin laitteisto että tämä rangaistus riippuu suorittimesta ja työkuormasta. Spekulaatio ja ennustaminen ovat olleet melko tärkeitä suorittimen suorituskyvylle, joten on epäselvää, heikentääkö mahdollinen korjaus suorituskykyä merkittävästi.