Je li moguće da je upravo brzina vašeg procesora ono što ugrožava vašu sigurnost? Da bismo razumjeli kako procesori postižu svoju brzinu , moramo uzeti u obzir da oni rade tako što "predviđaju budućnost"... Ne, nisu magični niti imaju sićušnu kristalnu kuglu...
Procesori rade tako da umjesto čekanja da vidi kojim će putem program ići, čip predviđa vjerojatnu rutu i anticipira je. Ako je predviđanje netočno, rad se odbacuje, ali tragovi ostaju u memoriji. Tu nastupa Spectre , jedna od najznačajnijih ranjivosti otkrivenih posljednjih godina. Od svog otkrića, napadači su naučili čitati te tragove, stvarajući sve sofisticiranije varijante; TONTOU je jedna od tih novih ranjivosti.
Istraživači s MIT-a otkrili su TONTOU (Time-of-Neutralization to Time-of-Use), sofisticiranu novu tehniku za iskorištavanje ranjivosti Spectre v2 , koja omogućuje čitanje memorije kernela iz korisničkog prostora.
Iako su proizvođači i programeri godinama dizajnirali različite mehanizme zaštite od prediktivnih napada, napadači su uspjeli otkriti nove rute, a ova nova CSAIL studija pokazuje kako zaobići te zaštite.
Istraživači su otkrili da postoji neizbježan vremenski razmak između trenutka kada se međuspremnik briše i trenutka kada se predviđanja koriste, i upravo u tom malom razmaku se kod (ponekad samo nekoliko instrukcija) ubrizgava putem sistemskih prekida, što omogućuje ponovnu kontaminaciju hardvera i izdvajanje kritičnih podataka.
U vezi s napadom: Prekidi i kršenje Safe-RET-a
AMD ima obranu od SRSO (Speculative Return Stack Overflow) ranjivosti pod nazivom Saferet, koja čisti mehanizam za predviđanje neposredno prije svake upotrebe. To ostavlja prozor ranjivosti koji se može iskoristiti u nekoliko desetaka nanosekundi. Kako bi napali tako mali prozor, istraživači su razvili tehniku koju su nazvali Interrupt Injection.
Procesori stalno pauziraju svoje zadatke kako bi obradili prekide, a uobičajeni programi mogu konfigurirati te timere . Imajući to na umu, istraživači su precizno prilagodili timer i, koristeći tehniku usporavanja CPU-a, uzrokovali prekid procesora u točno pogrešnom trenutku . Tijekom ovog prekida, napadač može prisiliti izvršavanje velikog broja poziva, prepunjući adresni stog. Kada se pogrešno izvršavanje završi, procesor odbacuje proces, ali pristupljeni podaci ostaju u dijeljenim predmemorijama , odakle se mogu izdvojiti analizom vremena pristupa.
Ekstrakcija lozinki i testiranje na stvarnim sustavima
Kako bi demonstrirali ozbiljnost TONTOU-a, tim je izgradio funkcionalni exploit na AMD sustavu s trenutnom Linux kernelom. Prva prepreka bila je zaobilaženje obrane koja nasumično određuje poziciju operativnog sustava u memoriji, što su uspjeli učiniti u deset pokušaja, uzimajući oko devet minuta po testu.
Nakon toga, demonstrirali su lokalni napad kao neprivilegirani korisnik kako bi odredili hash root lozinke, uspješno izdvajajući podatke brzinom od 5.47 bajtova u sekundi s točnošću od 91.97%. U 50% testova (koji su u prosjeku trajali 18 minuta) uspješno su otkrili i izdvojili sadržaj datoteke s lozinkom. Iako je to mala brzina, više je nego dovoljna za kritično ugrožavanje poslužitelja.
Utjecaj na Intel, AMD i zakrpu za ublažavanje
Tim je testirao četiri generacije Intelovih i AMD procesora, postižući neuspjehe u predviđanju na objema arhitekturama. Dok se tehnika pokazala održivom na AMD-ovim Zen 1 do 4 obiteljima , na Intelovim čipovima napad je zaobišao dvije različite zaštite , iako je uočeno nedosljedno ponašanje između različitih Intelovih generacija, što sugerira da su nominalne obrane različito implementirane u hardveru.
Kao rješenje, istraživači predlažu brisanje mehanizma predviđanja drugi put nakon završetka prekida. Iako se ova mjera čini održivom za AMD, mogla bi biti kontraproduktivna za Intel, budući da se napad oslanja na prekid koji ostavlja konzistentno stanje i mogao bi učiniti napad pouzdanijim.
Istraživači su početkom veljače obavijestili AMD i Intel, a održavatelje Linux kernela u ožujku. Kao rezultat toga, blokiranje koda za ublažavanje ranjivosti integrirano je u Linux kernel 5. kolovoza.
Konačno, ako ste zainteresirani saznati više, detalje možete pronaći na sljedećoj poveznici.