Google demonstrira eksploataciju Spectre ranjivosti koristeći JavaScript u pregledniku

Google predstavio pre nekoliko dana razni prototipovi eksploatacije koji pokazuju mogućnost iskorišćavanja ranjivosti klase Spectre kada se izvodi JavaScript kod u pretraživaču, bez prolaska kroz gore navedene sigurnosne metode.

Eksploatacije se mogu koristiti za pristup memoriji procesa odnosno obrada web sadržaja u trenutnoj kartici. Da bi se testirao rad eksploatacije, pokrenuta je web stranica koja je procurila, a kod koji opisuje logiku operacije objavljen je na GitHubu.

Predloženi prototip je dizajniran da sistemi napada sa Intel Core i7-6500U procesori u Linux i Chrome 88 okruženju, iako ovo ne ostavlja po strani činjenicu da se mogu napraviti promjene za korištenje eksploatacije u drugim okruženjima.

Način rada nije specifičan za procesori Intel: nakon odgovarajuće adaptacije, Potvrđeno je da eksploatacija radi na sistemima sa CPU-ima treće strane, uključujući Apple M1 zasnovan na ARM arhitekturi. Nakon manjih podešavanja, eksploatacija radi i na drugim operativnim sistemima i drugim pretraživačima baziranim na Chromium motoru.

U okruženju baziranom na standardnim Chrome 88 i Intel Skylake procesorima, postigli smo curenje podataka iz procesa odgovornog za renderiranje web sadržaja na trenutnoj kartici Chrome (proces renderiranja) brzinom od 1 kilobajta u sekundi. Dodatno, razvijeni su alternativni prototipovi, na primjer exploit koji omogućava, po cijenu smanjene stabilnosti, povećanje stope curenja na 8kB/s kada se koristi tajmer performance.now() s preciznošću od 5 mikrosekundi (0.005 milisekundi). ). Pripremljena je i varijanta koja je radila sa tajmerom preciznosti od jedne milisekundi, koji bi se mogao koristiti za orkestriranje pristupa memoriji drugog procesa brzinom od oko 60 bajtova u sekundi.

Objavljeni demo kod sastoji se od tri dijela:

  • Prvi dio Kalibrirajte tajmer za procjenu vremena izvršenja operacija neophodnih za dohvaćanje podataka preostalih u kešu procesora kao rezultat spekulativnog izvršavanja CPU instrukcija.
  • Drugi dio definira raspored memorije koji se koristi prilikom dodjele JavaScript niza.
  • Treći dio Direktno iskorištava ranjivost Spectre za određivanje sadržaja memorije trenutnog procesa kao rezultat stvaranja uslova za spekulativno izvršenje određenih operacija, čiji rezultat odbacuje procesor nakon utvrđivanja neuspjelog predviđanja, ali tragovi izvršenja sjede u zajedničkom kešu i mogu se vratiti korištenjem metoda za utvrđivanje keširajte sadržaj koristeći kanale treće strane koji analiziraju promjenu vremena pristupa keširanim i nekeširanim podacima.

Predložena tehnika eksploatacije eliminira potrebu za visoko preciznim tajmerima dostupno preko API-ja performance.now() i bez podrške za tip SharedArrayBuffer, koji omogućava kreiranje nizova u dijeljenoj memoriji.

Eksploatacija uključuje Spectre uređaj, koji uzrokuje kontrolisano spekulativno izvršavanje koda, i analizator curenja bočnog kanala, koji određuje podatke koji su uneti u keš memoriju tokom spekulativnog izvršenja.

Gadget je implementiran pomoću JavaScript niza, u kojoj pokušava pristupiti području izvan granica tampon, što utiče na stanje bloka predviđanja grananja zbog prisustva provjere veličine bafera koju je dodao kompajler (procesor spekulativno obavlja rani pristup, ali vraća stanje nakon provjere).

Za analizu sadržaja keš memorije u uslovima nedovoljne preciznosti tajmera, predložena je metoda koja vara strategiju izbacivanja podataka iz keša Tree-PLRU koja se koristi u procesorima i omogućava da se povećanjem broja ciklusa značajno poveća razlika u vremenu kada se vrijednost se vraća iz keša i u odsustvu vrijednosti u kešu.

Google je objavio prototip eksploatacije kako bi pokazao izvodljivost napada koristeći ranjivosti klase Spectre i ohrabruju web programere da koriste tehnike koje smanjuju rizik od takvih napada.

Istovremeno, Google vjeruje da je bez značajne revizije predloženog prototipa nemoguće stvoriti univerzalne eksploatacije koje su spremne ne samo za demonstraciju, već i za široku upotrebu.

Izvor: https://security.googleblog.com


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.