Grupa istraživača kibernetičke sigurnosti u CISPA Helmholtz Centru za informacijsku sigurnost nedavno je identifikovala tri glavna sigurnosna propusta u pet komercijalnih RISC-V CPU-a, uključujući GhostWrite, koji omogućava napadaču da upiše proizvoljne podatke iz neprivilegovanih stanja u bilo koju lokaciju fizičke memorije.
GhostWrite je neprivilegovana sekvenca instrukcija koja omogućava napadačima da pišu na odabrane lokacije fizičke memorije, uključujući priključene uređaje.
Istraživači demonstriraju kako GhostWrite može čitati fizičku memoriju i omogućiti proizvoljno izvršavanje koda u mašinskom režimu, čak iu okruženjima cloud-a, kroz tri napada s kraja na kraj. Dodatno, RISCVuzz otkriva dvije neprivilegovane sekvence instrukcija “zaustavi i uhvati” koje uzrokuju nepovratno zaustavljanje CPU-a.
Dobio je veliku pažnju zahvaljujući podršci za jezgro Linux-a i usvojili su ga potrošački uređaji i platforme u cloud-u. Međutim, fleksibilna priroda RISC-V dovela je do različitih implementacija hardvera sa različitim karakteristikama i sigurnosnim praksama.
Međutim, to se može postići bez poznavanja izvornih kodova ili emulatora. Modeli se biraju od različitih proizvođača koji koriste diferencijalno CPU fuzzing kako bi se uporedilo njihovo arhitektonsko ponašanje.
Tehnička analiza
Ranjivost GhostWrite, pronađena u RISC-V CPU-u, T-Head XuanTie C910, predstavlja nedostatak u dizajnu hardvera koji predstavlja veliki sigurnosni rizik.
Ovo čini čitanje fizičke memorije i izvršavanje proizvoljnog koda u mašinskom režimu mogućim čak i kada se radi u oblaku.
RISCVuzz je takođe pronašao dvije privilegovane sekvence instrukcija koje bi mogle uzrokovati nepovratna zaustavljanja CPU-a, što je posljedično izložilo velike sigurnosne probleme u implementaciji RISC-V sistema.
Čak i napadači s minimalnim sistemskim privilegijama mogu čitati i pisati bilo koju memoriju i mijenjati periferne uređaje poput mrežnih kartica.
Ghostwrite eliminiše sve ugrađene sigurnosne kontrole CPU-a i time omogućava napadačima apsolutnu kontrolu nad cijelim sistemom.
Međutim, ova ranjivost je pogoršana činjenicom da bi njeno popravljanje uključivalo onemogućavanje oko 50% njegovih funkcija, što ga čini neprikladnom mjerom.
Pored RISC-V ISA, koji pomaže u rješavanju velikih vrijednosti informacija, ove pokvarene instrukcije se bave fizičkom memorijom ignorišući zaštitu virtualne memorije i izolaciju procesa koju nameću OS i hardver.
Za razliku od napada sa strane kanala ili prolaznog izvršavanja, GhostWrite je direktna CPU greška uzrokovana neispravnim instrukcijama vektorskog proširenja.
GhostWrite je nedostatak ugrađen u hardver koji se ne može popraviti korištenjem ažuriranja softvera. Ovo omogućava neprivilegovanim napadačima da pišu na bilo koju memorijsku lokaciju, potpuno zaobilazeći sigurnosne funkcije i dobijajući nekontrolisani pristup uređaju.
Nadalje, omogućava hakerima da otmu hardverske uređaje putem memorijsko mapiranih I/O (MMIO), omogućavajući im da izvrše proizvoljne komande na tim uređajima.
Drugi exploit pokazuje kako funkcija čitanja zasnovana na GhostWrite-u može procuriti bilo koji memorijski sadržaj. Kada administrator unese tajnu lozinku u pouzdani prompt (lijevo), eksploatacija (desno) ispunjava fizičku memoriju tabelama stranica.
Ovo traje nekoliko sekundi na sistemu sa 8 GB memorije. Eksploatacija zatim koristi GhostWrite za izmjenu jedne od ovih tabela stranica, dopuštajući joj da čita tajnu lozinku direktno iz fizičke memorije.
U nastavku smo spomenuli sve ranjive uređaje:-
- Scaleway Elastic Metal RV1, goli metal C910 instance oblaka
- Liči klaster 4A, računarski klaster
- Lichee Book 4A, laptop
- Lichee Console 4A, mali laptop
- Lichee Pocket 4A, igraća konzola
- Sipeed Lichee Pi 4A, jednopločni računar (SBC)
- Milk-V Meles, SBC
- BeagleV-Ahead, SBC
Prema izvještaju , Diferencijalno fuzz testiranje RISC-V CPU-a otkrilo je GhostWrite upoređivanjem rezultata malih programa na različitim procesorima.
Međutim, T-Head XuanTie C910 je postupio drugačije, jer njegovo izvršenje nije izazvalo izuzetak kao što se očekivalo, već je samo izvršilo instrukciju vektorske memorije koja je nelegitimno kodirana u nju.
Ovo implicira direktnu ozbiljnu grešku pisanja fizičke memorije koja može zaobići sisteme zaštite virtuelne memorije.
Izvor: CyberSecurityNews