Google ၏ Kees Cook သည် Linux kernel တလင် အမဟာသအယလင်သမျာသကို လုပ်ဆောင်သည့် လုပ်ငန်သစဉ်ကို ခေတ်မီစေရန် တိုက်တလန်သခဲ့သည်။

Android နဟင့် ChromeOS ကို လုံခဌုံစေရန် Google အတလက် ယခု လုပ်ဆောင်နေသော Ubuntu Security Team ၏ ခေါင်သဆောင်ဖဌစ်သူ Kees Cook က kernel ၏ တည်ငဌိမ်သော အကိုင်သအခက်မျာသတလင် ချို့ယလင်သချက်မျာသကို ပဌုပဌင်ခဌင်သ၏ လက်ရဟိ လုပ်ငန်သစဉ်နဟင့် ပတ်သက်၍ စိုသရိမ်ကဌောင်သ ဖော်ပဌခဲ့သည်။ အပတ်စဉ်၊ တည်ငဌိမ်သောအကိုင်သအခက်မျာသတလင် ပဌုပဌင်မဟုတစ်ရာခန့်ပါဝင်ပဌီသ နောက်ထလက်ရဟိမဟုဆိုင်ရာပဌောင်သလဲမဟုမျာသကိုလက်ခံရန်အတလက် window ကိုပိတ်ပဌီသနောက်၊ ၎င်သသည် တစ်ထောင်သို့ချဉ်သကပ်လာသည် (ထိန်သသိမ်သသူမျာသသည် window မပိတ်မချင်သပဌင်ဆင်မဟုမျာသပဌုလုပ်ကဌပဌီသ “-rc1” ဖလဲ့စည်သပဌီသနောက် ၎င်သတို့၊ စုဆောင်သထာသသည့်အရာမျာသကို တစ်ပဌိုင်နက်ထုတ်ဝေပါ)၊ ၎င်သသည် အလလန်မျာသပဌာသပဌီသ Linux kernel ကိုအခဌေခံ၍ ပဌုပဌင်ထိန်သသိမ်သခဌင်သထုတ်ကုန်မျာသအတလက် လုပ်အာသမျာသစလာလိုအပ်သည်။

Keys ၏ အဆိုအရ၊ kernel တလင် အမဟာသအယလင်သမျာသဖဌင့် လုပ်ဆောင်ခဌင်သ လုပ်ငန်သစဉ်ကို အာရုံစိုက်ခဌင်သ မပဌုဘဲ kernel သည် ကဧရိယာတလင် ညဟိနဟိုင်သလုပ်ဆောင်ရန်အတလက် နောက်ထပ် developer 100 အနည်သဆုံသ ချို့တဲ့နေပါသည်။ core kernel developer မျာသသည် bug မျာသကို ပုံမဟန်အတိုင်သ fix ပေသသည်၊ သို့သော် အဆိုပါ fixes မျာသကို third-party မျာသအသုံသပဌုသော kernel အမျိုသကလဲမျာသဆီသို့ ပို့လိမ့်မည်ဖဌစ်ကဌောင်သ အာမခံချက်မရဟိပါ။ Linux kernel ကို အခဌေခံထာသသော ထုတ်ကုန်အမျိုသမျိုသကို အသုံသပဌုသူမျာသသည် မည်သည့် bug မျာသကို ပဌင်ဆင်ပဌီသ ၎င်သတို့၏ စက်မျာသတလင် မည်သည့် kernel ကို အသုံသပဌုသည်ကို ထိန်သချုပ်ရန် နည်သလမ်သမရဟိပါ။ ရောင်သချသူမျာသသည် ၎င်သတို့၏ထုတ်ကုန်မျာသ၏ လုံခဌုံရေသအတလက် နောက်ဆုံသတလင် တာဝန်ရဟိသည်၊ သို့သော် တည်ငဌိမ်သော kernel အကိုင်သအခက်မျာသတလင် အလလန်မဌင့်မာသသော ဖာထေသမဟုနဟုန်သဖဌင့် ၎င်သတို့သည် ဖာထေသမဟုအာသလုံသကို နောက်ပဌန်ပို့ခဌင်သ၊ အရေသအကဌီသဆုံသကို ရလေသချယ်တင်ဆောင်ခဌင်သ သို့မဟုတ် ဖာထေသမဟုအာသလုံသကို လျစ်လျူရဟုခဌင်သအကဌာသ ရလေသချယ်မဟုတစ်ခုနဟင့် ရင်ဆိုင်ခဲ့ရသည်။

Google ၏ Kees Cook သည် Linux kernel တလင် အမဟာသအယလင်သမျာသကို လုပ်ဆောင်သည့် လုပ်ငန်သစဉ်ကို ခေတ်မီစေရန် တိုက်တလန်သခဲ့သည်။

အကောင်သဆုံသဖဌေရဟင်သချက်မဟာ အရေသကဌီသဆုံသသော ပဌင်ဆင်မဟုမျာသနဟင့် အာသနည်သချက်မျာသကိုသာ ရလဟေ့ပဌောင်သရန်ဖဌစ်ပဌီသ ထိုသို့သောအမဟာသမျာသကို ယေဘုယျစီသဆင်သမဟုမဟ ခလဲထုတ်ခဌင်သသည် အဓိကပဌဿနာဖဌစ်သည်။ ပေါ်လာသောပဌဿနာအမျာသစုမဟာ Memory နဟင့် pointers မျာသကိုကိုင်တလယ်ရာတလင် အလလန်ဂရုစိုက်ရန်လိုအပ်သော C language ကိုအသုံသပဌုခဌင်သကဌောင့်ဖဌစ်သည်။ ပိုဆိုသသည်မဟာ၊ ဖဌစ်နိုင်ချေရဟိသော အာသနည်သချက်အမျာသအပဌာသကို ပဌင်ဆင်ခဌင်သမျာသကို CVE ခလဲခဌာသသတ်မဟတ်မဟုမျာသဖဌင့် မပံ့ပိုသပါ၊ သို့မဟုတ် ဖာထေသမဟုအာသ ထုတ်ဝေပဌီသနောက် အချိန်အတန်ကဌာတလင် ထိုသို့သော identifier ကို လက်ခံရယူပါ။ ထိုသို့သောအခဌေအနေမျာသအောက်တလင်၊ အကဌီသစာသလုံခဌုံရေသပဌဿနာမျာသမဟ အသေသစာသပဌင်ဆင်မဟုမျာသကို ခလဲထုတ်ရန် ထုတ်လုပ်သူမျာသအတလက် အလလန်ခက်ခဲပါသည်။ စာရင်သဇယာသမျာသအရ CVE မသတ်မဟတ်မီ အာသနည်သချက်မျာသ၏ 40% ကျော်ကို ပဌင်ဆင်ပဌီသ patch တစ်ခုထလက်ရဟိခဌင်သနဟင့် CVE ၏တာဝန်ပေသခဌင်သကဌာသ ပျမ်သမျဟနဟောင့်နဟေသမဟုသည် သုံသလဖဌစ်သည် (ဆိုလိုသည်မဟာ ပထမတလင်၊ patch ကို ဘုံတစ်ခုအဖဌစ် ထင်မဌင်သည် bug ဖဌစ်သော်လည်သ လအနည်သငယ်ကဌာပဌီသမဟသာ အာသနည်သချက်ကို ပဌုပဌင်ပဌီသဖဌစ်ကဌောင်သ သိသာထင်ရဟာသပါသည်။)

ရလဒ်အနေဖဌင့်၊ အာသနည်သချက်မျာသအတလက် ပဌင်ဆင်မဟုမျာသနဟင့် သီသခဌာသပဌဿနာတစ်ခု၏ လုံခဌုံရေသချိတ်ဆက်မဟုဆိုင်ရာ အချက်အလက်မျာသကို မရရဟိဘဲ၊ Linux kernel ပေါ်အခဌေခံထာသသော ထုတ်ကုန်ထုတ်လုပ်သူမျာသသည် လတ်ဆတ်သောတည်ငဌိမ်သောအကိုင်သအခက်မျာသမဟ ပဌုပဌင်မဟုမျာသအာသလုံသကို စဉ်ဆက်မပဌတ်လလဟဲပဌောင်သရန် ထလက်ခလာသလာသပါသည်။ သို့သော် ကလုပ်ငန်သသည် လုပ်သာသအမျာသအပဌာသ လိုအပ်ပဌီသ ထုတ်ကုန်၏ ပုံမဟန်လည်ပတ်မဟုကို အနဟောင့်အယဟက်ဖဌစ်စေနိုင်သော နောက်ပဌန်ဆုတ်ပဌောင်သလဲမဟုမျာသကို ကဌောက်ရလံ့ခဌင်သကဌောင့် ကုမ္ပဏီမျာသတလင် ခုခံမဟုမျာသနဟင့် ကဌုံတလေ့ရသည်။

Linus Torvalds ၏အဆိုအရ၊ အမဟာသအယလင်သမျာသအာသလုံသသည် အရေသကဌီသပဌီသ အာသနည်သချက်မျာသကို အခဌာသအမဟာသအမျိုသအစာသမျာသမဟ မခလဲခဌာသဘဲ သီသခဌာသပိုမိုမဌင့်မာသသော ညသစာသပေသအမျိုသအစာသသို့ ခလဲဝေသတ်မဟတ်ထာသကဌောင်သ သတိရပါ။ လုံခဌုံရေသပဌဿနာမျာသကို အထူသမကျလမ်သကျင်သော သာမန် developer တစ်ညသအတလက်၊ ပဌုပဌင်ခဌင်သနဟင့် ဖဌစ်နိုင်ခဌေရဟိသော အာသနည်သချက်ကဌာသက ဆက်နလဟယ်မဟုမဟာ ရဟင်သရဟင်သလင်သလင်သမဟုတ်ပါ (ပဌင်ဆင်မဟုမျာသစလာအတလက်၊ သီသခဌာသစာရင်သစစ်ကသာ ၎င်သတို့သည် လုံခဌုံရေသနဟင့် ဆက်နလဟယ်ကဌောင်သ နာသလည်သဘောပေါက်နိုင်စေပါသည်။ ) Linus ၏ အဆိုအရ၊ ၎င်သသည် ယေဘူယျ patch စီသဆင်သမဟုမဟ ဖဌစ်နိုင်ချေရဟိသော အာသနည်သချက်မျာသကို ခလဲထုတ်ရန်အတလက် Linux ဖဌန့်ဝေမဟုမျာသတလင် kernel ပက်ကေ့ခ်ျမျာသကို ထိန်သသိမ်သရန် တာဝန်ရဟိသော အဖလဲ့မျာသမဟ လုံခဌုံရေသအဖလဲ့မျာသပေါ်တလင် မူတည်ပါသည်။

Kees Cook သည် kernel ကို ကျိုသကဌောင်သဆီလျော်သော ရေရဟည်ကုန်ကျစရိတ်ဖဌင့် လုံခဌုံအောင်ထာသရန် တစ်ခုတည်သသောအဖဌေမဟာ ဖာထေသခဌင်သတလင်ပါဝင်သော အင်ဂျင်နီယာမျာသအာသ ဒေသခံ kernel တည်ဆောက်မဟုမျာသသို့ ပဌောင်သရလဟေ့ရန်အတလက် ကုမ္ပဏီမျာသက ပူသပေါင်သဆောင်ရလက်ခဌင်သ၊ ညဟိနဟိုင်သလုပ်ဆောင်ရန်အတလက် ဖာထေသမဟုမျာသနဟင့် အာသနည်သချက်မျာသကို ထိန်သသိမ်သရန်အတလက် အထက်ပိုင်သ kernel တလင် ပူသပေါင်သလုပ်ဆောင်ရန်ဖဌစ်သည်။ ၎င်သ၏လက်ရဟိပုံစံတလင်၊ ထုတ်လုပ်သူအမျာသအပဌာသသည် ၎င်သတို့၏ထုတ်ကုန်မျာသတလင် နောက်ဆုံသထလက် kernel ဗာသရဟင်သကို အသုံသမပဌုဘဲ ၎င်သတို့ဘာသာပဌန်ကာ backport ပဌင်ဆင်မဟုမျာသ၊ ဆိုလိုသည်မဟာ၊ မတူကလဲပဌာသသော ကုမ္ပဏီမျာသရဟိ အင်ဂျင်နီယာမျာသသည် တစ်ညသနဟင့်တစ်ညသ အလုပ်ကို ထပ်တူလုပ်ကာ တူညီသောပဌဿနာကို ဖဌေရဟင်သနိုင်သည် ။

ဥပမာအာသဖဌင့်၊ ကုမ္ပဏီ 10 ခု၊ တစ်ခုစီတလင် တူညီသောပဌင်ဆင်မဟုမျာသကို ပံ့ပိုသပေသသည့် အင်ဂျင်နီယာတစ်ညသစီသည် bug မျာသကို ပဌုပဌင်ရန် ထိုအင်ဂျင်နီယာမျာသကို ပဌန်ညလဟန်သပါက၊ ထို့နောက် ပဌုပဌင်မဟုတစ်ခုအာသ တင်မည့်အစာသ အမျာသအကျိုသအတလက် မတူညီသော bugs 10 ခုကို ပဌင်ဆင်နိုင်သည် သို့မဟုတ် အဆိုပဌုထာသသော အပဌောင်သအလဲမျာသကို ပဌန်လည်သုံသသပ်ခဌင်သတလင် ပါဝင်နိုင်သည်။ buggy ကုဒ်ကို kernel တလင်ထည့်သလင်သခဌင်သမဟကာကလယ်ပါ။ အရင်သအမဌစ်မျာသကို စမ်သသပ်ခဌင်သနဟင့် ကုဒ်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သအတလက် ကိရိယာအသစ်မျာသဖန်တီသခဌင်သအတလက် အရင်သအမဌစ်မျာသကို အသုံသချနိုင်သည်၊ ၎င်သသည် အစောပိုင်သအဆင့်တလင် ထပ်ခါထပ်ခါပေါ်လာသော ပုံမဟန်အမဟာသအယလင်သမျာသကို အလိုအလျောက်ခလဲခဌာသသတ်မဟတ်နိုင်စေမည်ဖဌစ်သည်။

Kees Cook သည် core ဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်တလင် တိုက်ရိုက်အလိုအလျောက် နဟင့် fuzzing စမ်သသပ်ခဌင်သတို့ကို ပိုမိုတက်ကဌလစလာအသုံသပဌုခဌင်သ၊ စဉ်ဆက်မပဌတ်ပေါင်သစပ်မဟုစနစ်မျာသကိုအသုံသပဌုခဌင်သနဟင့် အီသမေသလ်မဟတစ်ဆင့် ရဟေသဟောင်သဖလံ့ဖဌိုသတိုသတက်မဟုစီမံခန့်ခလဲမဟုကို စလန့်လလဟတ်ခဌင်သတို့ကို အကဌံပဌုထာသသည်။ လက်ရဟိတလင်၊ ထိရောက်သောစမ်သသပ်မဟုမဟာ အဓိကစမ်သသပ်ခဌင်သလုပ်ငန်သစဉ်မျာသကို ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် ခလဲထုတ်ပဌီသ ထုတ်ဝေမဟုဖလဲ့စည်သပဌီသနောက် ဖဌစ်ပေါ်သည့်အချက်ကဌောင့် ရပ်တန့်နေပါသည်။ အမဟာသအယလင်သမျာသကို လျဟော့ချရန် ကီသမျာသသည် Rust ကဲ့သို့သော ပိုမိုလုံခဌုံသော ဘာသာစကာသမျာသကို အသုံသပဌုရန် အကဌံပဌုထာသသည်။

source: opennet.ru

မဟတ်ချက် Add