Kasper, Linuxi tuuma spekulatiivsete koodikäivitusprobleemide skanner, on nüüd saadaval

Amsterdami Vaba Ülikooli teadlaste meeskond on avaldanud Kasperi tööriistakomplekti, mis on loodud Linuxi tuumas olevate koodijuppide tuvastamiseks, mida saab kasutada protsessoris spekulatiivsest koodikäivitamisest põhjustatud Spectre-klassi haavatavuste ärakasutamiseks. Tööriistakomplekti lähtekoodi levitatakse Apache 2.0 litsentsi all.

Tuletagem meelde, et selliste rünnakute läbiviimiseks nagu Spectre v1, mis võimaldavad määrata mälu sisu, on privilegeeritud koodis vajalik teatud käskude jada (vidinate) olemasolu, mis viib käskude spekulatiivse täitmiseni. . Optimeerimise eesmärgil hakkab protsessor selliseid vidinaid täitma spekulatiivses režiimis, seejärel teeb kindlaks, et haru ennustus ei olnud põhjendatud ja veeretab toimingud tagasi algsesse olekusse, kuid spekulatiivse täitmise käigus töödeldud andmed satuvad vahemällu ja mikroarhitektuuripuhvritesse ning on neilt hankimiseks saadaval erinevate jääkandmete määramise meetodite abil kolmandate osapoolte kanalite kaudu.

Varem saadaolevad tööriistad vidinate skannimiseks Spectre haavatavuse tuvastamiseks, mis põhinesid tüüpiliste mustrite otsimisel, näitasid väga kõrget valepositiivsete tulemuste taset, samas puudusid paljud tõelised vidinad (katsed näitasid, et 99% selliste tööriistade abil tuvastatud vidinatest ei saanud rünnakuteks kasutada , ja 33% töötavatest vidinatest, mis võivad rünnakuni viia, ei märgatud).

Probleemsete vidinate tuvastamise kvaliteedi parandamiseks modelleerib Kasper turvaauke, mida ründaja saab Spectre klassi rünnete sooritamise igal etapil ära kasutada – modelleeritakse probleeme, mis võimaldavad andmete kontrolli (näiteks ründaja andmete asendamine mikroarhitektuursete struktuuridega, et mõjutada hilisemat spekulatiivset täitmist, kasutades LVI klassi rünnakud), pääsevad ligi konfidentsiaalsele teabele (näiteks puhvri piire ületades või pärast selle vabastamist mälu kasutades) ja konfidentsiaalset teavet (näiteks protsessori vahemälu oleku analüüsi või MDS-meetodit kasutades).

Kasper, Linuxi tuuma spekulatiivsete koodikäivitusprobleemide skanner, on nüüd saadaval

Testimisel seotakse kernel Kasperi käitusaegsete raamatukogudega ja kontrollib, et see töötab LLVM-i tasemel. Kontrollimisprotsess emuleerib spekulatiivset koodi täitmist, mida rakendatakse kontrollpunkti taastamise mehhanismi abil, mis käivitab konkreetselt valesti ennustatud koodiharu ja naaseb seejärel algsesse olekusse enne haru algust. Samuti proovib Kasper simuleerida erinevaid tarkvara- ja riistvaranõrkusi, analüüsib arhitektuursete ja mikroarhitektuuriliste efektide mõju ning teostab võimalike ründajate tegevuste fuzz-testimist. Täitmisvoogude analüüsimiseks kasutatakse Linuxi kerneli DataFlowSanitizeri porti ja fuzzing-testimiseks paketi syzkaller muudetud versiooni.

Kasper, Linuxi tuuma spekulatiivsete koodikäivitusprobleemide skanner, on nüüd saadaval

Linuxi tuuma skannimine Kasperi abil tuvastas 1379 senitundmatut vidinat, mis võivad käskude spekulatiivsel täitmisel põhjustada andmete lekkimist. Märgitakse, et võib-olla ainult mõned neist võivad tekitada tõelisi probleeme, kuid näitamaks, et oht on reaalne, mitte ainult teoreetiline, töötati ühe probleemse koodifragmendi jaoks välja toimiv ärakasutamise prototüüp, mis viib teabeni. leke kerneli mälust.

Allikas: opennet.ru

Lisa kommentaar