စနစ်ခေါ်ဆိုမှုများအတွက် Linux kernel stack လိပ်စာများကို ကျပန်းလုပ်ဆောင်ရန် မိတ်ဆက်ပေးထားသော Patches များ

kernel.org ၏ စနစ်စီမံခန့်ခွဲသူနှင့် Ubuntu Security Team ၏ခေါင်းဆောင်ဖြစ်သူ Kees Cook သည် ယခုအခါ Google တွင် Android နှင့် ChromeOS ကို လုံခြုံအောင်လုပ်ဆောင်နေသည့်အတွက် စနစ်ခေါ်ဆိုမှုများလုပ်ဆောင်သည့်အခါ kernel stack တွင် အော့ဖ်ဆက်များကို ကျပန်းလုပ်ဆောင်ရန်အတွက် ဖာထေးအစုံကို ထုတ်ဝေခဲ့သည်။ Patches များသည် stack နေရာချထားမှုကိုပြောင်းလဲခြင်းဖြင့် kernel လုံခြုံရေးကိုတိုးတက်စေပြီး stack တွင်တိုက်ခိုက်မှုများကိုပိုမိုခက်ခဲပြီးအောင်မြင်မှုနည်းပါးစေသည်။ ကနဦးအကောင်အထည်ဖော်မှုတွင် ARM64 နှင့် x86/x86_64 ပရိုဆက်ဆာများကို ပံ့ပိုးပေးသည်။

patch အတွက် မူလစိတ်ကူးသည် PaX RANDKSTACK ပရောဂျက်နှင့် သက်ဆိုင်သည်။ 2019 ခုနှစ်တွင် Intel မှ အင်ဂျင်နီယာ Elena Reshetova သည် ပင်မ Linux kernel တွင်ပါဝင်ရန် သင့်လျော်သော ဤစိတ်ကူးကို အကောင်အထည်ဖော်ရန် ကြိုးစားခဲ့သည်။ နောက်ပိုင်းတွင်၊ kernel ၏အဓိကဗားရှင်းအတွက်သင့်လျော်သောအကောင်အထည်ဖော်မှုကိုတင်ပြသူ Kees Cook မှစတင်လုပ်ဆောင်ခဲ့သည်။ ဖာထေးမှုများကို 5.13 ထုတ်ဝေမှု၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် ထည့်သွင်းရန် စီစဉ်ထားသည်။ မုဒ်ကို မူရင်းအတိုင်း ပိတ်ပါမည်။ ၎င်းကိုဖွင့်ရန်၊ kernel command line parameter "randomize_kstack_offset=on/off" နှင့် CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT ဆက်တင်ကို အဆိုပြုထားသည်။ မုဒ်ကို ဖွင့်ခြင်း၏ အကျုံးဝင်မှုသည် ခန့်မှန်းခြေ 1% စွမ်းဆောင်ရည် ဆုံးရှုံးမှုတွင် ခန့်မှန်းထားသည်။

အဆိုပြုထားသော ကာကွယ်မှု၏ အနှစ်သာရမှာ စနစ်ခေါ်ဆိုမှုတစ်ခုစီအတွက် ကျပန်းပစည်းအော့ဖ်ဆက်ကို ရွေးချယ်ရန်ဖြစ်ပြီး၊ လိပ်စာဒေတာကို လက်ခံရရှိပြီးနောက်တွင်ပင် မှတ်ဉာဏ်အတွင်းရှိ stack အပြင်အဆင်ကို ဆုံးဖြတ်ရန်ခက်ခဲစေသည်၊ အဘယ်ကြောင့်ဆိုသော် လာမည့်စနစ်ခေါ်ဆိုမှုသည် stack ၏ အခြေခံလိပ်စာကို ပြောင်းလဲမည်ဖြစ်သောကြောင့် ဖြစ်သည်။ PaX RANDKSTACK အကောင်အထည်ဖော်မှုနှင့်မတူဘဲ၊ kernel တွင်ထည့်သွင်းရန်အဆိုပြုထားသော ဖာထေးမှုများတွင်၊ ကျပန်းပြုလုပ်ခြင်းကို ကနဦးအဆင့်တွင်မလုပ်ဆောင်ပါ (cpu_current_top_of_stack)၊ သို့သော် pt_regs ဖွဲ့စည်းပုံကိုသတ်မှတ်ပြီးနောက်၊ ကျပန်းလုပ်ဆောင်သော offset ကိုဆုံးဖြတ်ရန် ptrace-based နည်းလမ်းများကိုအသုံးပြု၍မရပါ။ ရေရှည်စနစ်ခေါ်ဆိုမှုအတွင်း။

source: opennet.ru

မှတ်ချက် Add