Rebleed er ný árás á íhugandi framkvæmdarkerfi Intel og AMD örgjörva

Hópur vísindamanna frá ETH Zurich hefur bent á nýja árás á kerfi íhugandi framkvæmd óbeinna umbreytinga í örgjörvanum, sem gerir það mögulegt að vinna upplýsingar úr kjarnaminni eða skipuleggja árás á hýsilkerfið úr sýndarvélum. Veikleikarnir eru kallaðir Retbleed (CVE-2022-29900, CVE-2022-29901) og eru í eðli sínu nálægt Specter-v2 árásum. Munurinn kemur niður á skipulagningu á íhugandi framkvæmd handahófskenndra kóða þegar unnið er með „retur“ (tilbaka) leiðbeiningunni, sem sækir heimilisfangið til að hoppa úr staflanum, í stað óbeins stökks með „jmp“ leiðbeiningunum, hleður heimilisfanginu frá minni eða CPU skrá.

Árásarmaður getur skapað skilyrði fyrir ranga umbreytingarspá og skipulagt markvissa, íhugandi umskipti yfir í kóðablokk sem ekki er kveðið á um í framkvæmdarrökfræði forritsins. Að lokum mun örgjörvinn ákveða að útibússpáin hafi ekki verið réttlætanleg og mun snúa aðgerðinni aftur í upprunalegt ástand, en gögnin sem unnin eru við íhugandi framkvæmd munu enda í skyndiminni og örarkitektúrbiðmunum. Ef ranglega keyrð blokk fær aðgang að minni, þá mun íhugunarframkvæmd hennar leiða til þess að gögn sem lesin eru úr minni verða sett í sameiginlega skyndiminni.

Til að ákvarða gögnin sem eru eftir í skyndiminni eftir íhugandi aðgerðir, getur árásarmaður notað hliðarrásartækni til að ákvarða leifar af gögnum, svo sem að greina breytingar á aðgangstíma að skyndiminni og óafmörkuðum gögnum. Til að draga markvisst út upplýsingar frá svæðum á öðru forréttindastigi (til dæmis úr kjarnaminni) eru „græjur“ notaðar - skipanaraðir sem eru til staðar í kjarnanum sem henta til að lesa gögn íhugandi úr minni eftir ytri aðstæðum sem hægt er að hafa áhrif á af árásarmaðurinn.

Til að verjast klassískum Specter-flokkaárásum sem nota skilyrtar og óbeinar stökkleiðbeiningar, nota flest stýrikerfi „retpoline“ tæknina, sem byggir á því að skipta út óbeinum stökkaðgerðum fyrir „ret“ leiðbeininguna, sem örgjörvar nota sérstaka stafla ástandsspáeiningu fyrir. . notar ekki greinarspá. Þegar retpoline var kynnt árið 2018, var talið að meðhöndlun á netfangi eins og Specter væri ekki raunhæf fyrir íhugandi greiningar með því að nota „ret“ leiðbeiningarnar.

Rannsakendurnir sem þróuðu Retbleed árásaraðferðina sýndu fram á möguleikann á að búa til örarkitektúrfræðileg skilyrði til að hefja íhugandi umskipti með því að nota „ret“ leiðbeiningarnar og birtu tilbúin verkfæri til að bera kennsl á leiðbeiningaraðir (græjur) sem henta til að nýta varnarleysið í Linux kjarnanum, þar sem slíkar aðstæður birtast.

Meðan á rannsókninni stóð var útbúin vinnandi hagnýting sem gerir, á kerfum með Intel örgjörva, kleift að vinna handahófskennd gögn úr kjarnaminni úr óforréttu ferli í notendarými á 219 bætum hraða á sekúndu og 98% nákvæmni. Á AMD örgjörvum er skilvirkni hagnýtingar mun meiri - lekahraðinn er 3.9 KB á sekúndu. Sem hagnýtt dæmi sýnum við hvernig á að nota fyrirhugaða hetjudáð til að ákvarða innihald /etc/shadow skráarinnar. Á kerfum með Intel örgjörva var árásin til að ákvarða lykilorð notendahasssins framkvæmd á 28 mínútum og á kerfum með AMD örgjörva - á 6 mínútum.

Árásin hefur verið staðfest fyrir kynslóðir 6-8 af Intel örgjörvum sem voru gefnir út fyrir þriðja ársfjórðung 3 (þar á meðal Skylake), og AMD örgjörva byggða á Zen 2019, Zen 1+ og Zen 1 örarkitektúrum sem voru gefnir út fyrir annan ársfjórðung 2. Í nýrri gerðum örgjörva eins og AMD Zen2021 og Intel Alder Lake, sem og í ARM örgjörvum, er vandamálið lokað af núverandi verndarbúnaði. Til dæmis, að nota IBRS (Indirect Branch Restricted Speculation) leiðbeiningar hjálpar til við að vernda gegn árásum.

Búið er að útbúa sett af breytingum fyrir Linux kjarnann og Xen hypervisor, sem mun loka á vandamálið í hugbúnaði á eldri örgjörva. Fyrirhugaður plástur fyrir Linux kjarna breytir 68 skrám, bætir við 1783 línum og eyðir 387 línum. Því miður leiðir vörnin til verulegs kostnaðarkostnaðar - í textunum sem gerðar eru á AMD og Intel örgjörvum er afköst lækkun áætluð frá 14% í 39%. Það er æskilegra að nota vernd byggða á IBRS leiðbeiningum, fáanleg í nýjum kynslóðum Intel örgjörva og studd frá og með Linux kjarna 4.19.

Á Intel örgjörvum er vistfangaskipti fyrir íhugandi óbeint stökk framkvæmt þökk sé eiginleika sem birtist þegar yfirflæði á sér stað í gegnum neðri mörkin (undirflæði) í Return Stack Buffer. Þegar slíkar aðstæður eiga sér stað byrjar „ret“ leiðbeiningin að beita rökfræði fyrir vistfangaval svipað þeirri sem notuð er fyrir venjuleg óbein stökk. Meira en þúsund staðir hafa fundist í Linux kjarnanum sem skapa skilyrði til að koma slíku bakflæði af stað og eru aðgengilegir í gegnum kerfissímtöl.

Á AMD örgjörvum er íhugandi framkvæmd „ret“ leiðbeiningarinnar framkvæmd án tilvísunar í staflasértækan biðminni (Return Address Stack) og útibúspáeiningin lítur á „ret“ leiðbeininguna ekki sem stjórnskil, heldur sem óbeina grein. , og notar því gögnin til að spá fyrir um óbein umskipti. Við þessar aðstæður er hægt að nýta nánast hvaða "aftur" aðgerð sem hægt er að ná í gegnum kerfiskall.

Að auki hefur annað vandamál einnig fundist í AMD örgjörvum (CVE-2022-23825, Branch Type Confusion) sem tengist innleiðingu uppdiktaðra útibúa - skilyrði fyrir útibússpá geta komið fram jafnvel án nauðsynlegra útibúaleiðbeininga, sem gerir kleift að hafa áhrif á útibússpá biðminni. án leiðbeiningarinnar " ret". Þessi eiginleiki flækir verulega útfærslu verndar og krefst virkari hreinsunar á greinarspábuffi. Gert er ráð fyrir að auka kostnaðinn um 209% að bæta við fullri vörn við kjarnann.

Heimild: opennet.ru

Bæta við athugasemd