SWAPGS - CPU සමපේක්ෂන ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණයේ නව අවදානමක්

Bitdefender වෙතින් පර්යේෂකයන් හඳුනාගෙන ඇත නව අවදානම් (CVE-2019-1125) නවීන CPU වල සමපේක්ෂන උපදෙස් ක්‍රියාත්මක කිරීමේ යාන්ත්‍රණයේ, එය SWAPGS ලෙස නම් කර ඇත, එය ගැටළුව ඇති කරන ප්‍රොසෙසර උපදෙස් වල නමට අනුරූප වේ. අවදානම එය ඉඩ වරප්‍රසාද ලත් ප්‍රහාරකයෙකුට කර්නල් මතක ප්‍රදේශ වල අන්තර්ගතය තීරණය කිරීමට හෝ අථත්‍ය යන්ත්‍ර ධාවනය කිරීමට ඉඩ දෙන්න. ගැටලුව තහවුරු කර ඇත Intel ප්‍රොසෙසරවල (x86_64) සහ අර්ධ වශයෙන් බලපානවා ප්‍රධාන ප්‍රහාරක දෛශිකය නොපෙනෙන AMD ප්‍රොසෙසර. Intel ප්‍රොසෙසර භාවිතා කරන විට SWAPGS ප්‍රහාරයෙන් Specter සහ Meltdown දුර්වලතා වලට ප්‍රතිරෝධය දැක්වීම සඳහා කලින් ක්‍රියාත්මක කරන ලද ක්‍රම, නමුත් Linux, ChromeOS, Android සහ Windows සඳහා නිවැරදි කිරීම් දැනටමත් යෝජනා කර ඇත.

අවදානම Spectre v1 පන්තියට අයත් වන අතර උපදෙස් සමපේක්ෂන ලෙස ක්‍රියාත්මක කිරීමෙන් පසු ඉතිරිව ඇති ප්‍රොසෙසර් හැඹිලියෙන් දත්ත ප්‍රතිසාධනය කිරීමේ අදහස මත පදනම් වේ. කාර්ය සාධනය වැඩි දියුණු කිරීම සඳහා, නවීන CPU වල ශාඛා පුරෝකථන ඒකක ක්‍රියාත්මක කිරීමට බොහෝ දුරට ඉඩ ඇති සමහර උපදෙස් පූර්වගාමීව ක්‍රියාත්මක කිරීම භාවිතා කරයි, නමුත් ඒවා ක්‍රියාත්මක කිරීම තීරණය කරන සියලුම සාධක ගණනය කිරීම බලා නොසිට (උදාහරණයක් ලෙස, ශාඛා කොන්දේසි හෝ ප්‍රවේශ පරාමිතීන් නොමැති විට. තවමත් ගණනය කර ඇත). පුරෝකථනය තහවුරු කර නොමැති නම්, ප්‍රොසෙසරය සමපේක්ෂන ක්‍රියාත්මක කිරීමේ ප්‍රති result ලය ඉවතලයි, නමුත් එය තුළ සැකසූ දත්ත ප්‍රොසෙසර හැඹිලියේ පවතින අතර ප්‍රවේශයේ වෙනස විශ්ලේෂණය කරමින් පැති නාලිකා හරහා හැඹිලියේ අන්තර්ගතය තීරණය කිරීමේ ක්‍රම භාවිතා කර ප්‍රතිසාධනය කළ හැකිය. හැඹිලිගත සහ ගබඩා නොකළ දත්ත සඳහා කාලය.

නව ප්‍රහාරයේ විශේෂත්වය වන්නේ SWAPGS උපදෙස සමපේක්‍ෂව ක්‍රියාත්මක කිරීමේදී සිදුවන කාන්දුවක් භාවිතා කිරීමයි, එය මෙහෙයුම් පද්ධතිවල භාවිතා කරන GS ලේඛනයේ අගය පරිශීලක අවකාශයේ සිට OS කර්නලයට (GS) මාරු වන විට භාවිතා කරයි. පරිශීලක අවකාශයේ භාවිතා වන අගය කර්නලයේ මෙහෙයුම් අතරතුර භාවිතා කරන අගය සමඟ ප්‍රතිස්ථාපනය වේ ). Linux කර්නලය තුළ, GS විසින් කර්නල් දත්ත වෙත ප්‍රවේශ වීමට භාවිතා කරන per_cpu පොයින්ටරයක් ​​ගබඩා කරයි, සහ පරිශීලක අවකාශය TLS (Thread Local Storage) වෙත පොයින්ටර් ගබඩා කරයි.

කර්නල් අවකාශයෙන් නැවත කර්නලයට ප්‍රවේශ වීමේදී හෝ GS රෙජිස්ටර් වෙනසක් අවශ්‍ය නොවන කේතය ක්‍රියාත්මක කිරීමේදී SWAPGS උපදෙස් දෙවරක් ඇමතීමෙන් වැළකීම සඳහා, උපදෙස් වලට පෙර චෙක්පතක් සහ කොන්දේසි සහිත ශාඛාවක් සිදු කරනු ලැබේ. සමපේක්ෂන ක්‍රියාත්මක කිරීමේ එන්ජිම චෙක්පතේ ප්‍රතිඵලය එනතෙක් බලා නොසිට SWAPGS උපදෙස් සමඟින් කේතය ක්‍රියාත්මක කිරීමට ප්‍රථමයෙන් ක්‍රියාත්මක වන අතර තෝරාගත් ශාඛාව තහවුරු නොකළහොත් ප්‍රතිඵලය ඉවත දමයි. මේ අනුව, SWAPGS ක්‍රියාත්මක කිරීම සම්බන්ධ නොවන ශාඛාවක් සමපේක්ෂන ලෙස තෝරාගත් විට තත්වයක් ඇති විය හැක, නමුත් සමපේක්ෂන ක්‍රියාත්මක කිරීමේදී GS ලේඛනයේ අගය SWAPGS උපදෙස් මගින් වෙනස් කර CPU හැඹිලියේ අවසන් වන පරායත්ත මතක ක්‍රියාවන්හිදී භාවිතා වේ.

පර්යේෂකයන් විසින් සූරාකෑමේ මූලාකෘති සකස් කර ඇති ප්‍රහාර අවස්ථා දෙකක් යෝජනා කර ඇත. පළමු අවස්ථාව පදනම් වී ඇත්තේ SWAPGS උපදෙස් ක්‍රියාත්මක කිරීමේදී එය සැබවින්ම භාවිතා කළද එය සමපේක්ෂන ලෙස ක්‍රියාත්මක නොවන තත්ත්වය මත වන අතර දෙවැන්න SWAPGS උපදෙස සමපේක්ෂන ලෙස ක්‍රියාත්මක කරන විට ප්‍රතිවිරුද්ධයයි, නමුත් එය ඇත්ත වශයෙන්ම ක්‍රියාත්මක නොකළ යුතුය. එක් එක් අවස්ථාව සඳහා, සූරාකෑම සඳහා විකල්ප දෙකක් තිබේ: ප්‍රහාරකයාට කර්නල් ප්‍රදේශයේ නිශ්චිත ලිපිනයක අගය තීරණය කළ හැකි අතර, ප්‍රහාරකයාට කර්නලයේ අහඹු ලිපිනවලදී නිශ්චිත අගයක් සෙවිය හැකිය. ප්රහාරයක් සිදු කිරීම සඳහා දිගු කාලයක් ගත වන අතර කාන්දු වීම සම්පූර්ණ කිරීමට පැය කිහිපයක් ගත විය හැකිය.

ලිනක්ස් කර්නලයේ ගැටලුවක් තිබේ ඉවත් කළා SWAPGS උපදෙස් ඇමතීමේ තර්කය වෙනස් කිරීමෙන් (සමපේක්ෂන ක්‍රියාත්මක කිරීම අවහිර කිරීම), අනෙකුත් ස්පෙක්ටර් v1 පන්තියේ දුර්වලතා නිවැරදි කිරීමට සමාන වේ. එකතු කරන ලද ආරක්ෂාව සාමාන්‍ය කාර්ය භාරයේ කාර්ය සාධනය කෙරෙහි අවම බලපෑමක් ඇති කරනු ඇතැයි අපේක්ෂා කෙරේ. පරිශීලක සහ කර්නල් අවකාශය අතර මාරු වීමේ අදියරේදී ප්‍රමාදය සිදුවේ, උදාහරණයක් ලෙස, යෙදුමෙන් අධික පද්ධති ඇමතුම් හෝ NMIs නිතර උත්පාදනය වන විට සහ බාධා කිරීම් දුර්වල ක්‍රියාකාරිත්වයට හේතු විය හැක.

නිවැරදි කිරීම සඳහා ධාරක පද්ධතිය සහ ආගන්තුක පරිසරය යන දෙකෙහිම කර්නල් යාවත්කාලීනයක් ස්ථාපනය කිරීම අවශ්‍ය වේ, ඉන්පසු පද්ධතිය නැවත ආරම්භ කිරීම. Linux හි ආරක්ෂාව අක්‍රිය කිරීමට, "nospectre_v1" විකල්පය භාවිතා කළ හැක, එය SWAPGS අවදානම අවහිර කිරීමට පියවර ද අබල කරයි. නිවැරදි කිරීම ලෙස ලබා ගත හැකිය පැච් ලිනක්ස් කර්නලය සඳහා, එය දැනටමත් නිකුතුවල ඇතුළත් කර ඇත 4.19.65, 5.2.7, 4.14.137, 4.9.188 සහ 4.4.188. ලිනක්ස් බෙදාහැරීම් සඳහා යාවත්කාලීන තවමත් නිකුත් කර නොමැත (ඩේබියන්, රාල්, Fedora, ආෆ්ට් ලිනක්ස්, SUSE/openSUSE, උබුන්ටු) වින්ඩෝස් හි, ගැටළුව නිහඬව විසඳා ඇත ජූලි යාවත්කාලීන කිරීම. ගූගල් සමාගම සකස් කර ඇත ChromeOS සමඟ නැව්ගත කර ඇති කර්නල් 4.19 සඳහා නිවැරදි කරන්න සහ ඇන්ඩ්රොයිඩ්.

Bitdefender හි පර්යේෂකයන්ට අනුව, Intel හට ගැටලුව පිළිබඳව පසුගිය වසරේ අගෝස්තු මාසයේදී දැනුම් දෙන ලදී. මයික්‍රොසොෆ්ට්, ගූගල් සහ ලිනක්ස් කර්නලයේ සංවර්ධකයින් නිවැරදි කිරීමක සම්බන්ධීකරණ සංවර්ධනයට සම්බන්ධ වූ ගැටළුව ක්‍රමලේඛනගතව විසඳීමට තීරණය කරන ලදී. පැරණි Intel ප්‍රොසෙසර, pre-Ivy Bridge, සූරාකෑමේදී භාවිතා කරන WRGSBASE උපදෙස් සඳහා සහය නොමැතිකම හේතුවෙන් ප්‍රහාර එල්ල කිරීම වඩාත් අපහසු වේ. ARM, POWER, SPARC, MIPS, සහ RISC-V පද්ධති SWAPGS උපදෙස් සඳහා සහය නොදක්වන නිසා ගැටලුවට බලපාන්නේ නැත.

ගැටළුව ප්‍රධාන වශයෙන් බලපාන්නේ ඉන්ටෙල් ප්‍රොසෙසර හිමිකරුවන්ට -
AMD පද්ධති මත, දෙවන ප්‍රහාරක දර්ශනය පමණක් ප්‍රතිනිෂ්පාදනය කිරීමට හැකි විය, එය GS ලේඛනයේ මූලික අගය සමපේක්ෂන සැකසීමට සීමා වේ, එය අහඹු මතක ප්‍රදේශ වල නිශ්චිත අගයන් සෙවීමට භාවිතා කළ හැක. මෙම ප්රහාර විකල්පය අවහිර කිරීමට ප්රමාණවත්ය ස්පෙක්ටරයට එරෙහිව පවතින ආරක්ෂණ ක්‍රම v1.

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

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