A Kasper, a Linux kernel spekulatív kódvégrehajtási problémáinak szkennerje már elérhető

Az Amszterdami Szabadegyetem kutatóiból álló csapat közzétett egy Kasper-eszközkészletet, amely a Linux kernelben található kódrészletek azonosítására szolgál, amelyek felhasználhatók a processzoron történő spekulatív kódfuttatás által okozott Spectre-osztályú sebezhetőségek kihasználására. Az eszközkészlet forráskódja az Apache 2.0 licenc alatt kerül terjesztésre.

Emlékezzünk vissza, hogy a memória tartalmának meghatározását lehetővé tevő Spectre v1-hez hasonló támadások végrehajtásához a privilegizált kódban egy bizonyos parancssorozat (gadget) jelenléte szükséges, ami az utasítások spekulatív végrehajtásához vezet. . Optimalizálási célból a processzor spekulatív módban kezdi végrehajtani az ilyen kütyüket, majd megállapítja, hogy az elágazás előrejelzése nem volt indokolt, és visszaállítja a műveleteket az eredeti állapotukba, de a spekulatív végrehajtás során feldolgozott adatok a gyorsítótárba és a mikroarchitektúra puffereibe kerülnek, elérhető tőlük a maradék adatok meghatározásának különféle módszereivel harmadik fél csatornáin keresztül.

A Spectre sebezhetősége miatt korábban rendelkezésre álló eszközök a kütyük átvizsgálására a tipikus minták keresése alapján nagyon magas téves pozitív értékeket mutattak, miközben sok valódi kütyü hiányzott (a kísérletek azt mutatták, hogy az ilyen eszközök által azonosított kütyük 99%-a nem használható támadásokra , és a működő kütyük 33%-át, amelyek támadáshoz vezethetnek, nem vették észre).

A problémás kütyük azonosításának minőségének javítása érdekében a Kasper modellezi azokat a sebezhetőségeket, amelyeket a támadó a Spectre osztályú támadások végrehajtásának minden lépése során kihasználhat – olyan problémákat modelleznek, amelyek lehetővé teszik az adatkezelést (például a támadó adatainak mikroarchitektúrás struktúrákba való behelyettesítése, hogy befolyásolja a későbbi spekulatív végrehajtást. LVI osztályú támadások), hozzáférhetnek a bizalmas információkhoz (például amikor túllépik a pufferhatárokat, vagy a memóriát felszabadítják), és bizalmas információkat szivárogtatnak ki (például a processzor gyorsítótárának állapotának elemzésével vagy az MDS módszerrel).

A Kasper, a Linux kernel spekulatív kódvégrehajtási problémáinak szkennerje már elérhető

Teszteléskor a kernel összekapcsolódik a Kasper futásidejű könyvtáraival, és LLVM szinten futnak ellenőrzések. Az ellenőrzési folyamat a spekulatív kódvégrehajtást emulálja, amelyet az ellenőrzési pont-visszaállítási mechanizmussal valósítanak meg, amely kifejezetten egy helytelenül előre jelzett kódágat hajt végre, majd visszagörgeti az elágazás megkezdése előtti eredeti állapotot. A Kasper emellett megkísérli szimulálni a különféle szoftver- és hardveres sebezhetőségeket, elemzi az építészeti és mikroarchitektúra hatását, és fuzz-tesztet hajt végre a lehetséges támadói akcióknál. A végrehajtási folyamatok elemzéséhez a Linux kernel DataFlowSanitizer portját, a fuzzing teszteléshez pedig a syzkaller csomag módosított változatát használják.

A Kasper, a Linux kernel spekulatív kódvégrehajtási problémáinak szkennerje már elérhető

A Linux kernel Kasperrel végzett vizsgálata 1379 korábban ismeretlen modult azonosított, amelyek potenciálisan adatszivárgáshoz vezethetnek az utasítások spekulatív végrehajtása során. Megjegyzendő, hogy ezek közül talán csak néhány jelenthet valós problémát, de annak bizonyítására, hogy nem csak elméleti, hanem valós veszély is fennáll, az egyik problémás kódrészlethez kifejlesztették egy exploit működő prototípusát, amely információkhoz vezetett. szivárgás a kernel memóriájából.

Forrás: opennet.ru

Hozzászólás