Di pêvajoyên AMD de qelsiyek din hate nas kirin ku destûrê dide êrîşên Meltdown

Tîmek lêkolînerên ji Zanîngeha Teknîkî ya Graz (Awisturya) û Navenda Helmholtz ji bo Ewlehiya Agahdariyê (CISPA) di hemî pêvajoyên AMD-ê de di derheqê qelsiyek (CVE-2021-26318) de agahdarî eşkere kir ku pêkanîna pola Meltdown-ê gengaz dike. êrîşên kanalên alîgir (di destpêkê de hate texmîn kirin ku pêvajoyên AMD ji xetereya Meltdown ne bandor in). Di warê pratîkî de, êrîş dikare were bikar anîn da ku kanalên ragihandinê yên veşartî saz bike, çalakiya di kernelê de bişopîne, an agahdariya li ser navnîşanên di bîranîna kernelê de werbigire da ku parastina KASLR-ê dema ku qelsiyên di kernelê de bikar tîne derbas bike.

AMD ji bo astengkirina pirsgirêkê girtina tedbîrên taybetî neguncaw dibîne, ji ber ku qelsî, mîna êrîşek bi heman rengî ku di Tebaxê de hatî vedîtin, di şert û mercên rastîn de hindik tê bikar anîn, ji hêla sînorên heyî yên cîhê navnîşana pêvajoyê ve hatî sînordar kirin û hebûna hin kesan hewce dike. rêzikên amade yên talîmatan (gadgetan) di kernelê de. Ji bo ku êrîşê nîşan bidin, lêkolîner modula xweya kernelê bi amûrek çêkirî ya lêzêdekirî bar kirin. Di şert û mercên rastîn de, êrîşkar dikarin bikar bînin, mînakî, bi rêkûpêk qelsiyên di binpergala eBPF de derdixin da ku rêzikên pêwîst biguhezînin.

Ji bo parastina li hember vê celebê nû yê êrîşê, AMD pêşniyar kir ku teknîkên kodkirina ewledar bikar bînin ku ji bo astengkirina êrîşên Meltdown-ê dibin alîkar, wek mînak karanîna rêwerzên LFENCE. Lekolînwanên ku pirsgirêk nas kirin pêşniyar dikin ku îzolekirina tabloya rûpela bîranînê ya hişktir (KPTI) çalak bikin, ku berê tenê ji bo pêvajoyên Intel-ê dihat bikar anîn.

Di dema ceribandinê de, lêkolîneran karîbûn agahdariya ji kernelê bigihînin pêvajoyek li cîhê bikarhêner bi leza 52 byte di çirkeyê de, ji ber hebûna amûrek di kernelê de ku operasyonê dike "eger (offset < data_len) tmp = LUT[dane[berhevkirin] * 4096];” . Gelek rêbaz hatine pêşniyar kirin ku agahdariya bi riya kanalên alîgir ên ku di dema darvekirina spekulatîf de di kaşê de diqede. Rêbaza yekem li ser bingeha analîzkirina devjêberdanên di dema pêkanîna talîmatên pêvajoyê "PREFETCH" (Prefetch+Time) de ye, û ya duyemîn jî li ser guheztina guhertina xerckirina enerjiyê dema ku "PREFETCH" (Prefetch+Power) tête darve kirin.

Bînin bîra xwe ku qelsiya Meltdown-a klasîk li ser vê yekê ye ku di dema pêkanîna talîmatên spekulatîf de, pêvajokar dikare xwe bigihîne deverek daneya taybet û dûv re encamê bavêje, ji ber ku îmtiyazên sazkirî gihîştina wusa ji pêvajoya bikarhêner qedexe dikin. Di bernameyê de, bloka ku bi spekulatîf hatî darvekirin ji hêla şaxek şertî ve ji koda sereke tê veqetandin, ku di şert û mercên rastîn de her gav dişewite, lê ji ber vê yekê ku daxuyaniya şertî nirxek hesabkirî bikar tîne ku pêvajo di dema darvekirina pêşîlêgirtinê de nizane. kod, hemî vebijarkên şax bi spekulatîf têne kirin.

Ji ber ku operasyonên ku bi spekulatîf têne darve kirin heman cache-yê wekî rêwerzên ku bi gelemperî têne darve kirin bikar tînin, di dema darvekirina spekulatîf de gengaz e ku meriv nîşankeran di cache-yê de destnîşan bike ku naveroka bit-ên kesane li deverek bîranîna taybet nîşan dide, û dûv re di koda ku bi gelemperî hatî darve kirin de nirxa wan bi demê re diyar bike. analîz digihîje daneyên cached û ne-cached.

Source: opennet.ru

Add a comment