Mayhem - êrîşa bertîlê ya bit ya bîranînê ji bo derbaskirina piştrastkirina sudo û OpenSSH

Lekolînwanên Enstîtuya Polîteknîkî ya Worcester (DYA) celebek nû ya êrîşa Mayhem destnîşan kirin ku teknîka guheztina dînamîk a Rowhammer-ê ya dînamîkî ya berovajîkirina bîta bîranînê bikar tîne da ku nirxên guhêrbarên stakê yên ku di bernameyê de wekî ala têne bikar anîn biguhezîne da ku biryar bide ka rastrastkirin û kontrolên ewlehiyê hene. derbas bû. Nimûneyên pratîkî yên êrîşê têne destnîşan kirin ku ji bo erêkirinê di SUDO, OpenSSH û MySQL de derbas bikin, û her weha ji bo guheztina encamên kontrolên ewlehiyê yên di pirtûkxaneya OpenSSL de.

Êrîş dikare li ser sepanên ku kontrolan bikar tînin ji bo berhevdana nirxên ku ji sifirê cûda dibin were sepandin. Nimûneya koda zehf: int auth = 0; ... // Koda verastkirinê ya ku nirxa erêkirinê di rewsa rastrastkirina serketî de diguhezîne heke(auth != 0) vegere AUTH_SUCCESS; wekî din vegere AUTH_FAILURE;

Di çarçoweya vê nimûneyê de, ji bo êrîşek serketî bes e ku meriv di bîranîna ku bi guhêrbara 32-bit auth ya li ser stakê ve girêdayî ye xera bike. Heke di guhêrbarê de bitekek xera bibe, dê nirx êdî sifir nebe û operatorê şertî dê temambûna serketî ya rastkirinê diyar bike. Nimûneyên pejirandinê yên weha di serlêdanan de pir gelemperî ne û, mînakî, di SUDO, OpenSSH, MySQL û OpenSSL de têne dîtin.

Mayhem - Êrîşa têkbirina bîranînê ji bo derbaskirina piştrastkirina sudo û OpenSSH

Di heman demê de êrîş dikare li berhevokên forma "eger(auth == 1)" jî were sepandin, lê di vê rewşê de pêkanîna wê tevlihevtir dibe, ji ber ku pêdivî ye ku ne bitek 32-ê, lê bîta paşîn were xera kirin. Rêbaz di heman demê de dikare were bikar anîn da ku bandorê li nirxên guhêrbarên di tomarên pêvajoyê de bike, ji ber ku naveroka tomaran dikare bi demkî li ser stakê were rijandin dema ku veguhezek çarçoveyê, banga fonksiyonê, an hilgirê nîşanê dişewite. Di dema dema ku nirxên qeydê di bîranînê de ne, di vê bîranînê de texrîbat têne kirin û nirxa guhertî dê li qeydê were vegerandin.

Mayhem - Êrîşa têkbirina bîranînê ji bo derbaskirina piştrastkirina sudo û OpenSSH

Ji bo xerakirina bîtan, yek ji guheztinên êrîşa çîna RowHammer tê bikar anîn. Ji ber ku bîra DRAM komek hucreyên du-alî ye, ku her yek ji kondensator û transîstorek pêk tê, xwendina domdar a heman devera bîranînê dibe sedema guheztinên voltajê û anomalî ku dibe sedema windabûna piçûk a barkirinê di şaneyên cîran de. Ger tundiya xwendinê zêde be, wê hingê dibe ku hucreya cîran barek têra xwe zêde winda bike û çerxa nûvekirina din dê dem tune ku rewşa xweya orîjînal vegerîne, ku dê bibe sedema guhertina nirxa daneya ku di hucreyê de hatî hilanîn. . Ji bo parastina li hember RowHammer, çêkerên çîpê mekanîzmayek TRR (Rêza Target Refresh) lê zêde kirine, ku di rewşên taybetî de gendeliya hucreyê asteng dike, lê li hember hemî cûrbecûr êrişên gengaz naparêze.

Ji bo parastina li dijî êrîşa Mayhem, tê pêşniyar kirin ku di danberhevan de ne nirxandinek cûdahiyên ji sifir an rasthatinek bi yekê re, lê kontrolek hevberdanê bi karanîna nirxek tovê random bi oktetên ne-sifir re bikar bînin. Di vê rewşê de, ji bo danîna nirxa xwestî ya guhêrbar, pêdivî ye ku meriv hejmareke girîng a bit bi duristî berovajî bike, ku ev yek ne rast e, berevajî berevajîkirina yek bit. Mînaka koda ne-êrîşker: int auth = 0xbe406d1a; ... // Koda verastkirinê ya ku nirxa erêkirinê datîne ser 0x23ab8701-ê di doza rastkirina serketî de heke (auth == 0x23ab8701) vegere AUTH_SUCCESS; wekî din vegere AUTH_FAILURE;

Rêbaza parastinê ya diyarkirî jixwe ji hêla pêşdebirên sudo ve hatî bikar anîn û di berdana 1.9.15-ê de wekî rastkirinek ji bo qelsiya CVE-2023-42465 hate girtin. Ew plan dikin ku prototîpek kodê ji bo pêkanîna êrîşê biweşînin piştî ku rastkirina projeyên xeternak ên sereke hatine çêkirin.

Source: opennet.ru

Add a comment