Amsterdam Free University teadlaste grupp avaldas tööriista Kasper, mille eesmÀrk on tuvastada Linuxi tuumas koode, mida saab kasutada Spectre klassi haavatavuste Àrakasutamiseks, mida pÔhjustab protsessorite spekulatiivne koodide tÀitmine. Tööriista lÀhtekood on levitatud Apache 2.0 litsentsi all.
Tuletame meelde, et selliste rĂŒnnakute, nagu Spectre v1, mille abil on vĂ”imalik mÀÀrata mĂ€lu sisu, lĂ€biviimiseks on vajalik, et privileegitud koodis oleks teatud kĂ€skude (gadgetide) jĂ€rjestus, mis viib spekulatiivse kĂ€skude tĂ€itmiseni. Protsessori optimeerimise eesmĂ€rgil hakkab see spekulatiivselt tĂ€itma selliseid gadgete, seejĂ€rel tuvastab, et haru ennustamine ei Ă”igustanud end ja tagastab toimingud algsesse seisu. Kuid spekulatiivse tĂ€itmise kĂ€igus töötlemine andmed jÀÀvad vahemĂ€lu ja mikroarhitektuuriliste puhversĂŒsteemide sisse ning on saadaval erinevate meetodite abil jÀÀkandmete mÀÀramiseks kolmandate osapoolte kanalite kaudu.
Varem kergesti juurdepÀÀsetavad seadmete skannimise tööriistad Spectre haavatavuse osas, mis pĂ”hinesid mudelite mustrite otsimisel, nĂ€itasid vĂ€ga kĂ”rget valehĂ€irete taset, samas kui paljusid tĂ”elisi seadmeid jĂ€eti tĂ€helepanuta (katsetused nĂ€itasid, et 99% nende tööriistade tuvastatud seadmetest ei saanud rĂŒnnakute jaoks kasutada ja 33% töökindlatest seadmetest, mis vĂ”iksid rĂŒnnaku pĂ”hjustada, jĂ€i mĂ€rkamatuks).
Probleemsete seadmete defineerimise kvaliteedi parandamiseks modelleerib Kasper Spectre rĂŒnnakute kĂ€igus haavatavusi, mida rĂŒndaja saab kasutada igas etapis â modelleeritakse probleemid, mis vĂ”imaldavad andmeid kontrollida (nt rĂŒndaja andmete sisestamine mikroarhitektuuri struktuuridesse, et mĂ”jutada jĂ€rgnevate spekulatiivsete tĂ€itmise rĂŒnnakute kĂ€iku), ligipÀÀsu konfidentsiaalsetele andmetele (nt mĂ€lupiire ĂŒletades vĂ”i pĂ€rast mĂ€luaadressi vabastamist) ja konfidentsiaalsete andmete lekke korraldamist (nt protsessorikĂ”rvaldiste seisundi analĂŒĂŒsimine vĂ”i MDS-meetodi kasutamine).

Tuuringu ajal on tuuma side runtime-raamatukogudega Kasper ja LLVM-tasandi kontrollidega. Kontrollimise kĂ€igus simuleeritakse spekulatiivset koodi tĂ€itmist, kasutades checkpoint-restore mehhanismi, mis tĂ€idab vale ennustatud koodiharu ja seejĂ€rel naaseb algsesse olekusse enne harude teket. Kasper pĂŒĂŒab samuti mudeldada erinevaid tarkvara- ja riistvarajĂ”ueteid, analĂŒĂŒsib arhitektuurilisi ja mikroarhitektuurilisi efekte ning viib lĂ€bi rĂŒnnaku simulatsiooniks fuzzy-testimist. TĂ€itmisvoogude analĂŒĂŒsimiseks kasutatakse Linuxi tuuma DataFlowSanitizerit ja fuzzy-testimiseks on muudetud versioon syzkaller paketist.

Kasperi abil Linuxi tuuma skaneerimise kĂ€igus tuvastati 1379 varem tundmat gadgeti, mis vĂ”ivad potentsiaalselt pĂ”hjustada andmete leket spekulatiivsete kĂ€skude tĂ€itmise kĂ€igus. TĂ”detakse, et vaid osa neist vĂ”ib esindada reaalseid probleeme, kuid demonstreerimiseks, et risk on olemas, mitte ainult teoreetiline, arendati ĂŒhe probleemse koodilĂ”igu jaoks tööprototĂŒĂŒp, mis pĂ”hjustab teabe lekke tuuma mĂ€lust.
Allikas: opennet.ru
