Mayhem - sudo සහ OpenSSH සත්‍යාපනය මග හැරීමට මතක බිට් දූෂණ ප්‍රහාරයක්

Worcester Polytechnic Institute (USA) හි පර්යේෂකයන් විසින් Rowhammer ඩයිනමික් සසම්භාවී ප්‍රවේශ මතක බිට් විකෘති කිරීමේ තාක්‍ෂණය භාවිතා කරන නව ආකාරයේ Mayhem ප්‍රහාරයක් හඳුන්වා දී ඇත, එය සත්‍යාපනය සහ ආරක්ෂක පරීක්ෂාවන් තිබේද යන්න තීරණය කිරීම සඳහා වැඩසටහනේ ධජ ලෙස භාවිතා කරන තොග විචල්‍යවල අගයන් වෙනස් කරයි. සමත් විය. ප්‍රහාරයේ ප්‍රායෝගික උදාහරණ SUDO, OpenSSH සහ MySQL වල සත්‍යාපනය මග හැරීමට මෙන්ම OpenSSL පුස්තකාලයේ ආරක්‍ෂාවට අදාළ චෙක්පත් වල ප්‍රතිඵල වෙනස් කිරීමට ද ප්‍රදර්ශනය කෙරේ.

ශුන්‍යයට වඩා වෙනස් අගයන් සංසන්දනය කිරීමට චෙක්පත් භාවිතා කරන යෙදුම් සඳහා ප්‍රහාරය යෙදිය හැක. අවදානමට ලක්විය හැකි කේතයේ උදාහරණය: int auth = 0; ... // සාර්ථක සත්‍යාපනයකදී සත්‍යාපන අගය වෙනස් කරන සත්‍යාපන කේතය (auth != 0) ආපසු AUTH_SUCCESS; වෙනත් AUTH_FAILURE ආපසු;

මෙම උදාහරණයේ සන්දර්භය තුළ, සාර්ථක ප්‍රහාරයක් සඳහා, තොගයේ ඇති 32-bit auth විචල්‍යය හා සම්බන්ධ මතකයේ ඇති ඕනෑම බිට් එකක් දූෂිත කිරීම ප්‍රමාණවත් වේ. විචල්‍යයේ කිසියම් බිට් එකක් දූෂිත වී ඇත්නම්, අගය තවදුරටත් ශුන්‍ය නොවන අතර කොන්දේසි සහිත ක්‍රියාකරු සත්‍යාපනය සාර්ථකව නිම කිරීම තීරණය කරයි. එවැනි වලංගුකරණ රටා යෙදුම්වල බහුලව දක්නට ලැබෙන අතර, උදාහරණයක් ලෙස, SUDO, OpenSSH, MySQL සහ OpenSSL හි දක්නට ලැබේ.

Mayhem - sudo සහ OpenSSH සත්‍යාපනය මග හැරීමට මතක බිට් මැන්ග්ලිං ප්‍රහාරය

ප්‍රහාරය “if(auth == 1)” පෝරමයේ සංසන්දනය සඳහා ද යෙදිය හැකිය, නමුත් මෙම අවස්ථාවේ දී එය ක්‍රියාත්මක කිරීම වඩාත් සංකීර්ණ වේ, මන්ද එය 32 හි කිසිදු බිට් එකක් නොව අවසාන බිට් එක විකෘති කිරීමට අවශ්‍ය වේ. සන්දර්භ ස්විචයක්, ක්‍රියාකාරී ඇමතුමක් හෝ සංඥා හසුරුවන්නක් ගිනි ගන්නා විට රෙජිස්ටර් වල අන්තර්ගතය තාවකාලිකව තොගය මතට ගලා යා හැකි බැවින්, ප්‍රොසෙසර රෙජිස්ටර්වල විචල්‍යවල අගයන්ට බලපෑම් කිරීමට ද ක්‍රමය භාවිතා කළ හැක. රෙජිස්ටර් අගයන් මතකයේ පවතින කාලය තුළ, මෙම මතකයට විකෘති කිරීම් හඳුන්වා දිය හැකි අතර වෙනස් වූ අගය ලේඛනයට ප්‍රතිසාධනය කරනු ලැබේ.

Mayhem - sudo සහ OpenSSH සත්‍යාපනය මග හැරීමට මතක බිට් මැන්ග්ලිං ප්‍රහාරය

බිටු විකෘති කිරීම සඳහා, RowHammer පන්තියේ ප්රහාරයේ වෙනස් කිරීම් වලින් එකක් භාවිතා වේ. DRAM මතකය යනු ධාරිත්‍රකයක් සහ ට්‍රාන්සිස්ටරයකින් සමන්විත ද්විමාන සෛල මාලාවක් වන බැවින්, එම මතක කලාපයේම අඛණ්ඩ කියවීම් සිදුකිරීමෙන් වෝල්ටීයතා උච්චාවචනයන් සහ විෂමතා ඇති වන අතර එමඟින් අසල්වැසි සෛලවල ආරෝපණ සුළු අඩුවීමක් සිදුවේ. කියවීමේ තීව්‍රතාවය ඉහළ නම්, අසල්වැසි සෛලයට ප්‍රමාණවත් තරම් විශාල ආරෝපණයක් අහිමි විය හැකි අතර ඊළඟ පුනර්ජනන චක්‍රයට එහි මුල් තත්වය යථා තත්වයට පත් කිරීමට කාලය නොමැති අතර එමඟින් සෛලයේ ගබඩා කර ඇති දත්තවල අගය වෙනස් වේ. . RowHammer වලින් ආරක්ෂා වීම සඳහා, චිප් නිෂ්පාදකයින් TRR (ඉලක්ක පේළි නැවුම් කිරීම) යාන්ත්‍රණයක් එක් කර ඇත, එය විශේෂ අවස්ථා වලදී සෛල දූෂණය අවහිර කරයි, නමුත් හැකි සියලුම ප්‍රහාරක වෙනස්කම් වලින් ආරක්ෂා නොවේ.

Mayhem ප්‍රහාරයෙන් ආරක්ෂා වීම සඳහා, සංසන්දනය කිරීමේදී ශුන්‍යයේ වෙනස්කම් ඇගයීමක් හෝ එකක් සමඟ අහඹු සිදුවීමක් නොව, ශුන්‍ය නොවන අෂ්ටක සහිත අහඹු බීජ අගයක් භාවිතා කරමින් තරඟ පරීක්ෂාවක් භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ. මෙම අවස්ථාවෙහිදී, විචල්‍යයේ අපේක්ෂිත අගය සැකසීමට, බිට් එකක විකෘතියට ප්‍රතිවිරුද්ධව, යථාර්ථවාදී නොවන සැලකිය යුතු බිටු සංඛ්‍යාවක් නිවැරදිව විකෘති කිරීම අවශ්‍ය වේ. ප්‍රහාරයට ලක් නොවන කේතයේ උදාහරණය: int auth = 0xbe406d1a; ... // සත්‍යාපන කේතය සාර්ථක සත්‍යාපනයකදී (auth == 0x23ab8701) AUTH_SUCCESS ආපසු ලබා දෙන්නේ නම්, සත්‍යාපන අගය 0x23ab8701 ලෙස සකසයි; වෙනත් AUTH_FAILURE ආපසු;

නිශ්චිත ආරක්ෂණ ක්‍රමය දැනටමත් sudo සංවර්ධකයින් විසින් භාවිතා කර ඇති අතර CVE-1.9.15-2023 අවදානම සඳහා විසඳුමක් ලෙස 42465 නිකුතුවේ ඇතුළත් කර ඇත. ප්‍රධාන අවදානමට ලක්විය හැකි ව්‍යාපෘති සඳහා නිවැරදි කිරීම් සිදු කිරීමෙන් පසු ප්‍රහාරය සිදු කිරීම සඳහා කේතයේ මූලාකෘතියක් ප්‍රකාශයට පත් කිරීමට ඔවුන් සැලසුම් කරයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න