Mayhem - memory bit corruption attack aron malaktawan ang sudo ug OpenSSH authentication

Ang mga tigdukiduki gikan sa Worcester Polytechnic Institute (USA) nagpaila sa usa ka bag-ong tipo sa pag-atake sa Mayhem nga naggamit sa Rowhammer dynamic random access memory bit distortion technique aron mabag-o ang mga kantidad sa stack variables nga gigamit ingon nga mga bandila sa programa aron makadesisyon kung ang authentication ug security checks adunay milabay. Ang praktikal nga mga pananglitan sa pag-atake gipakita aron malaktawan ang pag-authenticate sa SUDO, OpenSSH ug MySQL, ingon man usab aron mabag-o ang resulta sa mga pagsusi nga may kalabotan sa seguridad sa librarya sa OpenSSL.

Ang pag-atake mahimong magamit sa mga aplikasyon nga naggamit mga tseke aron itandi ang mga kantidad nga lahi sa zero. Pananglitan sa mahuyang nga code: int auth = 0; ... // verification code nga nag-usab sa authentication value sa kaso sa malampuson nga authentication if(auth != 0) return AUTH_SUCCESS; lain ibalik ang AUTH_FAILURE;

Sa konteksto niini nga pananglitan, alang sa usa ka malampuson nga pag-atake igo na nga madaot ang bisan unsang gamay sa memorya nga may kalabutan sa 32-bit nga auth variable sa stack. Kung adunay bisan unsang gamay sa variable nga nadaot, ang kantidad dili na zero ug ang conditional operator ang magtino sa malampuson nga pagkompleto sa pag-authenticate. Ang ingon nga mga sumbanan sa pag-validate kay kasagaran sa mga aplikasyon ug makita, pananglitan, sa SUDO, OpenSSH, MySQL ug OpenSSL.

Mayhem - memory bit corruption attack aron malaktawan ang sudo ug OpenSSH authentication

Ang pag-atake mahimo usab nga magamit sa mga pagtandi sa porma nga "kung (auth == 1)", apan sa kini nga kaso ang pagpatuman niini mahimong labi ka komplikado, tungod kay kinahanglan nga tuis ang bisan unsang gamay nga 32, apan ang katapusan nga gamay. Ang pamaagi mahimo usab nga gamiton aron maimpluwensyahan ang mga kantidad sa mga variable sa mga rehistro sa processor, tungod kay ang mga sulud sa mga rehistro mahimo’g temporaryo nga ma-flush sa stack kung ang switch sa konteksto, tawag sa function, o tigdumala sa signal nagdilaab. Atol sa yugto sa panahon samtang ang mga kantidad sa rehistro naa sa panumduman, ang mga pagtuis mahimong ipaila sa kini nga panumduman ug ang nabag-o nga kantidad ibalik sa rehistro.

Mayhem - memory bit corruption attack aron malaktawan ang sudo ug OpenSSH authentication

Sa pagtuis sa mga tipik, usa sa mga kausaban sa RowHammer class attack ang gigamit. Tungod kay ang memorya sa DRAM usa ka duha ka dimensyon nga han-ay sa mga selyula, ang matag usa naglangkob sa usa ka kapasitor ug usa ka transistor, ang paghimo sa padayon nga pagbasa sa parehas nga rehiyon sa panumduman moresulta sa pag-usab-usab sa boltahe ug mga anomaliya nga hinungdan sa gamay nga pagkawala sa bayad sa mga silingan nga mga selyula. Kung ang intensity sa pagbasa taas, nan ang silingan nga cell mahimong mawad-an og igo nga kantidad sa bayad ug ang sunod nga siklo sa pagbag-o wala’y oras aron mapasig-uli ang orihinal nga kahimtang niini, nga mosangput sa pagbag-o sa kantidad sa datos nga gitipig sa cell . Aron mapanalipdan batok sa RowHammer, ang mga tiggama sa chip midugang ug TRR (Target Row Refresh) nga mekanismo, nga nagbabag sa korapsyon sa selula sa mga espesyal nga kaso, apan wala manalipod batok sa tanang posibleng kausaban sa pag-atake.

Aron mapanalipdan batok sa pag-atake sa Mayhem, girekomenda nga gamiton ang mga pagtandi nga dili sa pagtimbang-timbang sa mga kalainan gikan sa zero o sulagma ngadto sa usa, apan aron masusi ang mga posporo gamit ang usa ka random nga kantidad sa binhi nga adunay non-zero octets. Sa kini nga kaso, aron mabutang ang gitinguha nga kantidad sa variable, kinahanglan nga tukma nga pagtuis ang usa ka hinungdanon nga gidaghanon sa mga tipik, nga dili realistiko, sukwahi sa pagtuis sa usa ka gamay. Pananglitan sa dili maatake nga code: int auth = 0xbe406d1a; ... // verification code nga nagbutang sa auth value ngadto sa 0x23ab8701 sa kaso sa malampuson nga authentication kung (auth == 0x23ab8701) ibalik ang AUTH_SUCCESS; lain ibalik ang AUTH_FAILURE;

Ang gipiho nga paagi sa pagpanalipod gigamit na sa mga developer sa sudo ug gilakip sa pagpagawas sa 1.9.15 ingon usa ka ayo alang sa pagkahuyang sa CVE-2023-42465. Nagplano sila nga mag-publish usa ka prototype sa code alang sa pagpahigayon sa pag-atake pagkahuman gihimo ang mga pag-ayo sa mga nag-unang huyang nga mga proyekto.

Source: opennet.ru

Idugang sa usa ka comment