သီးခြားကွန်တိန်နာမှ လွတ်မြောက်ခြင်းကို ခွင့်ပြုသော cgroups v1 တွင် အားနည်းချက်

kernel ရှိ cgroups v1 resource limiting mechanism ကို အကောင်အထည်ဖော်ရာတွင် အားနည်းချက် (CVE-2022-0492) ၏ အသေးစိတ်အချက်အလက်များကို ထုတ်ဖော်ပြသခဲ့ပါသည်။ Linux၊ ၎င်းကို သီးခြားကွန်တိန်နာများမှ လွတ်မြောက်ရန် အသုံးပြုနိုင်သည်။ ပြဿနာသည် kernel မှစတင်၍ ပေါ်လာသည်။ Linux ၂.၆.၂၄ နှင့် kernel ထုတ်လွှတ်မှုများ 5.16.12၊ 5.15.26၊ 5.10.97၊ 5.4.177၊ 4.19.229၊ 4.14.266 နှင့် 4.9.301 တို့တွင် ပြင်ဆင်ပြီးဖြစ်သည်။ ဤစာမျက်နှာများတွင် ဖြန့်ဝေမှုများတွင် package update များထုတ်ပြန်မှုကို ခြေရာခံနိုင်သည်- Debian, SUSE , Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

အားနည်းချက်သည် အခွင့်ထူးအပြည့်ဖြင့် ကိုင်တွယ်ကိရိယာကို လုပ်ဆောင်သည့်အခါ သင့်လျော်သောစစ်ဆေးမှုများကို တားဆီးထားသည့် release_agent ဖိုင်ကိုင်တွယ်သူရှိ ယုတ္တိအမှားတစ်ခုကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ cgroup ရှိ လုပ်ငန်းစဉ်တစ်ခု ရပ်ဆိုင်းသွားသောအခါ kernel မှ လုပ်ဆောင်သည့် ပရိုဂရမ်တစ်ခုကို သတ်မှတ်ရန် release_agent ဖိုင်ကို အသုံးပြုသည်။ ဤပရိုဂရမ်သည် root အခွင့်ထူးများ နှင့် root namespace ရှိ စွမ်းရည်များအားလုံးဖြင့် လုပ်ဆောင်သည်။ release_agent configuration သို့ ဝင်ရောက်ခွင့်ကို စီမံခန့်ခွဲသူအား ကန့်သတ်ရန် ရည်ရွယ်ထားသော်လည်း လက်တွေ့တွင်၊ စစ်ဆေးမှုများသည် ကွန်တိန်နာအတွင်းမှ သို့မဟုတ် စီမံခန့်ခွဲခွင့်များ (CAP_SYS_ADMIN) မှ စီမံအုပ်ချုပ်မှုဆိုင်ရာအခွင့်ထူးများ (CAP_SYS_ADMIN) သို့ ပြောင်းလဲခြင်းမှ မကာကွယ်နိုင်ဘဲ စစ်ဆေးမှုများသည် root အသုံးပြုသူကို ဝင်ရောက်ခွင့်ပေးရန် ကန့်သတ်ထားသည်။

ယခင်က၊ ဤအင်္ဂါရပ်ကို အားနည်းချက်အဖြစ် ယူဆမည်မဟုတ်သော်လည်း ပင်မပတ်ဝန်းကျင်၏ အမြစ်အသုံးပြုသူနှင့် ထပ်မထပ်သည့် ကွန်တိန်နာများတွင် သီးခြား root အသုံးပြုသူများကို ဖန်တီးခွင့်ပြုသည့် အသုံးပြုသူ namespaces ထွန်းကားလာသဖြင့် အခြေအနေပြောင်းလဲသွားသည်။ ထို့ကြောင့်၊ တိုက်ခိုက်မှုတစ်ခုလုပ်ဆောင်ရန်၊ သီးခြားအသုံးပြုသူအမည်နေရာရှိ ၎င်း၏ကိုယ်ပိုင် root အသုံးပြုသူရှိသည့် ကွန်တိန်နာတစ်ခုသည် ၎င်း၏ကိုယ်ပိုင် release_agent handler ကို ပူးတွဲရန်လိုအပ်သည်။ လုပ်ငန်းစဉ်ကို ရပ်စဲပြီးနောက်၊ ကိုင်တွယ်သူသည် ပင်မပတ်ဝန်းကျင်၏ အထူးအခွင့်အရေးများ အပြည့်အဝဖြင့် လုပ်ဆောင်မည်ဖြစ်သည်။

မူရင်းအားဖြင့်၊ cgroupfs ကို ဖတ်ရန်-သပ်သပ်မုဒ်တွင် ကွန်တိန်နာတစ်ခုတွင် တပ်ဆင်ထားသော်လည်း သင့်တွင် CAP_SYS_ADMIN လုပ်ပိုင်ခွင့်များ သို့မဟုတ် ဖန်တီးထားသောကွန်တိန်နာအတွက် CAP_SYS_ADMIN အခွင့်အရေးများရရှိနိုင်ပါက CAP_SYS_ADMIN အခွင့်အရေးများရရှိနိုင်ပါက ဤ pseudo-fs ကို စာရေးမုဒ်တွင် ပြန်လည်တပ်ဆင်ရာတွင် ပြဿနာမရှိပါ။

သီးခြားကွန်တိန်နာမှ လွတ်မြောက်ခြင်းကို ခွင့်ပြုသော cgroups v1 တွင် အားနည်းချက်

သီးခြားကွန်တိန်နာတစ်ခုတွင် root privileges များဖြင့် သို့မဟုတ် no_new_privs flag မပါဘဲ ကွန်တိန်နာတစ်ခုကို run နေစဉ်တွင် တိုက်ခိုက်မှုကို လုပ်ဆောင်နိုင်ပြီး ၎င်းသည် အပိုဆောင်း privileges များ ပေးအပ်ခြင်းမှ တားဆီးပေးသည်။ အသုံးပြုသူ namespace များကို စနစ်တွင် enable လုပ်ထားရမည် (default အနေဖြင့် enable လုပ်ထားသည်)။ Ubuntu နှင့် Fedora၊ သို့သော် အသက်သွင်းထားခြင်း မရှိပါ။ Debian နှင့် RHEL) နှင့် root cgroup v1 သို့ ဝင်ရောက်ခွင့် (ဥပမာ၊ Docker သည် root RDMA cgroup တွင် containers များကို run သည်)။ ဤတိုက်ခိုက်မှုကို CAP_SYS_ADMIN အခွင့်ထူးများဖြင့်လည်း ဖြစ်နိုင်ပြီး၊ ထိုသို့ဖြစ်ပါက user namespace ပံ့ပိုးမှုနှင့် root cgroup v1 hierarchy သို့ ဝင်ရောက်ခွင့် မလိုအပ်ပါ။

သီးခြားကွန်တိန်နာတစ်ခုမှ လွတ်မြောက်ခြင်းအပြင်၊ အားနည်းချက်သည် လုပ်ဆောင်နိုင်စွမ်းမရှိသော အမြစ်အသုံးပြုသူတစ်ဦးမှ စတင်သည့် လုပ်ငန်းစဉ်များ သို့မဟုတ် CAP_DAC_OVERRIDE အခွင့်ထူးများရှိသည့် မည်သည့်အသုံးပြုသူမှ (တိုက်ခိုက်မှုသည် root မှပိုင်ဆိုင်သည့် /sys/fs/cgroup/*/release_agent ဖိုင်သို့ ဝင်ရောက်ခွင့်လိုအပ်သည်)၊ စနစ်လုပ်ဆောင်နိုင်စွမ်းအားလုံးကို ဝင်ရောက်ကြည့်ရှုခွင့်ရရှိရန် ခွင့်ပြုပါသည်။

Seccomp၊ AppArmor သို့မဟုတ် SE ကာကွယ်ရေးယန္တရားများကို အသုံးပြုသည့်အခါ အားနည်းချက်ကို အသုံးချ၍မရကြောင်း သတိပြုပါ။Linux Seccomp သည် unshare() system call သို့ ခေါ်ဆိုမှုကို ပိတ်ဆို့ထားပြီး AppArmor နှင့် SE သည် containers များကို နောက်ထပ် သီးခြားခွဲထားရန်ဖြစ်သည်။Linux cgroupfs များကို ရေးသားမုဒ်တွင် mount လုပ်ခွင့်မပြုပါ။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster