Još jedna ranjivost je identifikovana u AMD procesorima koja omogućava Meltdown napade

Tim istraživača sa Tehničkog univerziteta u Gracu (Austrija) i Helmholtz centra za sigurnost informacija (CISPA) otkrio je informaciju o ranjivosti (CVE-2021-26318) u svim AMD procesorima koja omogućava izvođenje Meltdown klase napadi sa strane kanala (u početku se pretpostavljalo da na AMD procesore ne utiče ranjivost Meltdown). U praktičnom smislu, napad se može koristiti za uspostavljanje prikrivenih kanala komunikacije, praćenje aktivnosti u kernelu ili dobijanje informacija o adresama u memoriji kernela kako bi se zaobišla KASLR zaštita dok se iskorištavaju ranjivosti u kernelu.

AMD smatra neprikladnim preduzimanje posebnih mera za blokiranje problema, budući da je ranjivost, poput sličnog napada otkrivenog u avgustu, od male koristi u realnim uslovima, ograničena je trenutnim granicama adresnog prostora procesa i zahteva prisustvo određenih gotove sekvence instrukcija (gadžeta) u kernelu. Da bi demonstrirali napad, istraživači su učitali svoj vlastiti modul kernela s umjetno dodanim gadgetom. U stvarnim uslovima, napadači mogu da koriste, na primer, redovno pojavljivanje ranjivosti u eBPF podsistemu da zamene potrebne sekvence.

Da bi se zaštitio od ove nove vrste napada, AMD je preporučio korištenje tehnika sigurnog kodiranja koje pomažu u blokiranju Meltdown napada, kao što je korištenje LFENCE instrukcija. Istraživači koji su identifikovali problem preporučuju omogućavanje strože izolacije tablice memorijskih stranica (KPTI), koja se ranije koristila samo za Intel procesore.

Tokom eksperimenta, istraživači su uspjeli procuriti informacije iz kernela u proces u korisničkom prostoru brzinom od 52 bajta u sekundi, s obzirom na prisustvo gadgeta u kernelu koji izvodi operaciju „if (offset < data_len) tmp = LUT[podaci[pomak] * 4096];” . Predloženo je nekoliko metoda za dohvaćanje informacija preko sporednih kanala koje završavaju u kešu tokom spekulativnog izvršenja. Prvi metod se zasniva na analizi odstupanja u vremenu izvršenja procesorske instrukcije „PREFETCH“ (Prefetch+Time), a drugi na promeni promene potrošnje energije prilikom izvršavanja „PREFETCH“ (Prefetch+Power).

Podsjetimo da je klasična Meltdown ranjivost zasnovana na činjenici da tokom spekulativnog izvršavanja instrukcija, procesor može pristupiti privatnom području podataka i potom odbaciti rezultat, budući da postavljene privilegije zabranjuju takav pristup korisničkom procesu. U programu, spekulativno izvršeni blok je odvojen od glavnog koda uslovnom granom, koja se u realnim uslovima uvek aktivira, ali zbog činjenice da uslovni izraz koristi izračunatu vrednost koju procesor ne poznaje tokom preventivnog izvršavanja koda, sve opcije grananja se izvode špekulativno.

Budući da spekulativno izvršene operacije koriste istu keš memoriju kao i normalno izvršavane instrukcije, moguće je tokom spekulativnog izvršenja postaviti markere u keš koji odražavaju sadržaj pojedinačnih bitova u privatnom memorijskom području, a zatim u normalno izvršavanom kodu odrediti njihovu vrijednost kroz vrijeme analiza pristupa keširanim i ne-keširanim podacima.

izvor: opennet.ru

Dodajte komentar