Retbleed යනු Intel සහ AMD CPU වල සමපේක්ෂන ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණයට නව ප්‍රහාරයකි.

ETH Zurich හි පර්යේෂකයන් කණ්ඩායමක් CPU හි වක්‍ර සංක්‍රාන්ති සමපේක්ෂන ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණයට නව ප්‍රහාරයක් හඳුනාගෙන ඇත, එමඟින් කර්නල් මතකයෙන් තොරතුරු උකහා ගැනීමට හෝ අථත්‍ය යන්ත්‍රවලින් ධාරක පද්ධතියට ප්‍රහාරයක් සංවිධානය කිරීමට හැකි වේ. දුර්වලතා Retbleed (CVE-2022-29900, CVE-2022-29901) යන සංකේත නාමයෙන් හඳුන්වනු ලබන අතර ස්පෙක්ටර්-v2 ප්‍රහාරවලට ස්වභාවයෙන්ම සමීප වේ. වෙනස පැමිණෙන්නේ “jmp” උපදෙස් භාවිතා කරමින් වක්‍ර පැනීමක් වෙනුවට, ලිපින පූරණය කිරීම වෙනුවට, තොගයෙන් පැනීමට ලිපිනය ලබා ගන්නා “ret” (ආපසු) උපදෙස් සැකසීමේදී අත්තනෝමතික කේතය ක්‍රියාත්මක කිරීම සමපේක්ෂනය කිරීම සංවිධානය කිරීමයි. මතකය හෝ CPU රෙජිස්ටර්.

ප්‍රහාරකයෙකුට වැරදි සංක්‍රාන්ති පුරෝකථනය සඳහා කොන්දේසි නිර්මානය කළ හැකි අතර වැඩසටහන් ක්‍රියාත්මක කිරීමේ තර්කය මගින් සපයා නොමැති කේත කොටසකට ඉලක්කගත, සමපේක්ෂන සංක්‍රමණයක් සංවිධානය කළ හැක. අවසානයේදී, ප්‍රොසෙසරය ශාඛා අනාවැකිය යුක්ති සහගත නොවන බව තීරණය කරන අතර මෙහෙයුම එහි මුල් තත්වයට පෙරළනු ඇත, නමුත් සමපේක්ෂන ක්‍රියාත්මක කිරීමේදී සැකසූ දත්ත හැඹිලි සහ ක්ෂුද්‍ර වාස්තු විද්‍යාත්මක බෆරවල අවසන් වේ. වැරදි ලෙස ක්‍රියාත්මක කරන ලද බ්ලොක් එකක් මතකයට ප්‍රවේශ වන්නේ නම්, එහි සමපේක්ෂන ක්‍රියාත්මක කිරීම මතකයෙන් කියවන දත්ත බෙදාගත් හැඹිලියේ තැන්පත් වීමට හේතු වේ.

සමපේක්ෂන මෙහෙයුම් වලින් පසු හැඹිලියේ ඉතිරිව ඇති දත්ත නිර්ණය කිරීම සඳහා, ප්‍රහාරකයෙකුට හැඹිලිගත සහ හැඹිලිගත නොකළ දත්ත වලට ප්‍රවේශ වීමේ වේලාවන්හි වෙනස්කම් විශ්ලේෂණය කිරීම වැනි අවශේෂ දත්ත නිර්ණය කිරීමට පැති නාලිකා ශිල්පීය ක්‍රම භාවිතා කළ හැක. වෙනත් වරප්‍රසාද මට්ටමකින් (උදාහරණයක් ලෙස, කර්නල් මතකයෙන්) ප්‍රදේශවලින් හිතාමතා තොරතුරු උකහා ගැනීම සඳහා, “ගැජට්” භාවිතා කරනු ලැබේ - බලපෑම් කළ හැකි බාහිර තත්වයන් මත පදනම්ව මතකයෙන් දත්ත සමපේක්ෂන ලෙස කියවීමට සුදුසු කර්නලයේ ඇති විධාන අනුපිළිවෙල. ප්රහාරකයා.

කොන්දේසි සහිත සහ වක්‍ර පැනීමේ උපදෙස් භාවිතා කරන සම්භාව්‍ය ස්පෙක්ටර් පන්තියේ ප්‍රහාර වලින් ආරක්ෂා වීමට, බොහෝ මෙහෙයුම් පද්ධති "retpoline" තාක්ෂණය භාවිතා කරයි, එය වක්‍ර පැනීමේ මෙහෙයුම් "ret" උපදෙස් සමඟ ප්‍රතිස්ථාපනය කිරීම මත පදනම් වේ, ඒ සඳහා ප්‍රොසෙසර වෙනම ස්ටැක් ප්‍රාන්ත අනාවැකි ඒකකයක් භාවිතා කරයි. ශාඛා පුරෝකථන බ්ලොක් එකක් භාවිතා නොකරයි. 2018 දී retpoline හඳුන්වා දුන් විට, "ret" උපදෙස් භාවිතයෙන් සමපේක්ෂන අතු බෙදීම සඳහා Specter වැනි ලිපින හැසිරවීම් ප්‍රායෝගික නොවන බව විශ්වාස කෙරිණි.

Retbleed ප්‍රහාරක ක්‍රමය දියුණු කළ පර්යේෂකයන් විසින් "ret" උපදෙස් භාවිතා කරමින් සමපේක්ෂන සංක්‍රාන්තියක් ආරම්භ කිරීම සඳහා ක්ෂුද්‍ර වාස්තු විද්‍යාත්මක තත්වයන් නිර්මාණය කිරීමේ හැකියාව පෙන්නුම් කළ අතර Linux කර්නලයේ ඇති අවදානම් ප්‍රයෝජනයට ගැනීමට සුදුසු උපදෙස් (ගැජට්) හඳුනාගැනීම සඳහා සූදානම් කළ මෙවලම් ප්‍රකාශයට පත් කරන ලදී. එවැනි තත්වයන් පෙන්නුම් කරයි.

පර්යේෂණය අතරතුර, Intel CPU සහිත පද්ධති මත තත්පරයට බයිට් 219 ක වේගයකින් සහ 98% නිරවද්‍යතාවයකින් පරිශීලක අවකාශයේ වරප්‍රසාද නොලත් ක්‍රියාවලියකින් කර්නල් මතකයෙන් අත්තනෝමතික දත්ත උකහා ගැනීමට ඉඩ සලසන ක්‍රියාකාරී සූරාකෑමක් සකස් කරන ලදී. AMD ප්‍රොසෙසර මත, සූරාකෑමේ කාර්යක්ෂමතාවය බෙහෙවින් වැඩි ය - කාන්දු වීමේ වේගය තත්පරයට 3.9 KB වේ. ප්‍රායෝගික උදාහරණයක් ලෙස, /etc/shadow ගොනුවේ අන්තර්ගතය තීරණය කිරීමට යෝජිත සූරාකෑම භාවිතා කරන ආකාරය අපි පෙන්වමු. Intel CPU සහිත පද්ධති මත, root පරිශීලක මුරපද හැෂ් තීරණය කිරීමේ ප්‍රහාරය මිනිත්තු 28 කින් සහ AMD CPU සහිත පද්ධති මත - මිනිත්තු 6 කින් සිදු කරන ලදී.

Q6 8 ට පෙර නිකුත් කරන ලද (Skylake ඇතුළුව) Intel ප්‍රොසෙසර පරම්පරා 3-2019 සඳහා ප්‍රහාරය තහවුරු කර ඇත, සහ Q1 1 ට පෙර නිකුත් කරන ලද Zen 2, Zen 2021+ සහ Zen 3 microarchitectures මත පදනම් වූ AMD ප්‍රොසෙසර. AMD ZenXNUMX සහ Intel Alder Lake වැනි නව ප්‍රොසෙසර මාදිලිවල මෙන්ම ARM ප්‍රොසෙසර වලද පවතින ආරක්ෂණ යාන්ත්‍රණ මගින් ගැටළුව අවහිර කරනු ලැබේ. උදාහරණයක් ලෙස, IBRS (වක්‍ර ශාඛා සීමා සහිත සමපේක්ෂනය) උපදෙස් භාවිතා කිරීම ප්‍රහාර වලින් ආරක්ෂා වීමට උපකාරී වේ.

Linux kernel සහ Xen hypervisor සඳහා වෙනස්කම් මාලාවක් සකස් කර ඇති අතර, පැරණි CPU වල මෘදුකාංග වල ඇති ගැටළුව අවහිර කරනු ඇත. ලිනක්ස් කර්නලය සඳහා යෝජිත පැච් එක ගොනු 68ක් වෙනස් කරයි, පේළි 1783ක් එකතු කරයි, සහ පේළි 387ක් මකා දමයි. අවාසනාවකට මෙන්, ආරක්ෂාව සැලකිය යුතු පොදු කාර්ය පිරිවැයකට මග පාදයි - AMD සහ Intel ප්‍රොසෙසරවල සිදු කරන ලද පාඨවල, කාර්ය සාධනය අඩුවීම 14% සිට 39% දක්වා ඇස්තමේන්තු කර ඇත. IBRS උපදෙස් මත පදනම්ව ආරක්ෂාව භාවිතා කිරීම වඩාත් යෝග්‍ය වේ, නව පරම්පරාවේ Intel CPU වලින් ලබා ගත හැකි අතර Linux කර්නලය 4.19 සමඟින් ආරම්භ කිරීමට සහය දක්වයි.

Intel ප්‍රොසෙසරවල, Return Stack Buffer හි පහළ මායිම (යටින් ගලා යාම) හරහා පිටාර ගැලීමක් සිදු වූ විට දිස්වන විශේෂාංගයකට ස්තුති කරමින් සමපේක්ෂන වක්‍ර පැනීමක් සඳහා ලිපින ආදේශනය සිදු කෙරේ. එවැනි තත්වයන් ඇති වූ විට, "ret" උපදෙස් සාමාන්ය වක්ර පැනීම් සඳහා භාවිතා කරන ලිපිනයන් තෝරාගැනීමේ තර්කනය යෙදීමට පටන් ගනී. ලිනක්ස් කර්නලයේ ස්ථාන දහසකට වඩා සොයාගෙන ඇති අතර එමඟින් එවැනි ආපසු ප්‍රවාහයක් ආරම්භ කිරීම සඳහා කොන්දේසි නිර්මානය කරන අතර පද්ධති ඇමතුම් හරහා ප්‍රවේශ විය හැකිය.

AMD ප්‍රොසෙසර මත, “ret” උපදෙස සමපේක්‍ෂිතව ක්‍රියාත්මක කිරීම ස්ටොක්-විශේෂිත බෆරයක් (ආපසු ලිපින තොගයක්) වෙත යොමු නොකර සිදු කරනු ලබන අතර ශාඛා අනාවැකි ඒකකය විසින් “ret” උපදෙස් පාලන ප්‍රතිලාභයක් ලෙස නොව වක්‍ර ශාඛාවක් ලෙස සලකයි. , සහ, ඒ අනුව, අනාවැකි වක්‍ර සංක්‍රාන්ති සඳහා දත්ත භාවිතා කරයි. මෙම තත්වයන් යටතේ, පද්ධති ඇමතුමක් හරහා ළඟා විය හැකි ඕනෑම "ret" මෙහෙයුමක් ප්‍රයෝජනයට ගත හැක.

මීට අමතරව, ව්‍යාජ ශාඛා ක්‍රියාත්මක කිරීමට අදාළ AMD CPU වල (CVE-2022-23825, ශාඛා ආකාරයේ ව්‍යාකූලත්වය) තවත් ගැටළුවක් හඳුනාගෙන ඇත - ශාඛා අනාවැකි සඳහා කොන්දේසි අවශ්‍ය ශාඛා උපදෙස් නොමැතිව වුවද සිදුවිය හැකි අතර එමඟින් ශාඛා අනාවැකි බෆරයට බලපෑම් කිරීමට ඉඩ සලසයි. "ret" උපදෙස් නොමැතිව. මෙම අංගය ආරක්ෂාව ක්රියාත්මක කිරීම සැලකිය යුතු ලෙස සංකීර්ණ වන අතර ශාඛා අනාවැකි බෆරයේ වඩාත් ක්රියාකාරී පිරිසිදු කිරීම අවශ්ය වේ. කර්නලයට සම්පූර්ණ ආරක්ෂාව එක් කිරීමෙන් පොදු කාර්ය 209% කින් වැඩි කිරීමට අපේක්ෂා කෙරේ.

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

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