အခွင့်ထူးတိုးခြင်းကို ဖြစ်ပေါ်စေနိုင်သော Linux kernel အမှိုက်စုဆောင်းသူတွင် ပြိုင်ဆိုင်မှုအခြေအနေ

တစ်ချိန်က Spectre နှင့် Meltdown အားနည်းချက်များကို ရှာဖွေဖော်ထုတ်ခဲ့သော Google Project Zero အဖွဲ့မှ Jann Horn သည် Linux kernel အမှိုက်စုဆောင်းသူတွင် အားနည်းချက်တစ်ခု (CVE-2021-4083) ကို အသုံးချခြင်းအတွက် နည်းလမ်းတစ်ခုကို ထုတ်ပြန်ခဲ့သည်။ အားနည်းချက်သည် unix sockets များရှိ ဖိုင်ဖော်ပြချက်များအား ရှင်းလင်းသည့်အခါ ပြိုင်ပွဲအခြေအနေတစ်ခုကြောင့်ဖြစ်ပြီး ဒေသတွင်းအခွင့်ထူးမခံရသေးသောအသုံးပြုသူတစ်ဦးအား ၎င်းတို့၏ကုဒ်ကို kernel အဆင့်တွင် လုပ်ဆောင်ရန် ခွင့်ပြုပေးနိုင်သည်။

ပြိုင်ဆိုင်မှုအခြေအနေ ဖြစ်ပေါ်လာသည့် အချိန်ပြတင်းပေါက်သည် အစစ်အမှန်အမြတ်ထုတ်မှုများကို ဖန်တီးရန် သေးငယ်လွန်းသည်ဟု ခန့်မှန်းထားသောကြောင့် ပြဿနာမှာ စိတ်ဝင်စားဖွယ်ကောင်းသော်လည်း လေ့လာမှု၏စာရေးသူမှ အဆိုပါ သံသယရှိသော အားနည်းချက်များပင်လျှင် exploit ဖန်တီးသူတွင် အမှန်တကယ် တိုက်ခိုက်မှုများ၏ အရင်းအမြစ်ဖြစ်လာနိုင်သည် လိုအပ်သောအရည်အချင်းများနှင့်အချိန်။ Yann Horn သည် ကြိုးဆွဲခြယ်လှယ်မှုများ၏အကူအညီဖြင့် close() နှင့် fget() လုပ်ဆောင်ချက်များကို အပြည့်အဝအသုံးချနိုင်ပြီးနောက် အခမဲ့အားနည်းချက်အဖြစ်သို့ တစ်ပြိုင်နက်တည်း ခေါ်ဆိုသည့်အခါ ဖြစ်ပေါ်သည့် ပြိုင်ပွဲအခြေအနေအား သင်လျှော့ချနိုင်ပုံကို ပြသခဲ့သည်။ kernel အတွင်းရှိဖွဲ့စည်းပုံ။

close() နှင့် fget() ကို တစ်ပြိုင်နက်ခေါ်ဆိုနေစဉ် ဖိုင်ဖော်ပြချက်တစ်ခုအား ပိတ်သည့် လုပ်ငန်းစဉ်တွင် ပြိုင်ပွဲအခြေအနေတစ်ခု ဖြစ်ပေါ်သည်။ ပိတ်ရန်() ခေါ်ဆိုမှုသည် fget() ကို မလုပ်ဆောင်မီ ဖြစ်ပေါ်လာနိုင်သည်၊ အကြောင်းမှာ ပြန်လည်ရေတွက်မှုအရ၊ ဖိုင်ဖွဲ့စည်းပုံတွင် ပြင်ပကိုးကားမှုများရှိမည်မဟုတ်သော်လည်း ဖိုင်ဖော်ပြချက်တွင် တွဲဆက်ရှိနေမည်ဖြစ်သောကြောင့် အမှိုက်စုဆောင်းသူကို စိတ်ရှုပ်ထွေးစေမည်ဖြစ်သည်။ အမှိုက်စုဆောင်းသူသည် ဖွဲ့စည်းပုံကို သီးသန့်ဝင်ရောက်ခွင့်ရှိသည်ဟု ထင်လိမ့်မည်၊ သို့သော် တကယ်တမ်းတွင်၊ အချိန်တိုတိုအတွင်း၊ ဖိုင်ဖော်ပြချက်ဇယားရှိ ကျန်ထည့်သွင်းမှုသည် ဖွဲ့စည်းတည်ဆောက်ပုံကို လွတ်မြောက်သွားစေရန် ညွှန်ပြနေလိမ့်မည်။

ပြိုင်ဆိုင်မှုအခြေအနေသို့ရောက်ရှိနိုင်ခြေကို တိုးမြှင့်ရန်အတွက် စနစ်အလိုက် ပိုမိုကောင်းမွန်အောင်လုပ်ဆောင်မှုများကို မိတ်ဆက်သည့်အခါ အမြတ်ထုတ်ခြင်းအောင်မြင်မှုဖြစ်နိုင်ခြေ 30% အထိ တိုးလာစေရန် လှည့်ကွက်များစွာကို အသုံးပြုခဲ့သည်။ ဥပမာအားဖြင့်၊ ရာနာနိုစက္ကန့်များစွာဖြင့် ဖိုင်ဖော်ပြချက်ပေးသည့်ဖွဲ့စည်းပုံအား ဝင်ရောက်ကြည့်ရှုသည့်အချိန်ကို တိုးမြှင့်ရန်၊ ကက်ရှ်အား အခြား CPU core တွင် လုပ်ဆောင်မှုဖြင့် စွန့်ပစ်ခြင်းဖြင့် ဒေတာများကို မမ်မိုရီမှ ထုတ်ယူနိုင်စေသည့် ဖွဲ့စည်းပုံကို ထုတ်ယူနိုင်စေသည့် ပရိုဆက်ဆာ cache မှ ဖယ်ရှားခဲ့သည်။ မြန်ဆန်သော CPU ကက်ရှ်။

ဒုတိယအရေးကြီးသောအင်္ဂါရပ်မှာ ပြိုင်ပွဲအခြေအနေအချိန်ကို တိုးမြှင့်ရန်အတွက် ဟာ့ဒ်ဝဲအချိန်တိုင်းကိရိယာမှ ထုတ်ပေးသော ကြားဖြတ်များကို အသုံးပြုခြင်း ဖြစ်သည်။ ပြိုင်ပွဲအခြေအနေတစ်ခုဖြစ်ပေါ်ပြီး ကုဒ်၏လုပ်ဆောင်မှုကို အချိန်အတန်ကြာ အနှောင့်အယှက်ပေးသည့်အခါ ကြားဖြတ်ကိုင်တွယ်သူကို ပစ်ခတ်ရန် အခိုက်အတန့်ကို ရွေးချယ်ထားသည်။ ထိန်းချုပ်မှုပြန်ရလာမှုကို ပိုမိုနှောင့်နှေးစေရန်အတွက် စောင့်ဆိုင်းတန်းစီဇယားတွင် ထည့်သွင်းမှု 50 ခန့်ကို epoll ကို အသုံးပြု၍ ကြားဖြတ်ကိုင်တွယ်သူမှတစ်ဆင့် ရှာဖွေရန်လိုအပ်သည်။

အားနည်းချက်ကို အသုံးချခြင်းအတွက် နည်းစနစ်ကို ရက် 90 ကြာ ထုတ်ဖော်ခြင်းမရှိသော ကာလပြီးနောက် ထုတ်ဖော်ခဲ့သည်။ ပြဿနာသည် kernel 2.6.32 ကတည်းကပေါ်လာပြီး ဒီဇင်ဘာလအစောပိုင်းတွင် ဖြေရှင်းခဲ့သည်။ ပြုပြင်မှုကို kernel 5.16 တွင် ထည့်သွင်းထားပြီး ဖြန့်ဖြူးမှုတွင် ပံ့ပိုးပေးသည့် kernel နှင့် kernel packages များ၏ LTS အကိုင်းအခက်များသို့လည်း လွှဲပြောင်းခဲ့သည်။ MSG_PEEK အလံကိုလုပ်ဆောင်သောအခါ အမှိုက်စုဆောင်းသူတွင် ကိုယ်တိုင်ထင်ရှားသည့် အလားတူပြဿနာ CVE-2021-0920 ကို ခွဲခြမ်းစိတ်ဖြာရာတွင် အားနည်းချက်ကို ဖော်ထုတ်တွေ့ရှိခဲ့သည်မှာ မှတ်သားဖွယ်ကောင်းပါသည်။

source: opennet.ru

မှတ်ချက် Add