හුදකලා පරිසරයක් නිර්මාණය කිරීම සඳහා ස්ථරයක් වන Bubblewrap 0.6 මුදා හැරීම

හුදකලා පරිසරයක වැඩ සංවිධානය කිරීම සඳහා මෙවලම් නිකුත් කිරීමක් Bubblewrap 0.6 ලබා ගත හැකි අතර, සාමාන්‍යයෙන් වරප්‍රසාද ලත් පරිශීලකයින්ගේ තනි යෙදුම් සීමා කිරීමට භාවිතා කරයි. ප්‍රායෝගිකව, Bubblewrap Flatpak ව්‍යාපෘතිය මගින් පැකේජ වලින් දියත් කරන ලද යෙදුම් හුදකලා කිරීමට ස්ථරයක් ලෙස භාවිතා කරයි. ව්‍යාපෘති කේතය C වලින් ලියා ඇති අතර LGPLv2+ බලපත්‍රය යටතේ බෙදා හරිනු ලැබේ.

හුදකලා කිරීම සඳහා, cgroups, namespaces, Seccomp සහ SELinux භාවිතය මත පදනම්ව සම්ප්‍රදායික Linux බහාලුම් අථත්‍යකරණ තාක්ෂණයන් භාවිතා වේ. බහාලුමක් වින්‍යාස කිරීම සඳහා වරප්‍රසාදිත මෙහෙයුම් සිදු කිරීම සඳහා, Bubblewrap මූල අයිතිවාසිකම් සමඟ දියත් කරනු ලැබේ (suid ධජයක් සහිත ක්‍රියාත්මක කළ හැකි ගොනුවක්) ඉන්පසු බහාලුම ආරම්භ කිරීමෙන් පසු වරප්‍රසාද යළි සකසයි.

බොහෝ බෙදාහැරීම්වල පෙරනිමියෙන් ක්‍රියා නොකරන බැවින්, බහාලුම්වල ඔබේම වෙනම හඳුනාගැනීම් කට්ටලයක් භාවිතා කිරීමට ඉඩ සලසන නාම අවකාශ පද්ධතියේ පරිශීලක නාම අවකාශයන් ක්‍රියාත්මක කිරීම ක්‍රියාත්මක කිරීම සඳහා අවශ්‍ය නොවේ (Bubblewrap සීමිත suid ක්රියාත්මක කිරීමක් ලෙස ස්ථානගත කර ඇත. පරිශීලක නාම අවකාශ හැකියාවන්ගේ උප කුලකය - දැනට පවතින එක හැර, සියලුම පරිශීලක සහ ක්‍රියාවලි හඳුනාගැනීම් පරිසරයෙන් බැහැර කිරීමට, CLONE_NEWUSER සහ CLONE_NEWPID මාතයන් භාවිතා වේ). අමතර ආරක්ෂාවක් සඳහා, Bubblewrap යටතේ ක්‍රියාත්මක කරන ලද වැඩසටහන් PR_SET_NO_NEW_PRIVS ආකාරයෙන් දියත් කරනු ලැබේ, එය නව වරප්‍රසාද ලබා ගැනීම තහනම් කරයි, උදාහරණයක් ලෙස, setuid ධජය තිබේ නම්.

ගොනු පද්ධති මට්ටමින් හුදකලා කිරීම සිදු කරනු ලබන්නේ පෙරනිමියෙන් නව මවුන්ට් නාම අවකාශයක් නිර්මාණය කිරීමෙනි, එහිදී tmpfs භාවිතයෙන් හිස් මූල කොටසක් සාදනු ලැබේ. අවශ්‍ය නම්, බාහිර FS කොටස් මෙම කොටසට “mount —bind” ආකාරයෙන් අමුණා ඇත (උදාහරණයක් ලෙස, “bwrap —ro-bind /usr /usr” විකල්පය සමඟ දියත් කළ විට, /usr කොටස ප්‍රධාන පද්ධතියෙන් ඉදිරියට යවනු ලැබේ. කියවීමට පමණක් මාදිලියේ). ජාල හැකියාවන් CLONE_NEWNET සහ CLONE_NEWUTS ධජ හරහා ජාල අට්ටි හුදකලා සමග loopback අතුරුමුහුණත වෙත ප්‍රවේශ වීමට සීමා වේ.

Setuid දියත් කිරීමේ ආකෘතිය භාවිතා කරන සමාන Firejail ව්‍යාපෘතියේ ඇති ප්‍රධාන වෙනස නම්, Bubblewrap හි බහාලුම් නිර්මාණය කිරීමේ ස්ථරයට අවශ්‍ය අවම හැකියාවන් පමණක් ඇතුළත් වන අතර චිත්‍රක යෙදුම් ධාවනය කිරීමට, ඩෙස්ක්ටොප් සමඟ අන්තර් ක්‍රියා කිරීමට සහ ඉල්ලීම් පෙරීමට අවශ්‍ය සියලුම උසස් කාර්යයන් ඇතුළත් වේ. Pulseaudio වෙත, Flatpak පැත්තට මාරු කර වරප්‍රසාද යළි පිහිටුවීමෙන් පසුව ක්‍රියාත්මක වේ. අනෙක් අතට, Firejail, එක් ක්‍රියාත්මක කළ හැකි ගොනුවක් තුළ අදාළ සියලුම කාර්යයන් ඒකාබද්ධ කරයි, එමඟින් විගණනය කිරීම සහ නිසි මට්ටමින් ආරක්ෂාව පවත්වා ගැනීම අපහසු වේ.

නව නිකුතුවේ:

  • Meson එකලස් කිරීමේ පද්ධතිය සඳහා සහය එක් කරන ලදී. Autotools සමඟ ගොඩනැගීම සඳහා සහය දැනට රඳවාගෙන ඇති නමුත්, අනාගත නිකුතුවකදී ඉවත් කරනු ඇත.
  • seccomp වැඩසටහන් එකකට වඩා එක් කිරීමට "--add-seccomp" විකල්පය ක්‍රියාත්මක කරන ලදී. ඔබ නැවතත් "--seccomp" විකල්පය සඳහන් කළහොත්, අවසාන පරාමිතිය පමණක් යෙදෙන බවට අනතුරු ඇඟවීමක් එක් කරන ලදී.
  • git repository එකේ Master ශාඛාව main ලෙස නම් කර ඇත.
  • බලපත්‍ර සහ ප්‍රකාශන හිමිකම් තොරතුරු සඳහන් කිරීමේ ක්‍රියාවලිය ඒකාබද්ධ කරන REUSE පිරිවිතර සඳහා අර්ධ සහාය එක් කරන ලදී. බොහෝ කේත ගොනු SPDX-License-Identifier ශීර්ෂ එකතු කර ඇත. REUSE මාර්ගෝපදේශ අනුගමනය කිරීමෙන් යෙදුම් කේතයේ කුමන කොටස්වලට අදාළ වන්නේ කුමන බලපත්‍රයද යන්න ස්වයංක්‍රීයව තීරණය කිරීම පහසු කරයි.
  • විධාන රේඛා තර්ක කවුන්ටරයේ (argc) අගය පරීක්ෂා කිරීම එකතු කරන ලද අතර කවුන්ටරය ශුන්‍ය නම් හදිසි පිටවීමක් ක්‍රියාත්මක කරන ලදී. Polkit හි CVE-2021-4034 වැනි සම්මත වූ විධාන රේඛා තර්ක වැරදි ලෙස හැසිරවීම නිසා ඇති වන ආරක්ෂක ගැටළු අවහිර කිරීමට මෙම වෙනස උපකාරී වේ.

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

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