TONTOU: Nov napad Spectre v2 na AMD in Intel

Ključne točke:
  • TONTOU izkorišča časovni razmik med čiščenjem napovednega medpomnilnika in njegovo uporabo.
  • Napadalci uporabljajo »injektiranje prekinitev« za preusmeritev toka jedra in kontaminacijo napovednih strojev.
  •  Vpliva na AMD-jeve arhitekture Zen 1 do 4 in več generacij Intelovih procesorjev.
  • Popravki za ublažitev so že vključeni v nedavne posodobitve jedra Linuxa (5. avgusta).

Napad na TONTOU

Je možno, da je ravno hitrost vašega procesorja tisto, kar ogroža vašo varnost? Da bi razumeli, kako procesorji dosegajo svojo hitrost , moramo upoštevati, da delujejo tako, da "napovedujejo prihodnost" ... Ne, niso čarobni ali imajo majhno kristalno kroglo ...

Procesorji delujejo tako, da namesto da bi čakali, po kateri poti bo program šel, čip napove verjetno pot in jo predvidi. Če je napoved napačna, se delo zavrže, sledi pa ostanejo v pomnilniku. Tukaj nastopi Spectre , ena najpomembnejših ranljivosti, odkritih v zadnjih letih. Od odkritja so se napadalci naučili brati te sledi in ustvarili vse bolj dovršene različice; TONTOU je ena od teh novih ranljivosti.

Raziskovalci MIT so odkrili TONTOU (Time-of-Neutralization to Time-of-Use), sofisticirano novo tehniko za izkoriščanje ranljivosti Spectre v2 , ki omogoča branje pomnilnika jedra iz uporabniškega prostora.

Čeprav proizvajalci in razvijalci že leta oblikujejo različne zaščitne mehanizme pred napovednimi napadi, so napadalci uspeli odkriti nove poti, ta nova študija CSAIL pa prikazuje, kako te zaščite zaobiti.

Raziskovalci so odkrili, da obstaja neizogiben časovni premor med trenutkom čiščenja medpomnilnika in trenutkom uporabe napovedi, in prav v tem majhnem premoru se prek sistemskih prekinitev vbrizga koda (včasih le peščica ukazov), kar omogoča ponovno kontaminacijo strojne opreme in pridobivanje kritičnih podatkov.

Glede napada: Motnje in kršitve v Safe-RET

AMD ima obrambo pred ranljivostmi SRSO (Speculative Return Stack Overflow), imenovano Saferet, ki očisti napovedni mehanizem tik pred vsako uporabo. To pusti okno ranljivosti , ki ga je mogoče izkoristiti v nekaj deset nanosekundah. Za napad na tako majhno okno so raziskovalci razvili tehniko, imenovano Interrupt Injection.

Procesorji nenehno začasno ustavljajo svoja opravila, da bi obravnavali prekinitve, običajni programi pa lahko konfigurirajo te časovnike . S tem v mislih so raziskovalci natančno prilagodili časovnik in z uporabo tehnike za upočasnitev procesorja povzročili prekinitev procesorja v ravno napačnem trenutku . Med to prekinitvijo lahko napadalec prisili k izvedbi velikega števila klicev, kar prepolni sklad naslovov. Ko se napačno izvajanje konča, procesor zavrže proces, vendar dostopani podatki ostanejo v skupnih predpomnilnikih , od koder jih je mogoče izvleči z analizo časov dostopa.

Pridobivanje gesel in testiranje na resničnih sistemih

Da bi dokazali resnost TONTOU-ja, je ekipa zgradila delujočo zlorabo na sistemu AMD, ki je poganjal trenutno jedro Linuxa. Prva ovira je bila obhod obrambe, ki naključno določa položaj operacijskega sistema v pomnilniku, kar jim je uspelo v desetih poskusih, pri čemer je vsak test trajal približno devet minut.

Nato so kot neprivilegiran uporabnik demonstrirali lokalni napad , da bi ugotovili zgoščeno vrednost gesla root, pri čemer so uspešno izvlekli podatke s hitrostjo 5.47 bajtov na sekundo z 91.97-odstotno natančnostjo. V 50 % testov (ki so v povprečju trajali 18 minut) so uspešno zaznali in izvlekli vsebino datoteke z geslom. Čeprav je to počasna hitrost, je več kot zadostna za kritično ogrožanje strežnika.

Vpliv na Intel, AMD in popravek za ublažitev

Ekipa je preizkusila štiri generacije procesorjev Intel in AMD ter na obeh arhitekturah dosegla napovedne napake. Medtem ko se je tehnika izkazala za izvedljivo na družinah AMD Zen 1 do 4 , je napad na Intelovih čipih zaobšel dve različni zaščiti , čeprav je bilo med različnimi generacijami Intelovih procesorjev opaženo nedosledno vedenje , kar kaže na to, da so nominalne obrambe v strojni opremi implementirane različno.

Raziskovalci kot rešitev predlagajo, da se mehanizem za napovedovanje po koncu prekinitve še enkrat izbriše. Čeprav se ta ukrep zdi izvedljiv za AMD, bi lahko bil za Intel kontraproduktiven, saj napad temelji na tem, da prekinitev pusti konsistentno stanje, in bi lahko napad naredil zanesljivejši.

Raziskovalci so v začetku februarja obvestili AMD in Intel, vzdrževalce jedra Linuxa pa marca. Posledično je bilo 5. avgusta v jedro Linuxa integrirano blokiranje kode za ublažitev ranljivosti.

Nenazadnje, če vas zanima več informacij, lahko podrobnosti najdete na naslednji povezavi.


Dodaj kot prednostni vir v Googlu