Kasper, skener za spekulativne probleme s izvršavanjem koda u jezgri Linuxa, sada je dostupan

Tim istraživača sa Slobodnog sveučilišta u Amsterdamu objavio je Kasper alat dizajniran za prepoznavanje isječaka koda u Linux kernelu koji se mogu koristiti za iskorištavanje ranjivosti Spectre klase uzrokovanih spekulativnim izvršavanjem koda na procesoru. Izvorni kod za komplet alata distribuira se pod licencom Apache 2.0.

Podsjetimo, za izvođenje napada kao što je Spectre v1, koji omogućuju određivanje sadržaja memorije, potrebna je prisutnost određenog niza naredbi (gadgeta) u privilegiranom kodu, što dovodi do spekulativnog izvršavanja instrukcija. . U svrhu optimizacije, procesor počinje izvršavati takve gadgete u spekulativnom načinu rada, zatim utvrđuje da predviđanje grananja nije bilo opravdano i vraća operacije u njihovo izvorno stanje, ali podaci obrađeni tijekom spekulativnog izvođenja završavaju u predmemoriji i mikroarhitektonskim međuspremnicima i dostupan je za dohvaćanje od njih pomoću različitih metoda utvrđivanja preostalih podataka putem kanala trećih strana.

Prethodno dostupni alati za skeniranje gadgeta za Spectre ranjivost, temeljeni na traženju tipičnih obrazaca, pokazali su vrlo visoku razinu lažno pozitivnih rezultata, dok su nedostajali mnogi stvarni gadgeti (eksperimenti su pokazali da se 99% gadgeta identificiranih takvim alatima ne može koristiti za napade , a 33% ispravnih gadgeta koji bi mogli dovesti do napada nisu primijećeni).

Kako bi poboljšao kvalitetu identificiranja problematičnih gadgeta, Kasper modelira ranjivosti koje napadač može iskoristiti u svakom koraku izvođenja napada klase Spectre - modeliraju se problemi koji omogućuju kontrolu podataka (na primjer, zamjena podataka napadača u mikroarhitektonske strukture kako bi se utjecalo na naknadno spekulativno izvršenje pomoću napadi klase LVI), dobiti pristup povjerljivim informacijama (na primjer, kada se ide izvan granica međuspremnika ili se koristi memorija nakon što je oslobođena) i cure povjerljive informacije (na primjer, analizom stanja predmemorije procesora ili korištenjem MDS metode).

Kasper, skener za spekulativne probleme s izvršavanjem koda u jezgri Linuxa, sada je dostupan

Prilikom testiranja, kernel je povezan s Kasper runtime bibliotekama i provjerava se izvodi na razini LLVM. Proces provjere emulira spekulativno izvršavanje koda, implementirano korištenjem mehanizma za vraćanje kontrolne točke, koji specifično izvršava netočno predviđeno grananje koda, a zatim se vraća u izvorno stanje prije početka grananja. Kasper također pokušava simulirati različite softverske i hardverske ranjivosti, analizira utjecaj arhitektonskih i mikroarhitektonskih učinaka i izvodi fuzz testiranje mogućih napadačkih radnji. Za analizu tokova izvršavanja koristi se port DataFlowSanitizer za Linux kernel, a za testiranje fuzzinga koristi se modificirana verzija paketa syzkaller.

Kasper, skener za spekulativne probleme s izvršavanjem koda u jezgri Linuxa, sada je dostupan

Skeniranje Linux kernela pomoću Kaspera identificiralo je 1379 dosad nepoznatih naprava koje potencijalno dovode do curenja podataka tijekom spekulativnog izvršavanja instrukcija. Napominje se da možda samo neki od njih mogu predstavljati stvarne probleme, ali kako bi se pokazalo da postoji stvarna opasnost, a ne samo teorijska, razvijen je radni prototip exploit-a za jedan od problematičnih fragmenata koda, koji vodi do informacija curenje iz memorije kernela.

Izvor: opennet.ru

Dodajte komentar