Tutkijat ovat löytäneet tietoturva-aukkoja kiinalaisen Alibaban tytäryhtiön T Headin kahdesta suositusta RISC V -ytimestä. Haavoittuvuus on nimeltään Ghostwrite. Alttiina ovat T Headin suorittimet XuanTie C910 ja C920.
Haavoittuvuuksien takia laitteisiin voi muutamassa mikrosekunnissa tapahtuneen hyökkäyksen jälkeen normaali käyttäjätili lukea ja kirjoittaa mihin tahansa muistipaikkaan ja ohjata oheislaitteita, kuten verkkokortteja, kiintolevyjä ja näytönohjaimia. Ytimet on integroitu vähintään kahteen prosessoriin, joita käytetään vähintään puolella tusinalla alustalla.
Alibaba käyttää yhtä niistä omassa pilvessään ja yhtä IoT-piirissä. Samaa prosessoria käytetään ranskalaisessa Scalewayn pilvipalvelimissa. Scaleway korjasi haavoittuvuuden 6. kesäkuuta ja käyttää edelleen C910-prosessoria palvelimillaan.
C910 on saavuttanut kohtuullisesti suosiota. Se on RISC-V -tapaan ilmainen ja yksi luokkansa nopeimpia prosessoreita. Suoritin löytyy esimerkiksi Beagleboard-korteilta ja maailman ensimmäisestä RISC V -kannettavasta.
Prosessorin sisäänrakennettu suojaus ei suojaa Ghostwritea vastaan. Docker-kontti tai prosessorin sijoittamiseen omaan hiekkalaatikkoonsa eivät estä hyökkäystä. Ainoa tapa on sammuttaa suorittimen vektoritoiminnot, joita haavoittuvuus hyödyntää.
Haavoittuvuus löydettiin saksalaisessa CISPA-tutkimuslaitoksessa tutkijoiden omalla Riscvuzz-työkalulla. Sitä käytettiin tutkimaan, kuinka saman Risc V -arkkitehtuurin eri toteutukset reagoivat samaan satunnaisesti luotuun ohjelmakoodiin. Ajatuksena oli, että jos joku suoritin reagoi eri tavalla, se oli mahdollinen merkki haavoittuvuudesta.
Näin tapahtuikin. Tutkijat havaitsivat, että C910 suoritti väärin muotoillun käskyn sen sijaan, että olisi kieltäytynyt, kuten muutkin. Jatkoanalyysissä selvisi, että C910 voi kirjoittaa suoraan koko fyysiseen muistiin. Ohjelmat käyttävät tavallisesti virtuaalisia osoitteita, jotka ohjataan automaattisesti fyysisen muistin eristyneille saarille. Bonuksena pääsy muistiin antaa myös täyden hallinnan muistin kautta kommunikoiviin oheislaitteisiin.
Onneksi pilvipalvelujen käyttämä C910 ei tue vektorilaajennuksen lopullista versiota 1.0, vaan yhteensopimatonta versiota 0.7.1. Tämä tarkoittaa, että jokaisella, joka käyttää tavallista Linuxia C910-prosessorilla, vektorituki on jo poistettu käytöstä, eikä haavoittuutta ole.
Jos haluaa lisätietoa siitä, miten Ghostwrite toimii, se löytyy täältä.