SWAPGS - nýr varnarleysi í CPU íhugandi framkvæmdarkerfi

Vísindamenn frá Bitdefender auðkennd nýr varnarleysi (CVE-2019-1125) í íhugandi leiðbeiningaframkvæmdarkerfi nútíma örgjörva, sem heitir SWAPGS, sem samsvarar nafni örgjörvaleiðbeiningarinnar sem veldur vandanum. Varnarleysi gerir leyfa árásarmanni án forréttinda að ákvarða innihald kjarnaminnisvæða eða keyra sýndarvélar. Vandamál staðfest í Intel örgjörvum (x86_64) og að hluta hefur áhrif AMD örgjörvar þar sem aðalárásarvektor birtist ekki fyrir. Áður útfærðar aðferðir til að vinna gegn Specter og Meltdown varnarleysi verja ekki gegn SWAPGS árásinni þegar Intel örgjörva eru notuð, en lagfæringar hafa þegar verið lagðar til fyrir Linux, ChromeOS, Android og Windows.

Varnarleysið tilheyrir Spectre v1 flokki og byggist á hugmyndinni um að endurheimta gögn úr skyndiminni örgjörva sem eftir eru eftir íhugandi framkvæmd leiðbeininga. Til að bæta frammistöðu nota greinarspáeiningar nútíma örgjörva forvarnarframkvæmd sumra fyrirmæla sem líklegast er að verði framkvæmdar, en án þess að bíða eftir útreikningi á öllum þáttum sem ákvarða framkvæmd þeirra (til dæmis þegar útibúskilyrði eða aðgangsbreytur hafa ekki enn verið reiknað út). Ef spáin er ekki staðfest, fleygir örgjörvinn niðurstöðu íhugunarframkvæmdarinnar, en gögnin sem unnin eru á meðan á henni stendur verða eftir í skyndiminni örgjörva og hægt er að endurheimta þau með aðferðum til að ákvarða innihald skyndiminni í gegnum hliðarrásir, greina breytinguna á aðgangi. tími í skyndiminni og óvistuð gögn.

Sérkenni nýju árásarinnar er notkun á leka sem á sér stað við íhugandi framkvæmd SWAPGS leiðbeiningarinnar, sem er notuð í stýrikerfum til að skipta um gildi GS skrárinnar þegar stjórn fer úr notendarými til stýrikerfiskjarna (GS). gildi sem notað er í notendarými er skipt út fyrir gildið sem notað er við aðgerðir í kjarnanum ). Í Linux kjarnanum geymir GS per_cpu bendil sem notaður er til að fá aðgang að kjarnagögnum og notendarými geymir vísa til TLS (Thread Local Storage).

Til að forðast að kalla SWAPGS leiðbeiningarnar tvisvar þegar aðgangur er að kjarnanum aftur úr kjarnarými eða þegar keyrður er kóða sem krefst ekki GS skrábreytingar, er athugað og skilyrt grein framkvæmd fyrir leiðbeininguna. Íhugandi framkvæmdarvélin heldur áfram að keyra kóða með SWAPGS leiðbeiningunum án þess að bíða eftir niðurstöðu athugunarinnar, og ef valið útibú er ekki staðfest, fleygir niðurstöðunni. Þannig getur komið upp sú staða að útibú sem ekki felur í sér SWAPGS-framkvæmd er valin í spákaupmennsku, en á meðan á spákaupmennsku stendur verður gildi GS-skrárinnar breytt með SWAPGS-leiðbeiningunum og notað í háðar minnisaðgerðir sem enda í CPU skyndiminni.

Vísindamenn hafa lagt til tvær árásarsviðsmyndir þar sem frumgerðir hafa verið útbúnar. Fyrsta atburðarásin er byggð á aðstæðum þar sem SWAPGS leiðbeiningin er ekki framkvæmd í spákaupmennsku, þó hún sé í raun notuð í framkvæmd, og sú seinni er hið gagnstæða, þegar SWAPGS leiðbeiningin er keyrð í spákaupmennsku, þó að það ætti ekki í raun að keyra hana. Fyrir hverja atburðarás eru tveir möguleikar til hagnýtingar: árásarmaðurinn getur ákvarðað gildið á tilteknu heimilisfangi á kjarnasvæðinu og árásarmaðurinn getur leitað að ákveðnu gildi á handahófi heimilisföng í kjarnanum. Það tekur langan tíma að framkvæma árás og það gæti þurft nokkrar klukkustundir til að klára lekann.

Það er vandamál í Linux kjarnanum útrýmt með því að breyta rökfræðinni við að kalla SWAPGS leiðbeininguna (loka íhugandi framkvæmd), svipað og leiðrétting á öðrum veikleikum í Spectre v1 flokki. Búist er við að aukin vernd hafi lágmarks áhrif á frammistöðu dæmigerðs vinnuálags. Seinkun á sér stað á meðan skipt er á milli notanda og kjarnarýmis, sem getur leitt til lélegrar frammistöðu, til dæmis þegar það er mikið kerfiskall frá forritinu eða tíð myndun NMI og truflanir.

Lagfæringin krefst þess að kjarnauppfærsla sé sett upp bæði á hýsingarkerfinu og gestaumhverfi, fylgt eftir með endurræsingu kerfisins. Til að slökkva á vörninni á Linux er hægt að nota "nospectre_v1" valmöguleikann, sem gerir einnig óvirka ráðstafanir til að loka á SWAPGS varnarleysið. Lagfæringin er fáanleg sem plástur fyrir Linux kjarnann, sem er þegar innifalinn í útgáfunum 4.19.65, 5.2.7, 4.14.137, 4.9.188 og 4.4.188. Uppfærslur fyrir Linux dreifingar hafa ekki enn verið gefnar út (Debian, RHEL, Fedora, Arch Linux, SUSE/openSUSE, ubuntu). Á Windows var vandamálið lagað hljóðlega inn júlí uppfærsla. Google fyrirtæki undirbúinn lagfæring fyrir kjarna 4.19 sendur með ChromeOS og Android.

Samkvæmt vísindamönnum frá Bitdefender var Intel upplýst um vandamálið í ágúst á síðasta ári. Ákveðið var að laga vandann forritunarlega, en forritarar frá Microsoft, Google og Linux kjarnanum tóku þátt í samræmdri þróun lagfæringar. Miklu erfiðara er að ráðast á eldri Intel örgjörva, pre-Ivy Bridge, vegna skorts á stuðningi við WRGSBASE leiðbeiningarnar sem notaðar eru í misnotkuninni. ARM, POWER, SPARC, MIPS og RISC-V kerfi verða ekki fyrir áhrifum af vandamálinu vegna þess að þau styðja ekki SWAPGS leiðbeiningarnar.

Vandamálið hefur aðallega áhrif á eigendur Intel örgjörva -
Á AMD kerfum var aðeins hægt að endurskapa aðra árásaratburðarás, sem er takmörkuð við íhugandi vinnslu á grunngildi GS skrárinnar, sem hægt er að nota til að leita að sérstökum gildum á tilviljanakenndum minnissvæðum. Til að loka á þennan árásarmöguleika nóg núverandi aðferðir við vernd gegn Spectre v1.

Heimild: opennet.ru

Bæta við athugasemd