මුරපොල යෝජිත Safe-Linking ආරක්ෂණ තාක්‍ෂණය, දුර්වලතා ගසාකෑම වඩාත් අපහසු කරයි

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

Glibc (ptmalloc), uClibc-NG (dlmalloc), gperftools (tcmalloc) සහ Google TCMalloc සඳහා Safe-Linking ක්‍රියාත්මක කරන පැච් සකස් කර ඇති අතර, Chromium හි ආරක්ෂාව උත්ශ්‍රේණි කිරීම සඳහා ද යෝජනා කර ඇත.
2012 සිට, Chromium දැනටමත් MaskPtr ආරක්ෂණ තාක්‍ෂණය තුළ එකම ගැටළුව විසඳීම අරමුණු කර ගෙන ඇත, නමුත් මුරපොලේ විසඳුම ඉහළ කාර්ය සාධනයක් පෙන්නුම් කරයි).
අගෝස්තු නිකුතුවේදී බෙදා හැරීම සඳහා යෝජිත පැච් දැනටමත් අනුමත කර ඇත ග්ලිබ් 3.32 සහ Safe-Linking පෙරනිමියෙන් සක්‍රීය වනු ඇත. uClibc-NG Safe-Linking සඳහා සහය දක්වයි ඇතුලත් කර ඇත 1.0.33 නිකුතුවට ඇතුළත් කර ඇති අතර පෙරනිමියෙන් සක්‍රීය කර ඇත. gperftools හි වෙනස්කම් (පැරණි tcmalloc) පිළිගත්තා, නමුත් අනාගත නිකුතුවකදී විකල්පයක් ලෙස ඉදිරිපත් කරනු ඇත.

සංවර්ධකයින් TCMalloc (නව tcmalloc) පිළිගැනීම ප්‍රතික්ෂේප කළේය වෙනස් කරන්න, දැඩි කාර්ය සාධනය පිරිහීම සහ බලාපොරොත්තු වන පරිදි සෑම දෙයක්ම ක්‍රියාත්මක වන බව නිතිපතා පරීක්ෂා කිරීම සඳහා පුළුල් පරීක්ෂණ එකතු කිරීමේ අවශ්‍යතාවය උපුටා දක්වමින්. චෙක්පොයින්ට් ඉංජිනේරුවන් විසින් කරන ලද පරීක්ෂණයකින් පෙන්නුම් කළේ ආරක්ෂිත-සබැඳි කිරීමේ ක්‍රමය අමතර මතක පරිභෝජනයට තුඩු නොදෙන බවත්, ගොඩවල් මෙහෙයුම් සිදු කරන විට කාර්ය සාධනය සාමාන්‍යයෙන් 0.02% කින් පමණක් අඩු වන අතර නරකම අවස්ථාවෙහිදී 1.5% කින් (සැසඳීම සඳහා, පොදු කාර්ය Chromium හි භාවිතා කරන ක්‍රමය "2% ට වඩා අඩු" ලෙස ඇස්තමේන්තු කර ඇත). ඇතුළත් කිරීම
ආරක්ෂිත-සබැඳිය ප්‍රතිඵලයක් ලෙස නොමිලේ() ඇමතූ සෑම අවස්ථාවකම අමතර එකලස් කිරීමේ උපදෙස් 2-3 ක් ක්‍රියාත්මක වන අතර malloc() ඇමතූ සෑම අවස්ථාවකම උපදෙස් 3-4 ක් ක්‍රියාත්මක වේ. ආරම්භක සහ අහඹු අගය උත්පාදන අදියර ධාවනය කිරීම අවශ්ය නොවේ.

මුරපොල යෝජිත Safe-Linking ආරක්ෂණ තාක්‍ෂණය, දුර්වලතා ගසාකෑම වඩාත් අපහසු කරයි

Safe-Linking විවිධ ගොඩවල් ක්‍රියාත්මක කිරීම් වල ආරක්‍ෂාව වැඩි දියුණු කිරීමට පමණක් නොව, බෆර අසලම තබා ඇති තනි සම්බන්ධිත පොයින්ටර් ලැයිස්තු භාවිතා කරන ඕනෑම දත්ත ව්‍යුහයකට අඛණ්ඩතා පාලනයක් එක් කිරීමටද භාවිතා කළ හැක. ක්‍රමය ක්‍රියාත්මක කිරීමට ඉතා සරල වන අතර අවශ්‍ය වන්නේ එක් මැක්‍රෝ එකක් එකතු කර එය කේතයේ ඊළඟ කොටසට පොයින්ටර්වලට යෙදීම පමණි (උදාහරණයක් ලෙස, Glibc සඳහා වෙනස් වෙනවා කේතයේ පේළි කිහිපයක් පමණි). ක්‍රමය පහත සඳහන් වෙනස්කම් දක්වා පහත වැටේ:

+#PROTECT_PTR(pos, ptr) \ අර්ථ දක්වන්න
+ ((__typeof (ptr)) (((((size_t) pos) >> 12) ^ ((size_t) ptr)))

+# REVEAL_PTR(ptr) PROTECT_PTR (&ptr, ptr) අර්ථ දක්වන්න

- nextp = p->fd;
+ nextp = REVEAL_PTR (p->fd);
...

ක්‍රමයේ සාරය නම් Fast-Bins සහ TCache වැනි තනි සම්බන්ධිත ලැයිස්තු ආරක්ෂා කිරීම සඳහා ASLR ලිපින සසම්භාවීකරණ යාන්ත්‍රණයෙන් (mmap_base) අහඹු දත්ත භාවිතා කිරීමයි. අගය ලැයිස්තුවේ ඊළඟ මූලද්‍රව්‍ය වෙත දර්ශකයක් වෙත යෙදීමට පෙර, එය ආවරණ පරිවර්තනයක් සිදු කර පිටු පෙළගැස්ම සඳහා පරීක්ෂා කරයි. පොයින්ටරය "(L >> PAGE_SHIFT) XOR (P)" මෙහෙයුමේ ප්‍රතිඵලය මගින් ප්‍රතිස්ථාපනය වේ, එහිදී P යනු දර්ශකයේ අගය වන අතර L යනු දර්ශකය ගබඩා කර ඇති මතක ස්ථානයයි.

මුරපොල යෝජිත Safe-Linking ආරක්ෂණ තාක්‍ෂණය, දුර්වලතා ගසාකෑම වඩාත් අපහසු කරයි

පද්ධතියේ භාවිතා කරන විට ASLR (ලිපින අභ්‍යවකාශ පිරිසැලසුම සසම්භාවීකරණය) ගොඩ පාදක ලිපිනය සහිත L බිටු වල කොටසක P කේතනය කිරීමට යතුරක් ලෙස භාවිතා කරන අහඹු අගයන් අඩංගු වේ (12-බයිට් පිටු සඳහා 4096-බිට් මාරු මෙහෙයුමකින් උපුටා ගන්නා ලදී). මෙම උපාමාරු කිරීම සූරාකෑමකදී පොයින්ටර් පැහැරගැනීමේ අවදානම අඩු කරයි, මන්ද දර්ශකය එහි මුල් ස්වරූපයෙන් ගබඩා කර නැති අතර එය ප්‍රතිස්ථාපනය කිරීමට ගොඩ වෙන් කිරීම පිළිබඳ දැනුම අවශ්‍ය වේ. ඊට අමතරව, පැච් කේතයේ වාරණ පෙළගැස්ම සඳහා අමතර චෙක්පතක් ද අඩංගු වේ, එමඟින් ප්‍රහාරකයෙකුට නොගැලපෙන අගයක් සමඟ පොයින්ටරයක් ​​ප්‍රතිස්ථාපනය කිරීමට ඉඩ නොදෙන අතර පෙළගැසී ඇති බිටු ගණන පිළිබඳ දැනුමක් අවශ්‍ය වේ, එය 64-bit පද්ධතිවල අතිරේකව අවහිර කිරීමට ඉඩ සලසයි. පෙළගැස්ම සැලකිල්ලට නොගන්නා ප්රහාරක උත්සාහයන් 15 න් 16 ක්.

අර්ධ පොයින්ටර් නැවත ලිවීම (අඩු බයිට් වෙනස් කිරීම), සම්පූර්ණ පොයින්ටර් නැවත ලිවීම (ප්‍රහාරකයාගේ කේතය වෙත යළි-යොමු කිරීම) සහ නොගැලපෙන ලිපිනයක ලැයිස්තුවේ පිහිටීම වෙනස් කිරීම භාවිතා කරන ප්‍රහාරවලින් ආරක්ෂා වීමට ක්‍රමය ඵලදායී වේ. උදාහරණයක් ලෙස, malloc හි Safe-Linking භාවිතය මෑතකදී සූරාකෑම අවහිර කිරීමට ඉඩ සලසන බව පෙන්වා ඇත. හඳුනාගෙන ඇත එම අවදානම් පර්යේෂකයන් විසිනි CVE-2020-6007 Philips Hue Bridge ස්මාර්ට් ආලෝකය තුළ, බෆරය පිටාර ගැලීම නිසා ඇති වූ අතර ඔබට උපාංගයේ පාලනය ලබා ගැනීමට ඉඩ සලසයි.

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

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