Kerentanan kelas Meltdown wis ditemokake ing prosesor AMD adhedhasar mikroarsitektur Zen + lan Zen 2

Klompok peneliti saka Universitas Teknik Dresden wis nemtokake kerentanan (CVE-2020-12965) ing prosesor AMD adhedhasar Zen + lan Zen 2 microarchitectures, sing ngidini serangan kelas Meltdown. Kaping pisanan dianggep yen prosesor AMD Zen + lan Zen 2 ora rentan marang kerentanan Meltdown, nanging peneliti nemtokake fitur sing ndadékaké akses spekulatif menyang wilayah memori sing dilindhungi nalika nggunakake alamat virtual non-kanonik.

Arsitektur AMD64 mung nggunakake 48 bit pisanan saka alamat virtual lan nglirwakake 16 bit sing isih ana. Ditemtokake yen bit 48 nganti 63 kudu tansah nyalin nilai bit 47 (ekstensi bit tandha). Yen kondisi iki dilanggar lan nyoba kanggo ngakses alamat kanthi nilai-nilai kasepakatan saka bit ndhuwur, prosesor ngasilake pangecualian. Bola-bali ngisi bit ndhuwur nyebabake ruang alamat sing kasedhiya dipérang dadi rong blok - sing luwih murah (saka 0 nganti 00007FFFFFFFFFFFFFF), ing ngendi bit ndhuwur disetel dadi 800000000000, lan sing ndhuwur (saka FFFF1 nganti FFFFFFFFFFFFFFF), kabeh bit ndhuwur disetel dadi XNUMX.

Alamat sing ana ing blok sing ditemtokake diarani kanonik, lan alamat sing ora bener kanthi isi bit ndhuwur diarani non-kanonik. Kisaran ngisor alamat kanonik biasane dialokasikan kanggo data proses, lan kisaran ndhuwur digunakake kanggo data kernel (akses menyang alamat kasebut saka ruang pangguna diblokir ing tingkat pamisahan hak istimewa).

Kerentanan Meltdown klasik adhedhasar kasunyatan manawa sajrone eksekusi instruksi spekulatif, prosesor bisa ngakses area data pribadi lan banjur mbuwang asil amarga hak istimewa sing disetel nglarang akses kasebut saka proses pangguna. Ing program kasebut, blok sing dieksekusi kanthi spekulatif dipisahake saka kode utama dening cabang kondisional, sing ing kahanan nyata tansah murub, nanging amarga kasunyatane pernyataan kondisional nggunakake nilai sing diwilang sing prosesor ora ngerti nalika eksekusi preemptive. kode, kabeh opsi cabang digawa metu speculatively.

Wiwit operasi sing dieksekusi kanthi spekulatif nggunakake cache sing padha karo instruksi sing biasane dieksekusi, bisa uga sajrone eksekusi spekulatif nyetel tandha ing cache sing nggambarake isi bit individu ing area memori pribadi, lan banjur ing kode sing biasane dieksekusi kanggo nemtokake nilai kasebut liwat wektu. akses analisis menyang data cache lan uncached.

Fitur kerentanan anyar sing mengaruhi prosesor AMD Zen + lan Zen 2 yaiku CPU ngidini operasi maca lan nulis spekulatif sing ngakses memori nggunakake alamat non-kanonik sing ora bener, mung ora nggatekake 16 bit ndhuwur. Mangkono, sajrone eksekusi kode spekulatif, prosesor tansah nggunakake mung 48 bit ngisor, lan validitas alamat kasebut dicenthang kanthi kapisah. Yen, nalika nerjemahake alamat virtual non-kanonik menyang alamat fisik ing associative translation buffer (TLB), cocog dideteksi ing bagean kanonik alamat kasebut, banjur operasi muatan spekulatif bakal ngasilake nilai kasebut tanpa nggatekake isine. saka ndhuwur 16 bit, sing ngidini liwat enggo bareng memori antarane Utas. Sabanjure, operasi kasebut bakal dianggep ora sah lan dibuwang, nanging akses memori bakal rampung lan data bakal ana ing cache.

Sajrone eksperimen, nggunakake teknik nemtokake isi cache FLUSH + RELOAD, para peneliti bisa ngatur saluran kanggo transfer data sing didhelikake kanthi kecepatan 125 bita per detik. Saliyane Kripik AMD, masalah uga mengaruhi kabeh prosesor Intel, sing rentan kanggo kerentanan Meltdown klasik. Teknik sing padha sing mbantu mblokir serangan Meltdown, kayata nggunakake instruksi LFENCE, bisa digunakake kanggo nglindhungi saka serangan anyar iki. Contone, yen prosesor Intel kalebu pangayoman hardware marang Meltdown utawa sistem wis aktif pangayoman piranti lunak, banjur konfigurasi kuwi ora rentan kanggo varian serangan anyar.

Ing wektu sing padha, peneliti nyathet yen, dibandhingake karo prosesor Intel, arsitektur prosesor AMD mbatesi kemungkinan nindakake serangan nyata, nanging ora ngilangi panggunaan metode anyar kanthi kombinasi serangan mikroarsitektur liyane kanggo nambah efektifitas. Ing tartamtu, serangan ngajokaken ora ngidini siji kanggo nemtokake isi wilayah memori saka kernel lan pangolahan liyane, nanging diwatesi kanggo akses menyang Utas liyane program padha mlaku ing papan memori virtual padha.

Amarga program tanpa kerentanan nduweni kemampuan kanggo entuk akses menyang benang, saka sudut pandang praktis, metode kasebut narik kawigaten kanggo ngliwati isolasi kothak wedhi lan ngatur gangguan karo karya benang liyane ing program sing ngidini eksekusi pihak katelu. kode, kayata browser web lan mesin JIT . Peneliti nliti kerentanan mesin JavaScript SpiderMonkey lan kernel Linux kanggo nyerang, nanging ora nemokake urutan kode sing rawan sing bisa digunakake kanggo nindakake serangan. Saliyane nyerang aplikasi, cara kasebut uga bisa digunakake kanggo meksa aliran data sing ora bisa ditampa ing antarane unsur mikroarsitektur prosesor nalika ngeksploitasi kerentanan mikroarsitektur liyane.

Source: opennet.ru

Add a comment