„Kasper“, įrenginio skaitytuvas, skirtas spekuliaciniam kodui „Linux“ branduolyje

Grupė Amsterdamo laisvojo universiteto mokslininkai atskleidė per tinklaraščio įrašą įrankis, vadinamas "kasperis" kurie pabrėžia, kad tai yra skirtas kodo fragmentams identifikuoti Linux branduolyje, kurį galima naudoti išnaudoti Spektrinės klasės pažeidžiamumas sukeltas procesoriaus spekuliatyvaus kodo vykdymo.

Tie, kurie nežino apie tokio pobūdžio atakas, turėtų tai žinoti klasės pažeidžiamumai, tokie kaip Spectre v1, leidžia nustatyti atminties turinį, privilegijuotajame kode reikalingas tam tikras scenarijus (įtaisai), dėl kurio atsiranda spekuliacinis instrukcijų vykdymas.

Norėdami optimizuoti, procesorius tokius įrenginius pradeda veikti spekuliaciniu režimuarba tada nustato, kad šakos numatymas nebuvo pagrįstas, ir grąžina operacijas į pradinę būseną, tačiau spekuliacinio vykdymo metu apdoroti duomenys yra talpykloje ir mikroarchitektūros buferiuose ir yra prieinami išgauti naudojant įvairius likutinių duomenų nustatymo metodus per trečiąjį vakarėlių kanalai.

Programėlių nuskaitymo įrankiai remiantis modeliais anksčiau prieinamas dėl Spectr pažeidžiamumoe parodė labai didelį klaidingų teigiamų rezultatų skaičių, tuo tarpu buvo prarasta daug tikrų programėlių (eksperimentai parodė, kad 99% tokių įrankių aptiktų programėlių negalėjo būti panaudotos atakoms, o 33% veikiančių nebuvo stebimi įrenginiai, galintys sukelti ataką).

Pristatome Kasper, trumpalaikį (arba spekuliacinį) vykdymo įrenginio skaitytuvą. Ji naudoja korupcijos analizės strategijas, kad modeliuotų užpuoliką, galintį pereinamu keliu pasinaudoti savavališkais programinės ir (arba) aparatinės įrangos pažeidžiamumais. 

Apie Kasperą

Gerinti kokybę probleminių prietaisų identifikavimo, „Kasper“ modeliuoja pažeidžiamumą, kurį gali naudoti užpuolikas kiekviename Spectre klasės atakų etape: problemos modeliuojamos taip, kad būtų galima valdyti duomenis (pavyzdžiui, užpuoliko duomenų pakeitimas mikroarchitektūrinėmis struktūromis, siekiant paveikti tolesnį spekuliacinį vykdymą), naudojant LVI klasės atakas, gauti prieigą prie jautrios informacijos (pavyzdžiui, kai buferis peržengia ribas arba atmintis naudojama po to, kai ji buvo atlaisvinta), ir nuteka jautri informacija (pavyzdžiui, analizuojant procesoriaus talpyklos būseną arba naudojant MDS metodą).

Sumodeliuokite užpuoliką, galintį valdyti duomenis (pvz., naudojant atminties masažą arba LVI vertės įvedimą), pasiekti paslaptis (pvz., per neribotą prieigą arba naudoti po nemokamo ) ir nutekėti šias paslaptis (pvz., naudojant talpyklą, MDS- pagrįsti arba per prievartą pagrįsti slapti kanalai). 

Atliekant testą, branduolio kontaktai su vykdymo bibliotekomis pateikė Kasperis ir patikrinkite, ar jie veikia LLVM lygiu. Tikrinimo metu spekuliacinio kodo vykdymą imituoja kontrolinio taško atkūrimo mechanizmas, kuris konkrečiai vykdo neteisingai numatytą kodo šakutę, po kurios grįžta į pradinę būseną prieš prasidedant šakutei.

Kasper taip pat bando modeliuoti įvairias programinės ir techninės įrangos spragas, analizuoja architektūrinių ir mikroarchitektūrinių efektų įtaką bei atlieka miglotus galimų užpuolikų veiksmų testus. Vykdymo srautų analizei naudojamas „Linux“ branduolio „DataFlowSanitizer“ prievadas, o „fuzzing“ testams – modifikuota „syzkaller“ paketo versija.

Dėl to „Kasper“ stipriai užkietėjusiame „Linux“ branduolyje atrado 1.379 XNUMX anksčiau nežinomus įrenginius. Patvirtinome savo išvadas, pademonstruodami vieno iš rastų įrenginių koncepcijos įrodymą.

Nuskaitant „Linux“ branduolį su „Kasper“, buvo nustatyti 1379 XNUMX anksčiau nežinomi įrenginiai, dėl kurių spekuliacinio instrukcijų vykdymo metu gali nutekėti duomenys.

Pažymima, kad galbūt tik kai kurie iš jų gali sukelti realias problemas, tačiau norint parodyti, kad yra realus pavojus, o ne tik teorinis, vienam iš probleminių kodo fragmentų buvo sukurtas veikiantis išnaudojimo prototipas, dėl kurio branduolio atminties informacijos nutekėjimas.

Pagaliau jei norite sužinoti daugiau apie tai apie Kasperą, jūs turėtumėte tai žinoti šaltinio kodas Jis platinamas pagal Apache 2.0 licenciją.

Fuente: https://www.vusec.net


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.