Usa ka pagkahuyang sa klase sa Meltdown ang nakit-an sa mga processor sa AMD nga gibase sa Zen + ug Zen 2 microarchitectures

Usa ka grupo sa mga tigdukiduki gikan sa Technical University of Dresden nakaila sa usa ka kahuyang (CVE-2020-12965) sa mga processor sa AMD base sa Zen + ug Zen 2 microarchitectures, nga nagtugot sa usa ka Meltdown class attack. Sa sinugdan gituohan nga ang mga processor sa AMD Zen + ug Zen 2 dili daling maapektuhan sa pagkahuyang sa Meltdown, apan ang mga tigdukiduki nagpaila sa usa ka bahin nga nagdala sa pag-angkon nga pag-access sa giprotektahan nga mga lugar sa panumduman kung gigamit ang mga non-canonical virtual nga adres.

Ang AMD64 nga arkitektura naggamit lamang sa unang 48 ka tipik sa virtual nga adres ug gibalewala ang nahibiling 16 ka tipik. Gipiho nga ang mga bit 48 hangtod 63 kinahanglan kanunay nga kopyahon ang kantidad sa bit 47 (sign bit extension). Kung kini nga kondisyon gilapas ug usa ka pagsulay nga gihimo aron ma-access ang usa ka adres nga adunay arbitraryong mga kantidad sa taas nga mga bit, ang processor naghimo usa ka eksepsiyon. Ang balik-balik nga pagpuno sa ibabaw nga mga bit hinungdan nga ang anaa nga address space mabahin ngadto sa duha ka mga bloke - usa ka ubos nga usa (gikan sa 0 ngadto sa 00007FFFFFFFFFFFFFF), diin ang ibabaw nga mga bit gibutang sa 800000000000, ug ang usa sa ibabaw (gikan sa FFFF1 ngadto sa FFFFFFFFFFFFFFF), diin ang tanan nga ibabaw nga mga bit gibutang sa XNUMX.

Ang mga adres nga naa sa sulod sa gipiho nga mga bloke gitawag nga kanonikal, ug ang dili husto nga mga adres nga adunay arbitraryong sulud sa taas nga mga piraso gitawag nga dili kanonikal. Ang ubos nga han-ay sa mga kanonikal nga adres kasagarang gigahin alang sa proseso nga datos, ug ang taas nga han-ay gigamit alang sa kernel data (ang pag-access niini nga mga adres gikan sa user space gibabagan sa pribilihiyo nga separation level).

Ang klasiko nga pagkahuyang sa Meltdown gibase sa kamatuoran nga sa panahon sa espekulatibo nga pagpatuman sa mga panudlo, ang processor maka-access sa usa ka pribado nga lugar sa datos ug dayon isalikway ang resulta tungod kay ang gitakda nga mga pribilehiyo nagdili sa ingon nga pag-access gikan sa proseso sa gumagamit. Sa programa, ang speculatively executed block gibulag gikan sa main code sa usa ka conditional branch, nga sa tinuod nga mga kondisyon kanunay nga nagdilaab, apan tungod sa kamatuoran nga ang conditional nga pahayag naggamit sa usa ka kalkulado nga bili nga ang processor wala mahibalo sa panahon sa preemptive execution sa ang kodigo, ang tanan nga mga kapilian sa sanga gihimo nga espekulatibo.

Tungod kay ang spekulatibo nga gipatuman nga mga operasyon naggamit sa sama nga cache sama sa kasagarang gipatuman nga mga instruksyon, posible sa panahon sa speculative execution nga magbutang og mga marker sa cache nga nagpakita sa mga sulod sa tagsa-tagsa nga mga bit sa usa ka pribadong memory area, ug dayon sa normal nga gipatuman nga code aron mahibal-an ang ilang bili pinaagi sa timing Ang pag-analisar nag-access sa cache ug non-cached nga datos.

Usa ka bahin sa bag-ong pagkahuyang nga nakaapekto sa AMD Zen + ug Zen 2 nga mga processor mao nga ang mga CPU nagtugot sa mga spekulatibo nga pagbasa ug pagsulat nga mga operasyon nga nag-access sa memorya gamit ang dili balido nga dili kanonikal nga mga adres, nga gibalewala lamang ang taas nga 16 bits. Busa, sa panahon sa espekulatibo nga pagpatuman sa code, ang processor kanunay nga naggamit lamang sa ubos nga 48 bits, ug ang balido sa adres gisusi nga gilain. Kung, sa paghubad sa usa ka non-canonical virtual nga adres sa usa ka pisikal nga adres sa associative translation buffer (TLB), usa ka posporo ang nakit-an sa kanonikal nga bahin sa adres, nan ang speculative load nga operasyon ibalik ang kantidad nga wala gikonsiderar ang mga sulud. sa ibabaw nga 16 bits, nga nagtugot sa pag-bypass sa pagpakigbahin sa panumduman tali sa mga hilo. Pagkahuman, ang operasyon maisip nga dili balido ug isalikway, apan ang pag-access sa memorya makompleto ug ang datos mahuman sa cache.

Atol sa eksperimento, gamit ang teknik sa pagtino sa mga sulod sa FLUSH + RELOAD cache, ang mga tigdukiduki nakahimo sa pag-organisar sa usa ka channel alang sa tinago nga pagbalhin sa datos sa gikusgon nga 125 bytes kada segundo. Dugang pa sa AMD chips, ang problema makaapekto usab sa tanan nga Intel processors, nga daling madala sa classic Meltdown vulnerability. Ang parehas nga mga teknik nga makatabang sa pagpugong sa mga pag-atake sa Meltdown, sama sa paggamit sa mga panudlo sa LFENCE, mahimong magamit aron mapanalipdan batok niining bag-ong matang sa pag-atake. Pananglitan, kung ang usa ka Intel processor naglakip sa proteksyon sa hardware batok sa Meltdown o ang sistema adunay proteksyon sa software nga gipagana, nan ang ingon nga mga pag-configure dili dali nga makuha sa bag-ong variant sa pag-atake.

Sa samang higayon, namatikdan sa mga tigdukiduki nga, kon itandi sa mga processor sa Intel, ang arkitektura sa mga processor sa AMD naglimite sa posibilidad sa paghimo sa tinuod nga mga pag-atake, apan dili iapil ang paggamit sa usa ka bag-ong pamaagi sa kombinasyon sa ubang mga microarchitectural nga pag-atake aron madugangan ang ilang pagka-epektibo. Sa partikular, ang gisugyot nga pag-atake wala magtugot sa usa nga mahibal-an ang sulud sa mga lugar sa memorya sa kernel ug uban pang mga proseso, apan limitado sa abilidad nga maka-access sa ubang mga hilo sa parehas nga programa nga nagdagan sa parehas nga wanang sa virtual nga memorya.

Tungod kay ang usa ka programa nga wala’y kahuyang adunay katakus nga maka-access sa mga hilo niini, gikan sa praktikal nga punto sa pagtan-aw ang pamaagi interesado alang sa pag-bypass sa pag-inusara sa sandbox ug pag-organisar sa pagpanghilabot sa buhat sa ubang mga hilo sa mga programa nga nagtugot sa pagpatuman sa ikatulo nga partido. code, sama sa mga web browser ug JIT nga makina . Gisusi sa mga tigdukiduki ang kahuyang sa SpiderMonkey JavaScript nga makina ug ang Linux kernel sa pag-atake, apan wala'y nakit-an nga huyang nga mga han-ay sa code nga mahimong magamit sa pag-atake. Gawas pa sa pag-atake sa mga aplikasyon, ang pamaagi mahimo usab nga gamiton aron mapugos ang dili madawat nga mga pagdagayday sa datos tali sa mga elemento sa microarchitectural sa processor samtang gipahimuslan ang ubang mga kahuyangan sa microarchitectural.

Source: opennet.ru

Idugang sa usa ka comment