In kwetsberens fan Meltdown-klasse is ûntdutsen yn AMD-processors basearre op Zen + en Zen 2 mikroarsjitektuer

In groep ûndersikers fan 'e Technyske Universiteit fan Dresden hat in kwetsberens (CVE-2020-12965) identifisearre yn AMD-processors basearre op Zen + en Zen 2 mikroarsjitektueren, wêrtroch in oanfal fan Meltdown-klasse mooglik is. It waard ynearsten oannommen dat AMD Zen + en Zen 2 processors binne net gefoelich foar de Meltdown kwetsberens, mar ûndersikers identifisearre in funksje dy't liedt ta spekulative tagong ta beskerme ûnthâld gebieten by it brûken fan net-kanonike firtuele adressen.

De AMD64-arsjitektuer brûkt allinich de earste 48 bits fan it firtuele adres en negearret de oerbleaune 16 bits. It is oantsjutte dat bits 48 oant 63 altyd moatte kopiearje de wearde fan bit 47 (teken bit extension). As dizze betingst is skeind en besocht wurdt tagong ta in adres mei willekeurige wearden fan 'e boppeste bits, genereart de prosessor in útsûndering. It werheljen fan de boppeste bits feroarsaket dat de beskikbere adresromte ferdield wurdt yn twa blokken - in ûnderste (fan 0 oant 00007FFFFFFFFFFFFF), wêryn de boppeste bits op 800000000000 binne ynsteld, en in boppeste (fan FFFF1 oant FFFFFFFFFFFFFFFF), wêryn alle boppeste bits binne ynsteld op XNUMX.

Adressen dy't binnen de oantsjutte blokken falle wurde kanonike neamd, en ferkearde adressen mei willekeurige ynhâld fan 'e boppeste bits wurde net-kanonike neamd. It legere berik fan kanonike adressen wurdt typysk tawiisd foar prosesgegevens, en it boppeste berik wurdt brûkt foar kernelgegevens (tagong ta dizze adressen fan brûkersromte wurdt blokkearre op it privileezjeskiedingsnivo).

De klassike Meltdown-kwetsberens is basearre op it feit dat de prosessor by spekulative útfiering fan ynstruksjes tagong kin ta in privee gegevensgebiet en dan it resultaat wegerje, om't de ynstelde privileezjes sa'n tagong ferbiede fan it proses fan 'e brûker. Yn it programma wurdt it spekulatyf útfierde blok skieden fan 'e haadkoade troch in betingstlike tûke, dy't yn echte omstannichheden altyd fjoer, mar troch it feit dat de betingstlike ferklearring in berekkene wearde brûkt dy't de prosessor net wit tidens de preemptive útfiering fan de koade, alle branch opsjes wurde útfierd spekulatyf.

Om't spekulatyf útfierde operaasjes deselde cache brûke as normaal útfierde ynstruksjes, is it mooglik tidens spekulative útfiering markers yn 'e cache yn te stellen dy't de ynhâld fan yndividuele bits yn in privee ûnthâldgebiet reflektearje, en dan yn normaal útfierde koade om har wearde te bepalen fia timing analyze tagong ta cached en net-cached gegevens.

In skaaimerk fan 'e nije kwetsberens dy't AMD Zen + en Zen 2-processors beynfloedet is dat de CPU's spekulative lês- en skriuwoperaasjes tastean dy't tagong krije ta ûnthâld mei ûnjildige net-kanonike adressen, gewoan negearje de boppeste 16 bits. Sa, tidens spekulative koade útfiering, de prosessor altyd brûkt allinnich de legere 48 bits, en de jildichheid fan it adres wurdt kontrolearre apart. As, by it oersetten fan in net-kanonike firtuele adres nei in fysyk adres yn 'e assosjatyf oersetbuffer (TLB), in oerienkomst wurdt ûntdutsen yn it kanonike diel fan it adres, dan sil de spekulative laden operaasje de wearde werombringe sûnder rekken te hâlden mei de ynhâld fan de boppeste 16 bits, dat makket it mooglik om te omgean ûnthâld dielen tusken triedden. Dêrnei wurdt de operaasje beskôge as ûnjildich en wegereard, mar de ûnthâld tagong sil foltôge wurde en de gegevens sille einigje yn it cache.

Tidens it eksperimint, mei help fan de technyk fan it bepalen fan de ynhâld fan 'e FLUSH + RELOAD-cache, koene de ûndersikers in kanaal organisearje foar ferburgen gegevensferfier mei in snelheid fan 125 bytes per sekonde. Neist AMD-chips hat it probleem ek ynfloed op alle Intel-processors, dy't gefoelich binne foar de klassike Meltdown-kwetsberens. Deselde techniken dy't helpe by it blokkearjen fan Meltdown-oanfallen, lykas it brûken fan LFENCE-ynstruksjes, kinne brûkt wurde om te beskermjen tsjin dit nije type oanfal. Bygelyks, as in Intel-prosessor hardwarebeskerming omfettet tsjin Meltdown of it systeem hat softwarebeskerming ynskeakele, dan binne sokke konfiguraasjes net gefoelich foar de nije oanfalfariant.

Tagelyk konstatearje de ûndersikers dat, yn ferliking mei Intel-processors, de arsjitektuer fan AMD-processors de mooglikheid beheint om echte oanfallen út te fieren, mar it gebrûk fan in nije metoade yn kombinaasje mei oare mikroarsjitektoanyske oanfallen net útslút om har effektiviteit te fergrutsjen. Benammen de foarstelde oanfal lit ien net tastean om de ynhâld fan ûnthâldgebieten fan 'e kearn en oare prosessen te bepalen, mar is beheind ta de mooglikheid om tagong te krijen ta oare triedden fan itselde programma dy't yn deselde firtuele ûnthâldromte rinne.

Sûnt in programma sûnder kwetsberens hat de mooglikheid om tagong te krijen ta syn diskusjes, út in praktysk eachpunt is de metoade fan belang foar it omgean fan sânbox-isolaasje en it organisearjen fan ynterferinsje mei it wurk fan oare diskusjes yn programma's dy't de útfiering fan tredden tastean. koade, lykas webbrowsers en JIT-motoren. Undersikers ûndersochten de kwetsberens fan 'e SpiderMonkey JavaScript-motor en de Linux-kernel om oan te fallen, mar fûnen gjin kwetsbere koade-sekwinsjes dy't koe wurde brûkt om in oanfal út te fieren. Neist it oanfallen fan applikaasjes kin de metoade ek brûkt wurde om ûnakseptabele gegevensstreamen te twingen tusken mikro-arsjitektoanyske eleminten fan 'e prosessor by de eksploitaasje fan oare mikro-arsjitektuerlike kwetsberens.

Boarne: opennet.ru

Add a comment