ගූගල් බ්‍රවුසරයේ ජාවාස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම හරහා ස්පෙක්ටර් දුර්වලතා සූරාකෑම පෙන්නුම් කළේය

කලින් එකතු කරන ලද ආරක්ෂණ ක්‍රම මඟහරිමින්, බ්‍රවුසරයේ ජාවාස්ක්‍රිප්ට් කේතය ක්‍රියාත්මක කිරීමේදී ස්පෙක්ටර් පන්තියේ දුර්වලතා ගසාකෑමේ හැකියාව පෙන්වන සූරාකෑමේ මූලාකෘති කිහිපයක් Google විසින් ප්‍රකාශයට පත් කර ඇත. වත්මන් පටිත්තෙහි වෙබ් අන්තර්ගතය සැකසීමේ ක්‍රියාවලියේ මතකයට ප්‍රවේශය ලබා ගැනීමට සූරාකෑම් භාවිතා කළ හැක. සූරාකෑමේ ක්‍රියාකාරිත්වය පරීක්ෂා කිරීම සඳහා, leaky.page වෙබ් අඩවිය දියත් කරන ලද අතර, කාර්යයේ තර්කනය විස්තර කරන කේතය GitHub හි පළ කරන ලදී.

යෝජිත මූලාකෘතිය Linux සහ Chrome 7 සහිත පරිසරයක Intel Core i6500-88U ප්‍රොසෙසර සහිත පද්ධතිවලට පහර දීමට සැලසුම් කර ඇත. වෙනත් පරිසරයන් සඳහා සූරාකෑම භාවිතා කිරීමට, වෙනස් කිරීම් අවශ්‍ය වේ. සූරාකෑමේ ක්‍රමය Intel ප්‍රොසෙසර සඳහා විශේෂිත නොවේ - සුදුසු අනුවර්තනයකින් පසුව, ARM ගෘහ නිර්මාණ ශිල්පය මත පදනම් වූ Apple M1 ඇතුළු අනෙකුත් නිෂ්පාදකයින්ගේ CPU සමඟ පද්ධති මත ක්‍රියා කරන බව සූරාකෑම තහවුරු කරන ලදී. සුළු ගැලපීම් වලින් පසුව, සූරාකෑම වෙනත් මෙහෙයුම් පද්ධතිවල සහ Chromium එන්ජිම මත පදනම් වූ වෙනත් බ්‍රව්සර්වලද ක්‍රියා කළ හැකිය.

සම්මත ක්‍රෝම් 88 සහ ඉන්ටෙල් ස්කයිලේක් ප්‍රොසෙසර මත පදනම් වූ පරිසරයක් තුළ, තත්පරයට කිලෝබයිට් 1 ක වේගයෙන් වත්මන් ක්‍රෝම් ටැබ් (රෙන්ඩරර් ක්‍රියාවලිය) තුළ වෙබ් අන්තර්ගතය සැකසීම සඳහා වගකිව යුතු ක්‍රියාවලියෙන් දත්ත කාන්දු කිරීමට හැකි විය. මීට අමතරව, විකල්ප මූලාකෘති සංවර්ධනය කර ඇත, උදාහරණයක් ලෙස, ස්ථායීතාවය අඩු කිරීමේ වියදමින්, ක්ෂුද්‍ර තත්පර 8 (මිලි තත්පර 5) නිරවද්‍යතාවයකින් Performance.now() ටයිමරය භාවිතා කරන විට කාන්දු වීමේ වේගය 0.005kB/s දක්වා වැඩි කිරීමට ඉඩ සලසන සූරාකෑමක්. ) තත්පරයකට බයිට් 60 ක පමණ වේගයකින් වෙනත් ක්‍රියාවලියක මතකයට ප්‍රවේශය සංවිධානය කිරීමට භාවිතා කළ හැකි මිලි තත්පරයක කාල ගණක නිරවද්‍යතාවයකින් ක්‍රියා කළ හැකි අනුවාදයක් ද සකස් කරන ලදී.

ප්‍රකාශිත ආදර්ශන කේතය කොටස් තුනකින් සමන්විත වේ. CPU උපදෙස් සමපේක්ෂන ලෙස ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලයක් ලෙස ප්‍රොසෙසර හැඹිලියේ ඉතිරිව ඇති දත්ත ප්‍රතිසාධනය කිරීමට අවශ්‍ය මෙහෙයුම් ක්‍රියාත්මක කිරීමේ කාලය තක්සේරු කිරීම සඳහා පළමු කොටස ටයිමරය ක්‍රමාංකනය කරයි. දෙවන කොටස JavaScript අරාව වෙන් කිරීමේදී භාවිතා කරන මතක පිරිසැලසුම තීරණය කරයි.

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

යෝජිත සූරාකෑමේ තාක්‍ෂණය මඟින් කාර්ය සාධනය.now() API හරහා ලබා ගත හැකි ඉහළ-නිරවද්‍ය ටයිමර නොමැතිව සහ හවුල් මතකයේ අරා සෑදීමට ඉඩ සලසන SharedArrayBuffer වර්ගය සඳහා සහය නොමැතිව කිරීමට හැකි වේ. සූරාකෑමට කේත පාලිත සමපේක්ෂන ක්‍රියාත්මක කිරීමට හේතු වන ස්පෙක්ටර් ගැජටය සහ සමපේක්ෂන ක්‍රියාත්මක කිරීමේදී ලබාගත් හැඹිලිගත දත්ත හඳුනා ගන්නා පැති-නාලිකා කාන්දු විශ්ලේෂකය ඇතුළත් වේ.

මෙම ගැජටය ක්‍රියාත්මක කරනු ලබන්නේ JavaScript අරාවක් භාවිතයෙන් වන අතර එහි බෆරයේ මායිමෙන් පිටත ප්‍රදේශයකට ප්‍රවේශ වීමට උත්සාහ කරන අතර, සම්පාදකය (ප්‍රොසෙසරය, ඉදිරිය බලා, සමපේක්ෂන ලෙස ප්‍රවේශය සිදු කරයි, නමුත් පරීක්ෂා කිරීමෙන් පසු තත්වය ආපසු හරවයි). ප්‍රමාණවත් නොවන ටයිමර නිරවද්‍යතාවයේ කොන්දේසි යටතේ හැඹිලියේ අන්තර්ගතය විශ්ලේෂණය කිරීම සඳහා, ප්‍රොසෙසරවල භාවිතා වන Tree-PLRU හැඹිලි ඉවත් කිරීමේ උපාය මාර්ගය රැවටෙන ක්‍රමයක් යෝජනා කර ඇති අතර, චක්‍ර ගණන වැඩි කිරීමෙන්, ආපසු එන විට කාල වෙනස සැලකිය යුතු ලෙස වැඩි කිරීමට ඉඩ සලසයි. හැඹිලියෙන් අගයක් සහ හැඹිලියේ අගයක් නොමැති විට.

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

අවදානම අවම කිරීම සඳහා, අඩවි හිමිකරුවන් විසින් මෑතකදී ක්‍රියාත්මක කරන ලද Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (COP), Fetch Metadata Request, X-Frame- භාවිතා කිරීමට දිරිමත් කරනු ලැබේ. විකල්ප, X -අන්තර්ගත-වර්ගය-විකල්ප සහ SameSite කුකී. මෙම යාන්ත්‍රණ ප්‍රහාර වලින් සෘජුව ආරක්ෂා නොවේ, නමුත් ප්‍රහාරකයාගේ ජාවාස්ක්‍රිප්ට් කේතය ක්‍රියාත්මක කළ හැකි ක්‍රියාවලි වලට අඩවි දත්ත කාන්දු වීමෙන් හුදකලා කිරීමට ඒවා ඔබට ඉඩ සලසයි ( කාන්දු වීම සිදු වන්නේ වත්මන් ක්‍රියාවලියේ මතකයෙන්, ප්‍රහාරකයාගේ කේතයට අමතරව , එම පටිත්තෙහි විවෘත කර ඇති වෙනත් වෙබ් අඩවියකින් දත්ත සැකසීමටද හැකිය). ප්‍රධාන අදහස නම්, විවිධ ක්‍රියාවලීන්හි අඩවි කේතය ක්‍රියාත්මක කිරීම විශ්වාස කළ නොහැකි මූලාශ්‍රවලින් ලැබුණු තෙවන පාර්ශවීය කේතයෙන් වෙන් කිරීමයි, උදාහරණයක් ලෙස, iframe හරහා ඇතුළත් වේ.



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

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