Mayhem - spillingarárás á minnisbita til að komast framhjá sudo og OpenSSH auðkenningu

Vísindamenn frá Worcester Polytechnic Institute (Bandaríkjunum) hafa kynnt nýja tegund af Mayhem árás sem notar Rowhammer dynamic random access memory bita tækni til að breyta gildum staflabreyta sem notaðar eru sem fánar í forritinu til að ákveða hvort auðkenning og öryggisathugun hafi samþykkt. Sýnt er fram á hagnýt dæmi um árásina til að komast framhjá auðkenningu í SUDO, OpenSSH og MySQL, sem og að breyta niðurstöðu öryggistengdra athugana í OpenSSL bókasafninu.

Hægt er að beita árásinni á forrit sem nota athuganir til að bera saman gildi sem eru frábrugðin núlli. Dæmi um viðkvæman kóða: int auth = 0; ... // staðfestingarkóði sem breytir auðkenningargildinu ef auðkenning gengur vel ef(auth != 0) skilar AUTH_SUCCESS; annars skila AUTH_FAILURE;

Í samhengi við þetta dæmi, fyrir árangursríka árás, er nóg að skemma hvaða bita sem er í minni sem tengist 32-bita auðkenningarbreytu á staflanum. Ef einhver biti í breytunni er skemmdur mun gildið ekki lengur vera núll og skilyrti stjórnandinn mun ákvarða árangursríkan auðkenningu. Slík staðfestingarmynstur eru nokkuð algeng í forritum og finnast til dæmis í SUDO, OpenSSH, MySQL og OpenSSL.

Mayhem - minnisbitaárás til að komast framhjá sudo og OpenSSH auðkenningu

Einnig er hægt að beita árásinni á samanburð á forminu „ef(auth == 1)“, en í þessu tilviki verður útfærsla hennar flóknari, þar sem nauðsynlegt er að afbaka ekki hvaða bita af 32, heldur síðasta bita. Aðferðina er einnig hægt að nota til að hafa áhrif á gildi breyta í örgjörvaskrám, þar sem hægt er að skola innihaldi skránna tímabundið yfir í staflan þegar samhengisrofi, virknikall eða merkjameðferðartæki ræsir. Á þeim tíma sem skráargildi eru í minni er hægt að setja brenglun inn í þetta minni og breytt gildi verður endurheimt í skrána.

Mayhem - minnisbitaárás til að komast framhjá sudo og OpenSSH auðkenningu

Til að afbaka bitana er ein af breytingunum á RowHammer flokksárásinni notuð. Þar sem DRAM minni er tvívítt fylki frumna, sem hver samanstendur af þétti og smári, leiðir samfelld lestur á sama minnissvæðinu til spennusveiflna og frávika sem valda litlu hleðslutapi í nálægum frumum. Ef lestrarstyrkurinn er hár, getur nærliggjandi klefi tapað nægilega mikilli hleðslu og næsta endurnýjunarlota mun ekki hafa tíma til að endurheimta upprunalegt ástand sitt, sem mun leiða til breytinga á gildi gagna sem eru geymd í klefanum . Til að verjast RowHammer hafa flísaframleiðendur bætt við TRR (Target Row Refresh) vélbúnaði, sem hindrar spillingu frumna í sérstökum tilvikum, en verndar ekki gegn öllum mögulegum árásafbrigðum.

Til að verjast Mayhem-árásinni er mælt með því að nota í samanburði ekki mat á mismun frá núlli eða tilviljun með einum, heldur samsvörunarathugun sem notar tilviljunarkennt frægildi með oktettum sem eru ekki núll. Í þessu tilviki, til að stilla æskilegt gildi breytunnar, er nauðsynlegt að brengla nákvæmlega verulegan fjölda bita, sem er óraunhæft, öfugt við röskun á einum bita. Dæmi um kóða sem ekki er hægt að ráðast á: int auth = 0xbe406d1a; ... // staðfestingarkóði sem setur auðkenningargildið á 0x23ab8701 ef auðkenning gengur vel ef(auth == 0x23ab8701) skilar AUTH_SUCCESS; annars skila AUTH_FAILURE;

Tilgreind verndaraðferð hefur þegar verið notuð af sudo forriturunum og var innifalin í útgáfu 1.9.15 sem lagfæring á CVE-2023-42465 varnarleysinu. Þeir ætla að gefa út frumgerð af kóðanum til að framkvæma árásina eftir að lagfæringar hafa verið gerðar á helstu viðkvæmu verkefnum.

Heimild: opennet.ru

Bæta við athugasemd