Grupa od otkrili su istraživači sa Slobodnog univerziteta u Amsterdamu putem blog posta alat pod nazivom "casper" koji ističu da jeste dizajniran za identifikaciju isječaka koda u Linux kernelu koji se može koristiti za eksploataciju Ranjivosti klase Spectre uzrokovano spekulativnim izvršavanjem koda od strane procesora.
Za one koji nisu svjesni ove vrste napada, trebali bi to znati ranjivosti klase kao što je Spectre v1 omogućavaju određivanje sadržaja memorije, određena skripta (gadgeti) je potrebna u privilegovanom kodu, što dovodi do spekulativnog izvršavanja instrukcija.
Za optimizaciju, procesor počinje da pokreće takve uređaje u špekulativnom režimuili, zatim utvrđuje da predviđanje grananja nije opravdano i vraća operacije u prvobitno stanje, ali podaci obrađeni tokom spekulativnog izvršenja sjede u keš memoriji i međuspremnicima mikroarhitekture i dostupni su za ekstrakciju korištenjem različitih metoda određivanja zaostalih podataka kroz treće- kanali zabave.
Gadget Scan Tools na osnovu šablona ranije dostupan za ranjivost Spectre je pokazao vrlo visoku stopu lažnih pozitivnih rezultata, dok su mnogi pravi gedžeti izgubljeni (eksperimenti su pokazali da 99% gadžeta otkrivenih ovakvim alatima ne može da se koristi za napade, a 33% onih koji rade nisu primećeni uređaji koji mogu da dovedu do napada).
Predstavljamo Kasper, prolazni (ili spekulativni) skener uređaja za izvršavanje. Koristi politike analize korupcije za modeliranje napadača sposobnog da iskoristi proizvoljne softverske/hardverske ranjivosti na prolaznom putu.
O Casperu
Za poboljšanje kvaliteta identifikacije problematičnih uređaja, Kasper modelira ranjivosti koje napadač može koristiti na svakom koraku napada klase Spectre: problemi se modeliraju kako bi se omogućila kontrola podataka (na primjer, zamjena podataka napadača u mikroarhitektonske strukture kako bi se uticalo na naknadno spekulativno izvršenje) koristeći napade klase LVI, dobili pristup osjetljivim informacijama (na primjer, kada bafer je izvan granica ili se memorija koristi nakon što je oslobođena) i propuštaju osjetljive informacije (na primjer, raščlanjivanjem stanja keš memorije procesora ili korištenjem MDS metode).
Modelirajte napadača koji je sposoban kontrolirati podatke (npr. putem memorijske masaže ili ubrizgavanja vrijednosti LVI), pristupiti tajnama (npr. putem pristupa izvan granica ili koristiti nakon besplatnog ) i odavati ove tajne (npr. putem keš memorije, MDS-a). prikriveni kanali zasnovani na sukobima koji se zasnivaju na portovima).
Prilikom izvođenja testa, kernel kontakti runtime biblioteke od Kaspera i provjeriti da rade na nivou LLVM. Tokom verifikacije, spekulativno izvršavanje koda se emulira mehanizmom vraćanja kontrolne tačke, koji posebno izvršava netačno predviđenu viljušku koda, nakon čega se vraća u prvobitno stanje pre nego što je račvanje počelo.
Kasper takođe pokušava da modelira različite softverske i hardverske ranjivosti, analizira uticaj arhitektonskih i mikroarhitektonskih efekata i vrši fuzing testove mogućih akcija napadača. Za analizu tokova izvršavanja koristi se port DataFlowSanitizer za jezgro Linuxa, a za fuzzing testove modificirana verzija syzkaller paketa.
Kao rezultat toga, Kasper je otkrio 1.379 ranije nepoznatih uređaja u jako tvrdom Linux kernelu. Potvrdili smo naše nalaze demonstrirajući end-to-end proof-of-concept exploit za jedan od pronađenih uređaja.
Prilikom skeniranja Linux kernela sa Kasperom, identifikovano je 1379 ranije nepoznatih uređaja, što bi moglo dovesti do curenja podataka tokom spekulativnog izvršavanja instrukcija.
Napominje se da možda samo neki od njih mogu predstavljati stvarne probleme, ali da bi se pokazalo da postoji stvarna opasnost, a ne samo teoretska, razvijen je radni prototip eksploatacije za jedan od problematičnih isječaka koda, što je dovelo do curenje informacija o memoriji kernela.
Konačno ako ste zainteresirani da saznate više o tome o Kasperu, to bi trebalo da znaš izvorni kod Distribuira se pod licencom Apache 2.0.
Izvor: https://www.vusec.net