TONTOU — napad na CPU Intel i AMD koji dopušta zaobilaženje zaštite od ranjivosti Spectre v2

Istraživači s Massachusetts Institute of Technology otkrili su napad TONTOU (Vrijeme neutralizacije do vremena korištenja), nudeći novi način iskorištavanja mikroarkitektonskih ranjivosti klase Spectre v2. Ova ranjivost omogućava određivanje sadržaja memorije jezgre prilikom izvođenja eksploita u korisničkom prostoru. Kod za blokiranje iskorištavanja ranjivosti uključen je u Linux jezgru 5. kolovoza i obuhvaćen je izdanjima 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 i 5.10.263.

Istraživači su demonstrirali mogućnost napada lokalnog nepovlaštenog korisnika za određivanje korisničkog hash lozinke root-a, pohranjene u datoteci /etc/shadow i učitane u memoriju prilikom autentifikacije u sustavu. Istraživačima je uspjelo doći do curenja podataka iz memorije jezgre s brzinom od 5.47 bajta u sekundi i točnošću od 91.97%. Od 10 testnih izvođenja eksploita, koja su u prosjeku trajala 18 minuta, u polovici slučajeva uspješno su identificirali prisutnost datoteke /etc/shadow u memoriji i izvukli njezin sadržaj.

Eksploit je demonstriran na sustavima s AMD procesorima i može se primijeniti na CPU AMD obitelji Zen 1-4. Na Intel sustavima napad je također izvediv, ali je iskorištavanje složenije. Za zaštitu od preljeva staka adresa povratka i blokiranja ranjivosti SRSO (Spekulativno prelivanje staka povratka) u AMD procesorima primjenjuje se mehanizam zaštite Safe-RET, koji očistava predmemoriju predviđanja skokova nakon svake upotrebe i sužava prozor za napad na 2 instrukcije, koje se izvršavaju u nekoliko desetaka nanosekundi.

Kako bi se zaobišla ova zaštita i proširilo vreme za napad, implementirana je tehnika usporavanja CPU-a, što omogućava da se izvrši umetanje prekida u pravom trenutku kako bi se preusmerio tok izvršavanja u jezgru i koristio obrada prekida za iskrivljavanje zapisa u baferu za predikciju grananja. Da bi iskoristio SRSO ranjivost, napadač može stvoriti uslove pod kojima će blok za predikciju grananja spekulativno izvršiti veliki broj netačno predviđenih poziva CALL, dovoljno da preplavi stek adresa povratka i prepiše ispravno predviđene tačke povratka koje su smeštene na početku steka. Kao rezultat toga, početni elementi steka mogu biti prepisani na odabrane vrednosti od strane napadača, što će na kraju dovesti do korišćenja ovih zamenjenih vrednosti prilikom spekulativnog izvršavanja instrukcije RET u kontekstu drugog procesa.

Procesor će utvrditi da predikcija grananja nije uspela i vratiće operaciju u prvobitno stanje, ali obrađeni podaci tokom spekulativnog izvršavanja će ostati u kešu i mikroarhitektonskim baferima. Ako netačno izvršeni blok pristupi memoriji, njegovo spekulativno izvršavanje će rezultirati ostajanjem u zajedničkom kešu, kao i podacima, pročitanim iz memorije. Za ekstrakciju informacija iz keša može se koristiti jedan od metoda određivanja sadržaja keša na osnovu analize promene vremena pristupa keširanim i nekeširanim podacima.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster