သီးခြားပတ်ဝန်းကျင်များဖန်တီးရန်အတွက် အလွှာတစ်ခုဖြစ်သည့် Bubblewrap 0.6 ကို ဖြန့်ချိသည်။

သီးခြားပတ်ဝန်းကျင်များလုပ်ဆောင်ရန် ကိရိယာများ ထုတ်ဝေခြင်း Bubblewrap 0.6 ကို ရနိုင်သည်၊ အများအားဖြင့် အခွင့်ထူးမခံသော သုံးစွဲသူများ၏ တစ်ဦးချင်း အပလီကေးရှင်းများကို ကန့်သတ်ရန် အသုံးပြုပါသည်။ လက်တွေ့တွင်၊ Bubblewrap ကို ပက်ကေ့ချ်များမှ စတင်သော အပလီကေးရှင်းများကို ခွဲထုတ်ရန် အလွှာတစ်ခုအနေဖြင့် Flatpak ပရောဂျက်မှ အသုံးပြုပါသည်။ ပရောဂျက်ကုဒ်ကို C ဖြင့်ရေးသားထားပြီး LGPLv2+ လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။

အထီးကျန်မှုအတွက်၊ cgroups၊ namespaces၊ Seccomp နှင့် SELinux ကိုအသုံးပြုမှုအပေါ် အခြေခံ၍ ရိုးရာ Linux container virtualization နည်းပညာများကို အသုံးပြုပါသည်။ ကွန်တိန်နာကို configure လုပ်ရန် အခွင့်ထူးခံ လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် Bubblewrap ကို root လုပ်ပိုင်ခွင့် ( suid အလံပါသော executable ဖိုင်တစ်ခု) ဖြင့် စတင်ပြီး ကွန်တိန်နာကို စတင်ပြီးနောက် အခွင့်ထူးများကို ပြန်လည်သတ်မှတ်ပါ။

ကွန်တိန်နာများတွင် သင့်ကိုယ်ပိုင် သီးခြားသတ်မှတ်သတ်မှတ်မှုအစုအဝေးကို အသုံးပြုခွင့်ပြုသည့် namespace စနစ်တွင် အသုံးပြုသူအမည်နေရာများကို အသက်သွင်းခြင်းသည် လုပ်ဆောင်ချက်အတွက် မလိုအပ်သောကြောင့်၊ ၎င်းသည် ဖြန့်ဝေမှုများစွာတွင် ပုံသေဖြင့် အလုပ်မလုပ်သောကြောင့် (Bubblewrap ကို ကန့်သတ် suid အကောင်အထည်ဖော်မှုတစ်ခုအဖြစ် သတ်မှတ်ထားသည်။ အသုံးပြုသူ namespaces စွမ်းရည်၏ အစုခွဲ - လက်ရှိတစ်ခုမှလွဲ၍ အသုံးပြုသူနှင့် လုပ်ငန်းစဉ်ဆိုင်ရာ ခွဲခြားသတ်မှတ်မှုအားလုံးကို ပတ်ဝန်းကျင်မှ ဖယ်ထုတ်ရန်၊ CLONE_NEWUSER နှင့် CLONE_NEWPID မုဒ်များကို အသုံးပြုသည်)။ ထပ်ဆောင်းကာကွယ်မှုများအတွက်၊ Bubblewrap အောက်တွင် လုပ်ဆောင်ထားသော ပရိုဂရမ်များကို PR_SET_NO_NEW_PRIVS မုဒ်တွင် စတင်လုပ်ဆောင်သည်၊ ဥပမာ၊ setuid အလံရှိနေပါက၊ အထူးအခွင့်အရေးအသစ်များရယူခြင်းကို တားမြစ်ထားသည်။

tmpfs ကို အသုံးပြု၍ အချည်းနှီးသော root partition ကိုဖန်တီးထားသည့် ဖိုင်စနစ်အဆင့်တွင် သီးခြားခွဲထားခြင်းသည် mount namespace အသစ်တစ်ခု ဖန်တီးခြင်းဖြင့် ပြီးမြောက်ပါသည်။ လိုအပ်ပါက၊ ပြင်ပ FS အခန်းကန့်များကို "mount —bind" မုဒ်တွင် ဤအခန်းကန့်သို့ ချိတ်ဆက်ထားပါသည် (ဥပမာ၊ "bwrap —ro-bind /usr /usr" ရွေးချယ်မှုဖြင့် စတင်သောအခါ /usr အပိုင်းကို ပင်မစနစ်မှ တစ်ဆင့်ပေးပို့ပါသည်။ ဖတ်ရန်သာမုဒ်တွင်)။ CLONE_NEWNET နှင့် CLONE_NEWUTS အလံများမှတစ်ဆင့် ကွန်ရက်အစုအဝေးကို သီးခြားခွဲထားခြင်းဖြင့် ကွန်ရက်ချိတ်ဆက်နိုင်စွမ်းကို ကန့်သတ်ထားသည်။

setuid launch model ကိုအသုံးပြုသည့် အလားတူ Firejail ပရောဂျက်၏ အဓိကကွာခြားချက်မှာ Bubblewrap ကွန်တိန်နာဖန်တီးမှုအလွှာတွင် လိုအပ်သော အနိမ့်ဆုံးစွမ်းရည်များသာ ပါဝင်ပြီး ဒက်စ်တော့နှင့် စစ်ထုတ်ခြင်းတောင်းဆိုချက်များကို အပြန်အလှန်တုံ့ပြန်သည့် ဂရပ်ဖစ်အက်ပလီကေးရှင်းများလည်ပတ်ရန်အတွက် လိုအပ်သောအဆင့်မြင့်လုပ်ဆောင်ချက်များ ပါဝင်သည်။ Pulseaudio သို့ Flatpak ဘက်သို့ ပြောင်းရွှေ့ပြီး အခွင့်ထူးများ ပြန်လည်သတ်မှတ်ပြီးနောက် ကွပ်မျက်ခဲ့သည်။ တစ်ဖက်တွင် Firejail သည် ဆက်စပ်လုပ်ဆောင်နိုင်သော လုပ်ဆောင်ချက်အားလုံးကို ဖိုင်တစ်ခုတည်းတွင် ပေါင်းစပ်ထားသောကြောင့် သင့်လျော်သောအဆင့်တွင် စာရင်းစစ်ထိန်းသိမ်းရန် ခက်ခဲစေသည်။

ထုတ်ဝေမှုအသစ်တွင်-

  • Meson စည်းဝေးပွဲစနစ်အတွက် ပံ့ပိုးမှု ထပ်ထည့်ထားသည်။ Autotools ဖြင့် တည်ဆောက်ခြင်းအတွက် ပံ့ပိုးမှုကို ယခုတွင် ဆက်လက်ထိန်းသိမ်းထားသော်လည်း နောင်ထွက်ရှိမှုတွင် ဖယ်ရှားပါမည်။
  • seccomp ပရိုဂရမ်တစ်ခုထက်ပိုထည့်ရန် "--add-seccomp" ရွေးချယ်မှုကို အကောင်အထည်ဖော်ခဲ့သည်။ အကယ်၍ သင်သည် "--seccomp" option ကို ထပ်မံသတ်မှတ်ပါက၊ နောက်ဆုံး ကန့်သတ်ချက်တစ်ခုသာ အသုံးပြုမည် ဖြစ်ကြောင်း သတိပေးချက်တစ်ခု ထပ်ထည့်ထားသည်။
  • git repository ရှိ မာစတာဌာနခွဲကို main သို့ အမည်ပြောင်းထားသည်။
  • လိုင်စင်နှင့် မူပိုင်ခွင့်အချက်အလက်ကို သတ်မှတ်ခြင်းလုပ်ငန်းစဉ်ကို ပေါင်းစည်းစေသည့် REUSE သတ်မှတ်ချက်အတွက် တစ်စိတ်တစ်ပိုင်းပံ့ပိုးမှု ထပ်လောင်းထည့်သွင်းထားသည်။ ကုဒ်ဖိုင်အများအပြားတွင် SPDX-License-Identifier ခေါင်းစီးများကို ထည့်သွင်းထားသည်။ REUSE လမ်းညွှန်ချက်များကို လိုက်နာခြင်းဖြင့် မည်သည့် လိုင်စင်သည် အပလီကေးရှင်းကုဒ်၏ အစိတ်အပိုင်းများနှင့် သက်ဆိုင်သည်ကို အလိုအလျောက် ဆုံးဖြတ်ရန် ပိုမိုလွယ်ကူစေသည်။
  • command line argument counter (argc) ၏တန်ဖိုးကို စစ်ဆေးပြီး ကောင်တာသည် သုညဖြစ်နေပါက အရေးပေါ်ထွက်ပေါက်ကို ထည့်သွင်းပါ။ ပြောင်းလဲမှုသည် Polkit ရှိ CVE-2021-4034 ကဲ့သို့သော ဖြတ်သွားသော အမိန့်ပေးစာကြောင်းဆိုင်ရာ အကြောင်းပြချက်များကို မှားယွင်းစွာ ကိုင်တွယ်ခြင်းကြောင့် ဖြစ်ပေါ်လာသော လုံခြုံရေးပြဿနာများကို ပိတ်ဆို့စေပါသည်။

source: opennet.ru

မှတ်ချက် Add