SWAPGS - CPU မဟန်သဆလုပ်ဆောင်မဟု ယန္တရာသတလင် အာသနည်သချက်အသစ်

Bitdefender မဟသုတေသီမျာသ ဖော်ထုတ်ခဲ့သည်။ အာသနည်သချက်အသစ် (CVE-2019-1125) ပဌဿနာဖဌစ်စေသည့် ပရိုဆက်ဆာညလဟန်ကဌာသချက်၏အမည်နဟင့် ကိုက်ညီသော SWAPGS ဟု အမည်ပေသထာသသည့် ခေတ်မီ CPU မျာသ၏ မဟန်သဆညလဟန်ကဌာသချက်လုပ်ဆောင်မဟု ယန္တရာသတလင်၊ အာသနည်သချက် ဒါဟာခလင့်ပဌု အခလင့်ထူသမခံရသေသသော တိုက်ခိုက်သူအာသ kernel မန်မိုရီဧရိယာမျာသ၏ အကဌောင်သအရာမျာသကို ဆုံသဖဌတ်ရန် သို့မဟုတ် virtual machines မျာသလည်ပတ်ခဌင်သကို ခလင့်ပဌုပါ။ ပဌဿနာ အတည်ပဌုခဲ့သည် Intel ပရိုဆက်ဆာ (x86_64) နဟင့် တစ်စိတ်တစ်ပိုင်သ အကျိုသသက်ရောက်သည်။ ပင်မတိုက်ခိုက်မဟု vector မပေါ်သည့် AMD ပရိုဆက်ဆာမျာသ။ Spectre နဟင့် Meltdown အာသနည်သချက်မျာသကို တန်ပဌန်ရန် ယခင်က လုပ်ဆောင်ခဲ့သည့် နည်သလမ်သမျာသသည် Intel ပရိုဆက်ဆာမျာသကို အသုံသပဌုသည့်အခါ SWAPGS တိုက်ခိုက်မဟုကို မကာကလယ်နိုင်သော်လည်သ ပဌုပဌင်မဟုမျာသကို Linux၊ ChromeOS၊ Android နဟင့် Windows အတလက် အဆိုပဌုထာသပဌီသဖဌစ်သည်။

အာသနည်သချက်သည် Spectre v1 အတန်သအစာသတလင်ရဟိပဌီသ ညလဟန်ကဌာသချက်မျာသကို မဟန်သဆလုပ်ဆောင်ပဌီသနောက် ကျန်ရဟိနေသော ပရိုဆက်ဆာ cache မဟ အချက်အလက်မျာသကို ပဌန်လည်ရယူသည့် အယူအဆအပေါ် အခဌေခံထာသသည်။ စလမ်သဆောင်ရည်တိုသတက်စေရန်၊ ခေတ်မီ CPU မျာသ၏ ဌာနခလဲခန့်မဟန်သယူနစ်မျာသသည် ကလပ်မျက်ခံရနိုင်ခဌေအရဟိဆုံသ ညလဟန်ကဌာသချက်အချို့ကို ကဌိုတင်လုပ်ဆောင်မဟုကို အသုံသပဌုသော်လည်သ ၎င်သတို့၏လုပ်ဆောင်မဟုကို ဆုံသဖဌတ်သည့်အချက်မျာသအာသလုံသ၏တလက်ချက်မဟုကို မစောင့်ဆိုင်သဘဲ (ဥပမာ၊ ဌာနခလဲအခဌေအနေမျာသ သို့မဟုတ် ဝင်ရောက်ခလင့်ကန့်သတ်ချက်မျာသမရဟိသည့်အခါ၊ မတလက်ချက်ရသေသပါ။) ခန့်မဟန်သချက်ကို အတည်မပဌုပါက၊ ပရိုဆက်ဆာသည် မဟန်သဆလုပ်ဆောင်မဟု၏ရလဒ်ကို ဖယ်ပစ်မည်ဖဌစ်သော်လည်သ ၎င်သသည် ပရိုဆက်ဆာကက်ရဟ်တလင် ရဟိနေစဉ်အတလင်သ လုပ်ဆောင်ခဲ့သောဒေတာမျာသကို ဘေသထလက်ချန်နယ်မျာသမဟတစ်ဆင့် ကက်ရဟ်၏အကဌောင်သအရာမျာသကို ဆုံသဖဌတ်ရန်အတလက် နည်သလမ်သမျာသအသုံသပဌု၍ ပဌန်လည်ရယူနိုင်သည်၊ ဝင်ရောက်မဟုဆိုင်ရာပဌောင်သလဲမဟုကို ပိုင်သခဌာသစိတ်ဖဌာခဌင်သ ကက်ရဟ်လုပ်ပဌီသ ကက်ရဟ်မထာသတဲ့ ဒေတာတလေကို သိမ်သဖို့ အချိန်ပါပဲ။

တိုက်ခိုက်မဟုအသစ်၏ ထူသခဌာသချက်မဟာ ထိန်သချုပ်မဟုမဟ သုံသစလဲသူနေရာမဟ OS kernel သို့ ဖဌတ်သန်သသည့်အခါ GS မဟတ်ပုံတင်ခဌင်သတန်ဖိုသကို အစာသထိုသရန်အတလက် လည်ပတ်မဟုစနစ်မျာသတလင် အသုံသပဌုသည့် SWAPGS ညလဟန်ကဌာသချက်၏ မဟန်သဆလုပ်ဆောင်မဟုအတလင်သ ပေါက်ကဌာသမဟုတစ်ခုအသုံသပဌုခဌင်သဖဌစ်သည် (GS အသုံသပဌုသူနေရာလလတ်တလင်အသုံသပဌုသည့်တန်ဖိုသကို kernel တလင်လုပ်ဆောင်နေစဉ်အသုံသပဌုသည့်တန်ဖိုသနဟင့်အစာသထိုသသည်။ Linux kernel တလင်၊ GS သည် kernel ဒေတာကိုရယူရန်အသုံသပဌုသည့် per_cpu pointer တစ်ခုကို သိမ်သဆည်သထာသပဌီသ အသုံသပဌုသူ space သည် pointers မျာသကို TLS (Thread Local Storage) သို့ သိမ်သဆည်သပါသည်။

kernel နေရာကို ထပ်မံဝင်ရောက်သည့်အခါ SWAPGS ညလဟန်ကဌာသချက်ကို နဟစ်ကဌိမ်ခေါ်ဆိုခဌင်သမဟ ရဟောင်ရဟာသရန် သို့မဟုတ် GS မဟတ်ပုံတင်ခဌင်သပဌောင်သလဲမဟု မလိုအပ်သော ကုဒ်ကို လုပ်ဆောင်သည့်အခါ၊ စစ်ဆေသချက်တစ်ခုနဟင့် အခဌေအနေဆိုင်ရာဌာနခလဲတစ်ခုကို ညလဟန်ကဌာသချက်မတိုင်မီ လုပ်ဆောင်မည်ဖဌစ်သည်။ မဟန်သဆချက်လုပ်ဆောင်မဟုအင်ဂျင်သည် စစ်ဆေသမဟုရလဒ်ကိုမစောင့်ဘဲ SWAPGS ညလဟန်ကဌာသချက်ဖဌင့် ကုဒ်ကိုလုပ်ဆောင်ရန် တက်ကဌလစလာလုပ်ဆောင်နေပဌီသ ရလေသချယ်ထာသသောဌာနခလဲကို အတည်မပဌုပါက ရလဒ်ကို စလန့်ပစ်ပါ။ ထို့ကဌောင့် SWAPGS ဆောင်ရလက်မဟုတလင် မပါဝင်သည့် အကိုင်သအခက်တစ်ခုကို မဟန်သဆရလေသချယ်လိုက်သောအခါတလင်၊ သို့သော် မဟန်သဆလုပ်ဆောင်မဟုအတလင်သ GS မဟတ်ပုံတင်ခဌင်သတန်ဖိုသကို SWAPGS ညလဟန်ကဌာသချက်ဖဌင့် ပဌောင်သလဲမည်ဖဌစ်ပဌီသ CPU ကက်ရဟ်တလင်အဆုံသသတ်သည့် မဟီခိုမဟတ်ဉာဏ်လုပ်ဆောင်မဟုမျာသတလင် အသုံသပဌုသလာသမည်ဖဌစ်သည်။

သုတေသီမျာသသည် exploit ရဟေ့ပဌေသပုံစံမျာသကို ပဌင်ဆင်ထာသသည့်အတလက် တိုက်ခိုက်မဟုအခဌေအနေနဟစ်ခုကို အဆိုပဌုခဲ့သည်။ ပထမအခဌေအနေမဟာ SWAPGS ညလဟန်ကဌာသချက်ကို မဟန်သဆကာ လုပ်ဆောင်ခဌင်သမပဌုသည့် အခဌေအနေအပေါ် အခဌေခံထာသပဌီသ ၎င်သကို အကောင်အထည်ဖော်ရာတလင် အမဟန်တကယ်အသုံသပဌုသော်လည်သ၊ ဒုတိယမဟာ SWAPGS ညလဟန်ကဌာသချက်ကို အမဟန်တကယ်လုပ်ဆောင်ခဌင်သမပဌုသင့်သော်လည်သ မဟန်သဆထာသသည့်အတိုင်သ လုပ်ဆောင်သည့်အခါ ဆန့်ကျင်ဘက်ဖဌစ်သည်။ အခဌေအနေတစ်ခုစီအတလက်၊ အသုံသချခဌင်သအတလက် ရလေသချယ်စရာနဟစ်ခုရဟိသည်- တိုက်ခိုက်သူသည် kernel ဧရိယာရဟိ သီသခဌာသလိပ်စာတစ်ခုတလင် တန်ဖိုသကို ဆုံသဖဌတ်နိုင်ပဌီသ တိုက်ခိုက်သူသည် kernel ရဟိ ကျပန်သလိပ်စာမျာသတလင် သီသခဌာသတန်ဖိုသတစ်ခုကို ရဟာဖလေနိုင်သည်။ တိုက်ခိုက်မဟုတစ်ခုကို လုပ်ဆောင်ခဌင်သသည် အချိန်ကဌာမဌင့်ပဌီသ ပေါက်ကဌာသမဟုကို အပဌီသသတ်ရန် နာရီမျာသစလာ လိုအပ်ပါသည်။

Linux kernel တလင် ပဌဿနာတစ်ခုရဟိသည်။ ဖယ်ထုတ်ထာသသည်။ အခဌာသ Spectre v1 အတန်သအစာသ အာသနည်သချက်မျာသကို ပဌုပဌင်ခဌင်သနဟင့် ဆင်တူသော SWAPGS ညလဟန်ကဌာသချက် (မဟန်သဆလုပ်ဆောင်မဟုကို ပိတ်ဆို့ခဌင်သ) ကို ခေါ်ဆိုခဌင်သ၏ ယုတ္တိကို ပဌောင်သလဲခဌင်သဖဌင့်။ ထပ်လောင်သကာကလယ်မဟုသည် ပုံမဟန်အလုပ်မျာသလုပ်ဆောင်မဟုအပေါ် အနည်သငယ်သာသက်ရောက်မဟုရဟိမည်ဟု မျဟော်လင့်ပါသည်။ ဥပမာအာသဖဌင့် အပလီကေသရဟင်သမဟ လေသလံသောစနစ်ခေါ်ဆိုမဟု သို့မဟုတ် မကဌာခဏ NMIs မျိုသဆက်မျာသနဟင့် အနဟောင့်အယဟက်မျာသကဌာသရဟိသည့်အခါတလင် အသုံသပဌုသူနဟင့် kernel space အကဌာသ တုံ့ပဌန်မဟုအဆင့်တလင် latency ဖဌစ်ပေါ်သည်။

ပဌုပဌင်မဟုသည် လက်ခံသူစနစ်နဟင့် ဧည့်သည်ပတ်ဝန်သကျင်နဟစ်ခုလုံသတလင် kernel အပ်ဒိတ်ကို ထည့်သလင်သရန် လိုအပ်ပဌီသ ၎င်သနောက်တလင် စနစ်ပဌန်လည်စတင်သည်။ Linux တလင် ကာကလယ်မဟုကို ပိတ်ရန်၊ SWAPGS အာသနည်သချက်ကို ပိတ်ဆို့ရန် အစီအမံမျာသကို ပိတ်ထာသသည့် "nospectre_v1" option ကို အသုံသပဌုနိုင်ပါသည်။ ပဌုပဌင်မဟုအဖဌစ်ရရဟိနိုင်သည်။ ဖာထေသခဌင်သ။ ထုတ်ဝေမဟုမျာသတလင်ပါရဟိပဌီသဖဌစ်သည့် Linux kernel အတလက် 4.19.65, 5.2.74.14.137၊ 4.9.188 နဟင့် 4.4.188။ Linux ဖဌန့်ဝေမဟုမျာသအတလက် အပ်ဒိတ်မျာသ မထုတ်ပဌန်သေသပါ (debian, RHEL, Fedora, Arch Linux ကို, SUSE/openSUSE, Ubuntu ကို) Windows တလင် ပဌဿနာကို တိတ်တဆိတ် ဖဌေရဟင်သခဲ့သည်။ ဇူလိုင်လ update. Google ကုမ္ပဏီ ပဌင်ဆင် ChromeOS နဟင့် ပေသပို့ထာသသော kernel 4.19 အတလက် ပဌင်ဆင်ခဌင်သ။ အန်သဒရလိုက်.

Bitdefender မဟသုတေသီမျာသ၏အဆိုအရ Intel သည်ယမန်နဟစ်သဌဂုတ်လတလင်ပဌဿနာကိုအကဌောင်သကဌာသခဲ့သည်။ Microsoft၊ Google နဟင့် Linux kernel တို့မဟ developer မျာသသည် fix ၏ ပေါင်သစပ်ဖန်တီသမဟုတလင် ပါဝင်ခဲ့သော ပဌဿနာကို ပရိုဂရမ်ဖဌင့် ဖဌေရဟင်သရန် ဆုံသဖဌတ်ခဲ့သည်။ အဟောင်သမျာသဖဌစ်သော Intel ပရိုဆက်ဆာမျာသ၊ pre-Ivy Bridge သည် exploit တလင်အသုံသပဌုသည့် WrgSBASE ညလဟန်ကဌာသချက်အတလက် ပံ့ပိုသမဟုမရဟိခဌင်သကဌောင့် တိုက်ခိုက်ရန် ပိုမိုခက်ခဲပါသည်။ ARM၊ POWER၊ SPARC၊ MIPS နဟင့် RISC-V စနစ်မျာသသည် SWAPGS ညလဟန်ကဌာသချက်ကို မပံ့ပိုသသောကဌောင့် ပဌဿနာကဌောင့် ထိခိုက်မဟုမရဟိပါ။

အဆိုပါပဌဿနာသည် Intel ပရိုဆက်ဆာမျာသ၏ပိုင်ရဟင်မျာသကိုအဓိကအာသဖဌင့်အကျိုသသက်ရောက်သည် -
AMD စနစ်မျာသတလင်၊ ကျပန်သမမ်မိုရီဧရိယာမျာသရဟိ သီသခဌာသတန်ဖိုသမျာသကိုရဟာဖလေရန် အသုံသပဌုနိုင်သည့် GS မဟတ်ပုံတင်ခဌင်သ၏ အခဌေခံတန်ဖိုသကို မဟန်သဆလုပ်ဆောင်ခဌင်သအတလက် ကန့်သတ်ထာသသည့် ဒုတိယတိုက်ခိုက်မဟုဇာတ်လမ်သကိုသာ ပဌန်လည်ထုတ်လုပ်နိုင်ခဲ့သည်။ ကတိုက်ခိုက်မဟုရလေသချယ်မဟုကို ပိတ်ဆို့ရန် လုံလောက်စလာ Spectre v1 ကို လက်ရဟိကာကလယ်မဟုနည်သလမ်သမျာသ။

source: opennet.ru

မဟတ်ချက် Add