out-of-tree v1.0.0 - exploits မျာသ နဟင့် Linux kernel modules မျာသကို ဖန်တီသခဌင်သနဟင့် စမ်သသပ်ခဌင်သအတလက် ကိရိယာမျာသ


out-of-tree v1.0.0 - exploits မျာသ နဟင့် Linux kernel modules မျာသကို ဖန်တီသခဌင်သနဟင့် စမ်သသပ်ခဌင်သအတလက် ကိရိယာမျာသ

exploits မျာသဖန်တီသခဌင်သနဟင့် စမ်သသပ်ခဌင်သအတလက် toolkit နဟင့် Linux kernel modules မျာသ၏ ပထမဆုံသ (v1.0.0) ဗာသရဟင်သကို ထုတ်ဝေလိုက်ပါသည်။

out-of-tree သည် သင့်အာသ kernel modules မျာသနဟင့် exploits မျာသကို အမဟာသရဟာခဌင်သအတလက် ပတ်ဝန်သကျင်မျာသကို ဖန်တီသရန်၊ exploit reliability ကိန်သဂဏန်သမျာသကို ဖန်တီသပေသပဌီသ CI (Continuous Integration) တလင် အလလယ်တကူ ပေါင်သစပ်နိုင်မဟုကို ပံ့ပိုသပေသပါသည်။

kernel module တစ်ခုစီ သို့မဟုတ် exploit တစ်ခုစီကို .out-of-tree.toml ဖိုင်တစ်ခုဖဌင့် ဖော်ပဌထာသပဌီသ၊ လိုအပ်သော ပတ်ဝန်သကျင်နဟင့် ပတ်သက်သော အချက်အလက်မျာသနဟင့် လုံခဌုံရေသဆိုင်ရာ လျော့ပါသသက်သာမဟုမျာသ ရဟိနေချိန်တလင် လုပ်ဆောင်မဟုအပေါ် ကန့်သတ်ချက်မျာသ (exploit ဖဌစ်ပါက) ကန့်သတ်ချက်မျာသ ဖော်ပဌသည်။

ကိရိယာအစုံသည် အာသနည်သချက်တစ်ခုကဌောင့် သက်ရောက်သည့် သီသခဌာသ kernel ဗာသရဟင်သမျာသကို ခလဲခဌာသသတ်မဟတ်နိုင်စေသည့်အပဌင် (--guess command ကို အသုံသပဌု၍) နဟင့် သီသခဌာသကျူသလလန်မဟုအတလက် binary ရဟာဖလေမဟုမျာသကို ရိုသရဟင်သစေရန်လည်သ အသုံသပဌုနိုင်သည်။

အောက်တလင် ဗာသရဟင်သ v0.2 ကတည်သက အပဌောင်သအလဲမျာသစာရင်သဖဌစ်သည်။

Added

  • —max= ကို အသုံသပဌု၍ ထုတ်ပေသသော (out-of-tree kernel autogen) စေ့မျာသ (.out-of-tree.toml) တလင် ဖော်ပဌချက်အပေါ် အခဌေခံ၍ ထုတ်ပေသသည့် (out-of-tree pew) အရေအတလက်ကို ကန့်သတ်နိုင်စလမ်သကို အကောင်အထည်ဖော်ခဲ့သည်။ X ဘောင်။

  • တိကျသောဖဌန့်ဖဌူသမဟုနဟင့်ဗာသရဟင်သအတလက် kernels အာသလုံသကိုထုတ်လုပ်ခလင့်ပဌုသည့် genall command အသစ်။

  • မဟတ်တမ်သအာသလုံသကို ယခု sqlite3 ဒေတာဘေ့စ်တလင် သိမ်သဆည်သထာသသည်။ ရိုသရဟင်သသော မကဌာခဏ လိုအပ်သော မေသခလန်သမျာသအတလက် ညလဟန်ကဌာသချက်မျာသအပဌင် ဒေတာကို json နဟင့် markdown သို့ တင်ပို့ခဌင်သ။

  • အောင်မဌင်သော လည်ပတ်မဟု ဖဌစ်နိုင်ခဌေကို တလက်ချက်ခဌင်သ (ယခင် လလဟင့်တင်မဟုမျာသအပေါ် အခဌေခံ၍)

  • တည်ဆောက်မဟုရလဒ်မျာသကိုသိမ်သဆည်သရန်စလမ်သရည် (သစ်ပင်ပဌင်ပ pew အမိန့်အတလက် --dist ဘောင်အသစ်)

  • host စနစ်တလင် ထည့်သလင်သထာသသော kernels မျာသအတလက် metadata ထုတ်ပေသခဌင်သအပဌင် host ပေါ်တလင် တိုက်ရိုက်တည်ဆောက်ခဌင်သအတလက် ပံ့ပိုသမဟု။

  • Third-party kernels အတလက်ပံ့ပိုသမဟု။

  • သစ်ပင်ပဌင်ပရဟိ အမဟာသရဟာပဌင်ပတ်ဝန်သကျင်သည် ယခုအခါ လက်ခံစနစ်ရဟိ အမဟာသရဟာသင်္ကေတမျာသကို အလိုအလျောက် ရဟာဖလေသည်။

  • အမဟာသရဟာပဌင်နေစဉ်အတလင်သ KASLR၊ SMEP၊ SMAP နဟင့် KPTI အလံမျာသကို ဖလင့်/ပိတ်ခဌင်သဖဌင့် လုံခဌုံရေသလျော့ပါသသက်သာစေရန် စီမံနိုင်စလမ်သကို ပေါင်သထည့်ထာသသည်။

  • --threads=N parameter ကို out-of-tree pew testing command သို့ ပေါင်သထည့်ခဲ့ပဌီသ၊ ၎င်သသည် exploits မျာသနဟင့် kernel module မျာသကို တည်ဆောက်ရန်/လုပ်ဆောင်ရန်၊ စမ်သသပ်မည့် threads အရေအတလက်ကို သတ်မဟတ်ရန် အသုံသပဌုနိုင်သည်။

  • မဟတ်တမ်သတလင် မဟတ်တမ်သတင်ထာသမည့် တဂ်တစ်ခုကို သတ်မဟတ်နိုင်ပဌီသ စာရင်သဇယာသမျာသကို တလက်ချက်ရန် အသုံသပဌုနိုင်သည်။

  • ပုံမဟန်အသုံသအနဟုန်သမျာသကိုမသုံသဘဲ kernel ဗာသရဟင်သကို သတ်မဟတ်နိုင်သည့်စလမ်သရည်ကို ထည့်သလင်သထာသသည်။

  • ဖိုင်လမ်သကဌောင်သခလဲမျာသရဟိ exploits မျာသနဟင့် kernel modules မျာသကို အစုလိုက်အပဌုံလိုက်စမ်သသပ်ရန်အတလက် အသုံသပဌုသည့် pack command အသစ်။

  • exploit နဟင့် kernel module အတလက် configuration (.out-of-tree.toml) တလင် KASLR၊ SMEP၊ SMAP နဟင့် KPTI ကို ပိတ်နိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသပဌီသ လိုအပ်သော cores နဟင့် memory အရေအတလက်ကို သတ်မဟတ်ပေသထာသပါသည်။

  • ယခုအခါ kernel autogen လည်ပတ်နေချိန်တလင် ပုံမျာသ (rootfs) မျာသကို အလိုအလျောက်တင်ပေသပါသည်။ bootstrap မလိုအပ်တော့ပါ။

  • CentOS kernels အတလက် ပံ့ပိုသမဟု။

အပဌောင်သအလဲမျာသ

  • ယခု၊ ဖဌန့်ဝေမဟု၏ လိုအပ်သောဗာသရဟင်သအတလက် ရုပ်ပုံ (rootfs) မရဟိပါက၊ အနီသစပ်ဆုံသဗာသရဟင်သ၏ ရုပ်ပုံကို သုံသရန် ကဌိုသစာသပါမည်။ ဥပမာအာသဖဌင့် Ubuntu 18.04 အတလက် Ubuntu 18.10 ပုံ။

  • ယခု kernel modules အတလက် စမ်သသပ်မဟုမျာသ ပျောက်ဆုံသနေပါက ကျရဟုံသမဟုမျာသကို ထည့်သလင်သစဉ်သစာသမည်မဟုတ်ပါ (စမ်သသပ်မဟုမျာသမရဟိပါ - အမဟာသအယလင်သမျာသမရဟိပါ။)

  • cores တစ်ခုခုတလင် အနည်သဆုံသ အဆင့်တစ်ခု (တည်ဆောက်ရန်၊ စတင်ခဌင်သ သို့မဟုတ် စမ်သသပ်မဟု) မအောင်မဌင်ပါက ယခု ပဌင်ပ-သစ်ပင်သည် အနုတ်လက္ခဏာ အမဟာသကုဒ်ကို ပဌန်ပေသပါမည်။

  • ပရောဂျက်သည် Go modules မျာသကိုအသုံသပဌု၍ GO111MODULE=on ဖဌင့်တည်ဆောက်ခဌင်သကို ယခုအခါ ပိုမိုနဟစ်သက်သည်။

  • ပုံသေစမ်သသပ်မဟုမျာသကို ထည့်သလင်သထာသသည်။

  • ${TARGET}_test ရဟိ စည်သဝေသပလဲကို Makefile တလင် အကောင်အထည်မဖော်ပါက Test.sh ကို ယခုအခါ မူရင်သအတိုင်သ အသုံသပဌုပါမည်။

  • kernel မဟတ်တမ်သကို kernel module တစ်ခုမလုပ်ဆောင်မီ သို့မဟုတ် exploit မလုပ်မီတလင် kernel မဟတ်တမ်သကို မရဟင်သလင်သတော့ပါ။ အချို့သော exploit မျာသသည် KASLR ကိုကျော်ဖဌတ်ရန် dmesg ရဟိ kernel base ယိုစိမ့်မဟုကို အသုံသပဌုသည်၊ ထို့ကဌောင့် ရဟင်သလင်သခဌင်သသည် exploit ၏ အကောင်အထည်ဖော်ထာသသော logic ကို ချိုသဖျက်နိုင်သည်။

  • qemu/kvm သည် ယခု host ပရိုဆက်ဆာ၏ လုပ်ဆောင်နိုင်စလမ်သအာသလုံသကို အသုံသပဌုသည်။

ဖယ်ရဟာသခဲ့သည်။

  • Kernel စက်ရုံ တိုသမဌင့်လာသော Dockerfiles မျာသကို အခဌေခံ၍ kernel မျိုသဆက်ကို အကောင်အထည်ဖော်ခဌင်သကဌောင့် လုံသဝဖယ်ရဟာသလိုက်ပါသည်။

  • bootstrap က တခဌာသဘာမဟ မလုပ်ပါဘူသ။ နောက်ထလက်ရဟိမဟုတလင် အမိန့်ကို ဖယ်ရဟာသပါမည်။

ပဌင်ပေသတယ်။

  • macOS တလင်၊ GNU coreutils ကိုလည်ပတ်ရန်မလိုအပ်တော့ပါ။

  • အချို့သောစနစ်မျာသတလင် docker အတလင်သရဟိ အမဟာသအယလင်သမျာသကဌောင့် ယာယီဖိုင်မျာသကို ~/.out-of-tree/tmp/ သို့ ရလဟေ့ထာသသည်။

source: linux.org.ru

မဟတ်ချက် Add