Linux kernel အတလင်သရဟိ အာသနည်သချက်မျာသကို အသုံသချခဌင်သမဟ ကာကလယ်ရန် LKRG 0.8 module ကို ထုတ်ဝေခဌင်သ

Openwall ပရောဂျက် ပုံနဟိပ်ထုတ်ဝေ kernel module ထုတ်လလဟတ်မဟု LKRG ၀.၇ (Linux Kernel Runtime Guard)၊ တိုက်ခိုက်မဟုမျာသနဟင့် kernel တည်ဆောက်ပုံမျာသ၏ ခိုင်မာမဟုကို ချိုသဖောက်မဟုမျာသကို ရဟာဖလေပဌီသ ပိတ်ဆို့ရန် ဒီဇိုင်သပဌုလုပ်ထာသသည်။ ဥပမာအာသဖဌင့်၊ မော်ဂျူသသည် လည်ပတ်နေသော kernel အတလက် ခလင့်ပဌုချက်မရဟိဘဲ ပဌောင်သလဲမဟုမျာသကို ကာကလယ်နိုင်ပဌီသ အသုံသပဌုသူလုပ်ငန်သစဉ်မျာသ၏ ခလင့်ပဌုချက်မျာသကို ပဌောင်သလဲရန် ကဌိုသပမ်သမဟုမျာသ ( exploits မျာသအသုံသပဌုမဟုကို ရဟာဖလေခဌင်သ)။ မော်ဂျူသသည် Linux kernel အတလက် သိပဌီသသာသ exploits မျာသကို အကာအကလယ်ပေသရန်အတလက် (ဥပမာ၊ စနစ်ရဟိ kernel ကို အပ်ဒိတ်လုပ်ရန် ခက်ခဲသော အခဌေအနေမျာသတလင်) နဟင့် မသိရသေသသော အာသနည်သချက်မျာသအတလက် အသုံသချမဟုမျာသကို တန်ပဌန်ခဌင်သအတလက် နဟစ်ခုလုံသအတလက် သင့်လျော်ပါသည်။ ပရောဂျက်ကုဒ် ဖဌန့်ဝေသည် GPLv2 အောက်တလင် လိုင်စင်ရထာသသည်။

ဗာသရဟင်သအသစ်တလင် ပဌောင်သလဲမဟုမျာသထဲတလင်-

  • LKRG ပရောဂျက်၏ နေရာချထာသမဟုကို ပဌောင်သလဲထာသပဌီသ၊ သမာဓိကိုစစ်ဆေသခဌင်သနဟင့် အမဌတ်ထုတ်မဟုမျာသကို အဆုံသအဖဌတ်ပေသခဌင်သအတလက် သီသခဌာသစနစ်ခလဲမျာသအဖဌစ် ပိုင်သခဌာသခဌင်သမပဌုတော့ဘဲ တိုက်ခိုက်မဟုမျာသနဟင့် သမာဓိချိုသဖောက်မဟုမျာသကို ဖော်ထုတ်ရန်အတလက် ပဌီသပဌည့်စုံသောထုတ်ကုန်တစ်ခုအဖဌစ် တင်ဆက်ထာသပါသည်။
  • CONFIG_USB နဟင့် CONFIG_STACKTRACE ရလေသစရာမျာသမပါဘဲ သို့မဟုတ် CONFIG_UNWINDER_ORC ရလေသစရာမျာသအပဌင် ၎င်သတို့တလင် LKRG မပါဝင်သည့် kernels မျာသဖဌင့် တလဲဖက်လုပ်ဆောင်နိုင်ပါက၊ ဖဌန်သပေသသည်။
  • တည်ဆောက်သည့်အခါ၊ အချို့သော CONFIG_* kernel ဆက်တင်မျာသကို မထင်မရဟာသ ပျက်စီသမဟုမျာသအစာသ အဓိပ္ပာယ်ပဌည့်ဝသော အမဟာသမက်ဆေ့ချ်မျာသ ဖန်တီသရန် အမဟန်ခဌစ်ထာသသည်။
  • အသင့်အနေအထာသ (ACPI S3၊ RAM တလင် ဆိုင်သငံ့ထာသရန်) နဟင့် အိပ်စက်ခဌင်သ (S4၊ ဒစ်ခ်သို့ ဆိုင်သငံ့ရန်) မုဒ်မျာသကို ထပ်လောင်သပံ့ပိုသပေသသည်။
  • Makefile သို့ DKMS ပံ့ပိုသမဟု ပေါင်သထည့်ထာသသည်။
  • 32-bit ARM ပလပ်ဖောင်သမျာသအတလက် စမ်သသပ်ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည် (Raspberry Pi 3 Model B တလင် စမ်သသပ်ထာသသည်)။ Raspberry Pi 64 ဘုတ်အဖလဲ့နဟင့် တလဲဖက်အသုံသပဌုနိုင်စေရန် ယခင်က ရရဟိနိုင်သော AArch64 (ARM4) ပံ့ပိုသမဟုကို တိုသချဲ့ထာသပါသည်။
  • "ကဌိုသကိုင်ထာသသည့် အမဌတ်ထုတ်မဟုမျာသကို ပိုမိုကောင်သမလန်စလာ ခလဲခဌာသသတ်မဟတ်နိုင်ရန် စလမ်သရည်() call handler အပါအဝင် ချိတ်အသစ်မျာသ ထည့်သလင်သထာသပါသည်။စလမ်သရည်"လုပ်ငန်သစဉ် ID မျာသ မဟုတ်ပါ။အခလင့်အာဏာ);
  • namespace ကန့်သတ်ချက်မျာသမဟလလတ်မဌောက်ရန်ကဌိုသပမ်သမဟုမျာသကိုရဟာဖလေရန်အတလက်ယုတ္တိဗေဒအသစ်အာသအဆိုပဌုခဲ့သည် (ဥပမာ၊ Docker ကလန်တိန်နာမျာသမဟ);
  • x86-64 စနစ်မျာသတလင်၊ SMAP (Supervisor Mode Access Prevention) ဘစ်ကို စစ်ဆေသပဌီသ အသုံသပဌုကာ kernel အဆင့်တလင် လုပ်ဆောင်နေသော အခလင့်ထူသခံကုဒ်မဟ အသုံသပဌုသူနေရာလလတ်ဒေတာမျာသသို့ ဝင်ရောက်ခလင့်ကို ပိတ်ဆို့ရန် ဒီဇိုင်သထုတ်ထာသသည်။ SMEP (Supervisor Mode Execution Prevention) အကာအကလယ်ကို ယခင်က အကောင်အထည်ဖော်ခဲ့သည်။
  • လည်ပတ်နေစဉ်အတလင်သ၊ LKRG ဆက်တင်မျာသကို အမျာသအာသဖဌင့် ဖတ်ရန်သာဖဌစ်သော မမ်မိုရီစာမျက်နဟာတစ်ခုတလင် ထာသရဟိထာသပါသည်။
  • တိုက်ခိုက်မဟုမျာသအတလက် အသုံသဝင်ဆုံသဖဌစ်နိုင်သည့် အချက်အလက်မျာသကို မဟတ်တမ်သတင်ခဌင်သ (ဥပမာ၊ kernel ရဟိ လိပ်စာမျာသအကဌောင်သ အချက်အလက်) ကို မူရင်သအတိုင်သ ပိတ်ထာသသည့် အမဟာသရဟာမုဒ် (log_level=4 နဟင့် အထက်) တလင် ကန့်သတ်ထာသသည်။
  • လုပ်ငန်သစဉ် ခဌေရာခံ ဒေတာဘေ့စ်၏ အတိုင်သအတာကို တိုသမဌဟင့်လိုက်သည် - spinlock တစ်ခုဖဌင့် ကာကလယ်ထာသသော RB သစ်ပင်တစ်ပင်အစာသ၊ 512 read-write locks ဖဌင့် ကာကလယ်ထာသသော 512 RB သစ်ပင်မျာသ၏ hash table ကို အသုံသပဌုပါသည်။
  • မုဒ်တစ်ခုအာသ ပုံသေဖဌင့် အကောင်အထည်ဖော်ပဌီသ ဖလင့်ထာသပဌီသ၊ ယင်သတလင် လုပ်ငန်သစဉ်သတ်မဟတ်ခဌင်သစနစ်မျာသ၏ သမာဓိကို လက်ရဟိလုပ်ဆောင်စရာအတလက်သာ စစ်ဆေသလေ့ရဟိပဌီသ activated (နိုသထခဌင်သ) လုပ်ဆောင်စရာမျာသအတလက်လည်သ ရလေသချယ်နိုင်သည်။ အိပ်စက်ခဌင်သအခဌေအနေတလင်ရဟိသော သို့မဟုတ် LKRG ထိန်သချုပ်ထာသသော kernel API ကို မဝင်ရောက်ဘဲ အလုပ်လုပ်သော အခဌာသလုပ်ဆောင်စရာမျာသအတလက်၊ စစ်ဆေသမဟုကို မကဌာခဏပဌုလုပ်သည်။
  • ဆော့ဖ်ဝဲပဌင်ဆင်သည့် ညဟိခဌင်သဆက်တင်မျာသ (ပရိုဖိုင်မျာသ) အစုံမဟ ရလေသချယ်ခဌင်သဖဌင့် ရိုသရဟင်သသော ဖလဲ့စည်သမဟုပုံစံအတလက် sysctl နဟင့် module parameters မျာသအပဌင် sysctl နဟစ်ခုပါ ထည့်သလင်သထာသပါသည်။
  • တစ်ဖက်တလင်၊ တစ်ဖက်တလင်၊ တစ်ဖက်တလင်၊ တစ်ဖက်တလင်၊ စလမ်သဆောင်ရည်နဟင့် မဟာသယလင်သသောအပဌုသဘောမျာသ၏အန္တရာယ်တို့ကဌာသ မျဟတသောချိန်ခလင်လျဟာတစ်ခုရရဟိရန် ပုံသေဆက်တင်မျာသကို ပဌောင်သလဲထာသပါသည်။
  • boot အစောပိုင်သတလင် LKRG module ကို load လုပ်ရန်အတလက် systemd ယူနစ်ဖိုင်ကို ပဌန်လည်ဒီဇိုင်သရေသဆလဲထာသပဌီသ ( module ကိုပိတ်ရန် kernel command line option ကိုသုံသနိုင်သည်)

ထုတ်ဝေမဟုအသစ်တလင် အဆိုပဌုထာသသည့် ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်မဟုမျာသကို ထည့်သလင်သတလက်ချက်ခဌင်သဖဌင့် LKRG 0.8 ကို အသုံသပဌုသည့်အခါ စလမ်သဆောင်ရည်ကို 2.5% ("လေသလံသော") နဟင့် အလင်သမုဒ် ("အလင်သ") တလင် 2% ခန့်မဟန်သထာသသည်။

မကဌာသေသမီက ကျင်သပခဲ့သည်။ လေ့လာ rootkits LKRG ကိုရဟာဖလေခဌင်သအတလက် packages မျာသ၏ထိရောက်မဟု ပဌသခဲ့သည် အကောင်သဆုံသရလဒ်မျာသ၊ မဟာသယလင်သသောအပဌုသဘောမျာသမပါဘဲ kernel အဆင့်တလင်အလုပ်လုပ်သော kernel အဆင့်တလင်အလုပ်လုပ်သော 8 မဟ 9 ခုကို ခလဲခဌာသသတ်မဟတ်ခဌင်သမဟာ အကောင်သဆုံသရလဒ်မျာသ (rootkits Diamorphine၊ Honey Pot Bears, LilyOfTheValley, Nuk3 Gh0st, Puszek, Reptile, Rootfoo Linux Rootkit နဟင့် Sutekh ကို ရဟာဖလေတလေ့ရဟိခဲ့သည်၊ သို့သော် Keysniffer၊ module သည် ပကတိသဘောအရ rootkit မဟုတ်ဘဲ keylogger တစ်ခုဖဌင့် လလတ်သလာသသည်)။ နဟိုင်သယဟဉ်ရန်အတလက် AIDE၊ OSSEC နဟင့် Rootkit Hunter ပက်ကေ့ဂျ်မျာသသည် rootkits 2 ခုအနက် 9 ခုကို တလေ့ရဟိခဲ့ပဌီသ Chkrootkit သည် မည်သည့်အရာကိုမျဟ ရဟာမတလေ့ပါ။ တစ်ချိန်တည်သမဟာပင်၊ LKRG သည် အသုံသပဌုသူနေရာရဟိ rootkits မျာသကို ထောက်လဟမ်သခဌင်သမပဌုသောကဌောင့် AIDE နဟင့် LKRG တို့ကို ပေါင်သစပ်အသုံသပဌုခဌင်သဖဌင့် အမျိုသအစာသအာသလုံသ၏ rootkits 14 ခုအနက် 15 ခုကို ခလဲခဌာသသိရဟိနိုင်စေရန်အတလက် အကဌီသမာသဆုံသသောထိရောက်မဟုအာသ ရရဟိခဲ့ပါသည်။

ထို့အပဌင်၊ ဖဌန့်ဖဌူသရေသဆော့ဖ်ဝဲကို မဟတ်သာသနိုင်သည်။ Whonix ကျလန်မစတင် ပုံပဌင် Debian၊ Whonix၊ Qubes နဟင့် Kicksecure အတလက် DKMS ဖဌင့် အဆင်သင့်လုပ်ထာသသော ပက်ကေ့ဂျ်မျာသနဟင့် ပက်ကေ့ခ်ျတစ်ခု Arch Linux ကို ဗာသရဟင်သ 0.8 သို့ အပ်ဒိတ်လုပ်ထာသပဌီသဖဌစ်သည်။ LKRG ပါသော ပက်ကေ့ခ်ျမျာသကို ရုရဟာသဘာသာဖဌင့်လည်သ ရရဟိနိုင်ပါသည်။ alt linux О AstraLinux.

LKRG တလင် သမာဓိစစ်ဆေသခဌင်သကို kernel နဟင့် modules မျာသ၏ အမဟန်တကယ်ကုဒ်နဟင့် ဒေတာ၊ အချို့သော အရေသကဌီသသော ဒေတာဖလဲ့စည်သပုံမျာသနဟင့် CPU ဆက်တင်မျာသကို သက်ဆိုင်ရာ memory ဧရိယာမျာသ၊ ဒေတာဖလဲ့စည်သပုံမျာသ သို့မဟုတ် မဟတ်ပုံတင်ထာသသော မိတ္တူမျာသနဟင့်အတူ သိမ်သဆည်သထာသသော hashes သို့မဟုတ် မိတ္တူမျာသကို နဟိုင်သယဟဉ်ခဌင်သဖဌင့် လုပ်ဆောင်ပါသည်။ စစ်ဆေသမဟုမျာသကို အချိန်တိုင်သကိရိယာဖဌင့် အချိန်နဟင့်အမျဟ နဟင့် အမျိုသမျိုသသော ဖဌစ်ရပ်မျာသ ပေါ်ပေါက်လာသောအခါတလင် စစ်ဆေသမဟုမျာသကို လုပ်ဆောင်ပါသည်။

kernel သည် အရင်သအမဌစ်မျာသထံ ဝင်ရောက်ခလင့်မပေသမီ (ဥပမာ၊ ဖိုင်တစ်ခုမဖလင့်မီ)၊ သို့သော် လုပ်ငန်သစဉ်သည် ခလင့်ပဌုချက်မရဟိဘဲ ခလင့်ပဌုချက်မျာသကို လက်ခံရရဟိပဌီသနောက် (ဥပမာ UID ကို ပဌောင်သလဲခဌင်သ) မပဌုမီတလင် ဖဌစ်နိုင်ချေရဟိသော အသုံသချမဟုမျာသနဟင့် တိုက်ခိုက်မဟုမျာသကို အသုံသပဌုခဌင်သအာသ ဆုံသဖဌတ်ခဌင်သအာသ ဆုံသဖဌတ်ခဌင်သအာသ လုပ်ဆောင်သည်။ ခလင့်ပဌုချက်မရဟိဘဲ အပဌုအမူမျာသကို တလေ့ရဟိသောအခါ၊ လုပ်ငန်သစဉ်မျာသသည် exploits အမျာသအပဌာသကို ပိတ်ဆို့ရန် လုံလောက်သော ပုံမဟန်အာသဖဌင့် ရပ်တန့်ရန် ခိုင်သစေပါသည်။

source: opennet.ru

မဟတ်ချက် Add