Chromium හි ආරක්ෂක ගැටළු වලින් 70% ක් මතක දෝෂ නිසා ඇති වේ

Chromium ව්‍යාපෘතියේ සංවර්ධකයින් විශ්ලේෂණය කළා 912 සිට ක්‍රෝම් හි ස්ථායී නිකුතු වලදී අධි අවදානම් සහ තීරණාත්මක දුර්වලතා 2015 ක් හඳුනාගෙන ඇති අතර, ඒවායින් 70% ක්ම මතක අනාරක්ෂිත බව (C/C++ කේතයේ පොයින්ටර් සමඟ වැඩ කිරීමේදී දෝෂ) ඇති වූ බව නිගමනය කළේය. මෙම ගැටළු වලින් අඩක් (36.1%) ඇති වන්නේ බෆරය හා සම්බන්ධ මතකය නිදහස් කිරීමෙන් පසු එයට ප්‍රවේශ වීම (භාවිතයෙන් පසු-නිදහස්) හේතුවෙනි.

Chromium හි ආරක්ෂක ගැටළු වලින් 70% ක් මතක දෝෂ නිසා ඇති වේ

Chromium නිර්මාණය කිරීමේදී එය මුලින් විය දමා ඇත, කේතයේ දෝෂ දර්ශනය විය හැකි බව, එබැවින් අවදානම් වල ප්‍රතිවිපාක සීමා කිරීම සඳහා වැලිපිල්ල හුදකලා කිරීම භාවිතා කිරීම කෙරෙහි විශාල අවධානයක් යොමු කරන ලදී. වර්තමානයේ, මෙම තාක්ෂණය භාවිතා කිරීමේ හැකියාව ඔවුන්ගේ හැකියාවන්ගේ සීමාවට ළඟා වී ඇති අතර සම්පත් පරිභෝජනයේ දෘෂ්ටි කෝණයෙන් ක්රියාවලි වලට තවදුරටත් ඛණ්ඩනය කිරීම ප්රායෝගික නොවේ.

කේත පදනමේ ආරක්ෂාව පවත්වා ගැනීම සඳහා, Google විසින් "දෙකේ රීතිය“, ඒ අනුව ඕනෑම එකතු කළ කේතයක් කොන්දේසි තුනෙන් දෙකකට වඩා සපුරාලිය යුතු නොවේ: වලංගු නොවන ආදාන දත්ත සමඟ වැඩ කිරීම, අනාරක්ෂිත ක්‍රමලේඛන භාෂාවක් (C/C++) භාවිතා කිරීම සහ ඉහළ වරප්‍රසාද සහිතව ධාවනය කිරීම. මෙම රීතියෙන් ඇඟවෙන්නේ බාහිර දත්ත සැකසීම සඳහා කේතය අවම වරප්‍රසාද (හුදකලා) දක්වා අඩු කළ යුතු බව හෝ ආරක්ෂිත ක්‍රමලේඛන භාෂාවකින් ලිවිය යුතු බවයි.

කේත පදනමේ ආරක්ෂාව තවදුරටත් වැඩිදියුණු කිරීම සඳහා, කේත පදනමේ මතක දෝෂ ඇතිවීම වැළැක්වීම සඳහා ව්‍යාපෘතියක් දියත් කර ඇත. ප්‍රධාන ප්‍රවේශයන් තුනක් ඇත: මතකය ආරක්ෂිතව ක්‍රියාත්මක කිරීම සඳහා කාර්යයන් සහිත C++ පුස්තකාල නිර්මාණය කිරීම සහ දෘඩාංග ආරක්ෂණ යාන්ත්‍රණ භාවිතා කරමින් කසළ එකතු කරන්නාගේ විෂය පථය පුළුල් කිරීම. MTE (Memory Tagging Extension) සහ මතකය (Java, Kotlin, JavaScript, Rust, Swift) සමඟ ආරක්ෂිතව වැඩ කිරීම සහතික කරන භාෂාවලින් ලිවීමේ සංරචක.

ක්ෂේත්‍ර දෙකක් කෙරෙහි අවධානය යොමු කිරීමට අපේක්ෂා කෙරේ:

  • C++ සංවර්ධන ක්‍රියාවලියට සැලකිය යුතු වෙනසක්, කාර්ය සාධනය කෙරෙහි ඍණාත්මක බලපෑමක් බැහැර නොකරයි (අතිරේක සීමාවන් පරීක්ෂා කිරීම සහ කසළ එකතු කිරීම). අමු පොයින්ටර් වෙනුවට, වර්ගය භාවිතා කිරීමට යෝජනා කෙරේ MiraclePtr, කාර්ය සාධනය, මතක පරිභෝජනය සහ ස්ථාවරත්වය කෙරෙහි සැලකිය යුතු සෘණාත්මක බලපෑමක් නොමැතිව, ආරක්ෂක තර්ජනයක් නොවන බිඳවැටීම් වලට සූරාකෑමට ලක්විය හැකි භාවිතයෙන් පසු-නිදහස් දෝෂ අඩු කිරීමට ඔබට ඉඩ සලසයි.
  • සම්පාදනය කරන අවස්ථාවේදී මතක ආරක්ෂණ පරීක්ෂාවන් සිදු කිරීම සඳහා නිර්මාණය කර ඇති භාෂා භාවිතය (කේත ක්‍රියාත්මක කිරීමේදී එවැනි චෙක්පත් වල ආවේනික කාර්ය සාධනය කෙරෙහි ඇති ඍණාත්මක බලපෑම ඉවත් කරනු ඇත, නමුත් කේතය සමඟ නව භාෂාවකින් කේත අන්තර්ක්‍රියා සංවිධානය කිරීම සඳහා අමතර වියදම් වලට තුඩු දෙනු ඇත. C++).

මතකය ආරක්ෂිත පුස්තකාල භාවිතා කිරීම සරලම, නමුත් අඩු කාර්යක්ෂම ක්රමයකි. රස්ට් හි නැවත ලිවීමේ කේතය වඩාත් ඵලදායී, නමුත් ඉතා මිල අධික ක්රමයක් ලෙස ශ්රේණිගත කර ඇත.

Chromium හි ආරක්ෂක ගැටළු වලින් 70% ක් මතක දෝෂ නිසා ඇති වේ

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

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