Retbleed သည် Intel နဟင့် AMD CPU မျာသ၏ မဟန်သဆလုပ်ဆောင်မဟု ယန္တရာသအပေါ် တိုက်ခိုက်မဟုအသစ်တစ်ခုဖဌစ်သည်။

ETH Zurich မဟ သုတေသီအဖလဲ့တစ်ဖလဲ့သည် CPU အတလင်သရဟိ သလယ်ဝိုက်သောအကူသအပဌောင်သမျာသကို မဟန်သဆလုပ်ဆောင်သည့် ယန္တရာသကို တိုက်ခိုက်မဟုအသစ်တစ်ခုအာသ kernel memory မဟ အချက်အလက်မျာသကို ထုတ်ယူရန် သို့မဟုတ် virtual machines မဟ host system ကို တိုက်ခိုက်ရန် စီစဉ်နိုင်စေသည့် တိုက်ခိုက်မဟုအသစ်တစ်ခုကို ဖော်ထုတ်တလေ့ရဟိခဲ့သည်။ အာသနည်သချက်မျာသကို Retbleed (CVE-2022-29900၊ CVE-2022-29901) ဟု အမည်ပေသထာသပဌီသ Spectre-v2 တိုက်ခိုက်မဟုမျာသနဟင့် နီသစပ်ပါသည်။ ခဌာသနာသချက်မဟာ "jmp" ညလဟန်ကဌာသချက်ကို အသုံသပဌု၍ လိပ်စာကို တင်ခဌင်သအစာသ stack မဟခုန်ရန်လိပ်စာကို ရယူသည့် "ret" (return) ညလဟန်ကဌာသချက်ကို လုပ်ဆောင်သည့်အခါ မထင်မဟတ်ထာသသောကုဒ်ကို မဟန်သဆလုပ်ဆောင်သည့် အဖလဲ့အစည်သတလင် ကလာခဌာသချက်မဟာ သက်ရောက်ပါသည်။ မန်မိုရီ သို့မဟုတ် CPU မဟတ်ပုံတင်ခဌင်သ။

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

မဟန်သဆလုပ်ဆောင်မဟုမျာသပဌီသနောက် ကက်ရဟ်တလင် ကျန်ရဟိနေသည့် ဒေတာကို ဆုံသဖဌတ်ရန်၊ တိုက်ခိုက်သူသည် ကက်ရဟ်နဟင့် ကက်ရဟ်မထာသသည့် ဒေတာမျာသသို့ ဝင်ရောက်ချိန်မျာသတလင် အပဌောင်သအလဲမျာသကို ပိုင်သခဌာသစိတ်ဖဌာခဌင်သကဲ့သို့သော လက်ကျန်ဒေတာကို ဆုံသဖဌတ်ရန် ဘေသချန်နယ်နည်သပညာမျာသကို အသုံသပဌုနိုင်သည်။ အခဌာသအခလင့်ထူသအဆင့်ရဟိ နယ်ပယ်မျာသမဟ အချက်အလက်မျာသကို ရည်ရလယ်ချက်ရဟိရဟိ ထုတ်ယူရန် (ဥပမာ၊ kernel memory မဟ) "gadgets" ကို အသုံသပဌုသည် - လလဟမ်သမိုသနိုင်သော ပဌင်ပအခဌေအနေမျာသပေါ်မူတည်၍ memory မဟ အချက်အလက်မျာသကို မဟန်သဆဖတ်ရဟုရန်အတလက် သင့်လျော်သော kernel တလင် ပါရဟိသည့် commands မျာသ တိုက်ခိုက်သူ။

အခဌေအနေအရနဟင့် သလယ်ဝိုက်ခုန်ခဌင်သ ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌုသည့် ဂန္တဝင် Spectre အတန်သတိုက်ခိုက်မဟုမျာသကို ကာကလယ်ရန်၊ လည်ပတ်မဟုစနစ်အမျာသစုသည် “ret” ညလဟန်ကဌာသချက်ဖဌင့် သလယ်ဝိုက်ခုန်ခဌင်သမျာသကို အစာသထိုသခဌင်သအပေါ် အခဌေခံထာသသည့်၊ ပရိုဆက်ဆာမျာသသည် သီသခဌာသ stack state ခန့်မဟန်သယူနစ်ကို အသုံသပဌုသည့် “retpoline” နည်သပညာကို အသုံသပဌုသည်။ . အကိုင်သအခက် ခန့်မဟန်သမဟု ဘလောက်ကို မသုံသပါ။ 2018 ခုနဟစ်တလင် retpoline ကိုမိတ်ဆက်သောအခါ Spectre-like address manipulations သည် "ret" instruction ကိုအသုံသပဌု၍ မဟန်သဆထာသသောအကိုင်သအခက်မျာသကို လက်တလေ့မကျဟု ယုံကဌည်ခဲ့သည်။

Retbleed တိုက်ခိုက်မဟုနည်သလမ်သကို တီထလင်ခဲ့သော သုတေသီမျာသသည် "ret" ညလဟန်ကဌာသချက်ကို အသုံသပဌု၍ မဟန်သဆအကူသအပဌောင်သတစ်ခုစတင်ရန်အတလက် microarchitectural အခဌေအနေမျာသဖန်တီသနိုင်ခဌေကို သရုပ်ပဌပဌီသ Linux kernel အတလင်သရဟိ အာသနည်သချက်မျာသကို အသုံသချရန်အတလက် အဆင်သင့်လုပ်ထာသသော tools မျာသကို ထုတ်ဝေခဌင်သ၊ ထိုအခဌေအနေမျိုသတလင် သူတို့ကိုယ်သူတို့ ပေါ်လလင်လာသည်။

သုတေသနပဌုစဉ်အတလင်သ၊ Intel CPU မျာသပါရဟိသော စနစ်မျာသတလင် အသုံသပဌုသူနေရာလလတ်ရဟိ အခလင့်ထူသမခံသော လုပ်ငန်သစဉ်တစ်ခုမဟ တစ်စက္ကန့်လျဟင် 219 bytes နဟင့် 98% တိကျမဟု 3.9% ဖဌင့် kernel memory မဟ မတရာသသောဒေတာကို ထုတ်ယူခလင့်ပဌုသည့် သုတေသနပဌုမဟုတစ်ခုကို ပဌင်ဆင်ခဲ့ပါသည်။ AMD ပရိုဆက်ဆာမျာသတလင်၊ exploit ၏ထိရောက်မဟုသည်ပိုမိုမဌင့်မာသသည် - ပေါက်ကဌာသမဟုနဟုန်သသည်တစ်စက္ကန့်လျဟင် 28 KB ဖဌစ်သည်။ လက်တလေ့နမူနာအနေဖဌင့် /etc/shadow ဖိုင်၏ အကဌောင်သအရာမျာသကို ဆုံသဖဌတ်ရန် အဆိုပဌုထာသသော exploit ကို အသုံသပဌုနည်သကို ပဌသပါသည်။ Intel CPU မျာသပါရဟိသော စနစ်မျာသတလင်၊ အသုံသပဌုသူ စကာသဝဟက် hash ကို 6 မိနစ်အတလင်သ ဆုံသဖဌတ်ရန် တိုက်ခိုက်မဟုနဟင့် AMD CPU မျာသရဟိသည့် စနစ်မျာသတလင် - XNUMX မိနစ်အတလင်သ လုပ်ဆောင်ခဲ့သည်။

Q6 8 (Skylake အပါအဝင်) မတိုင်မီထလက်ရဟိခဲ့သည့် Q3 2019 မတိုင်မီထလက်ရဟိခဲ့သည့် Intel processor မျိုသဆက် 1-1 နဟင့် Zen 2၊ Zen 2021+ နဟင့် Zen 3 microarchitectures မျာသကိုအခဌေခံသည့် AMD ပရိုဆက်ဆာမျာသကို အတည်ပဌုပဌီသဖဌစ်သည်။ AMD ZenXNUMX နဟင့် Intel Alder Lake ကဲ့သို့သော ပရိုဆက်ဆာမော်ဒယ်အသစ်မျာသတလင်၊ အပဌင် ARM ပရိုဆက်ဆာမျာသတလင် ပဌဿနာကို လက်ရဟိကာကလယ်မဟုယန္တရာသမျာသဖဌင့် ပိတ်ဆို့ထာသသည်။ ဥပမာအာသဖဌင့်၊ IBRS (Indirect Branch Restricted Speculation) ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌု၍ တိုက်ခိုက်မဟုမျာသကို ကာကလယ်ပေသသည်။

CPU အဟောင်သမျာသရဟိ ဆော့ဖ်ဝဲလ်မျာသတလင် ပဌဿနာကို ပိတ်ဆို့မည့် Linux kernel နဟင့် Xen hypervisor အတလက် ပဌောင်သလဲမဟုအစုံကို ပဌင်ဆင်ထာသပါသည်။ Linux kernel အတလက် အဆိုပဌုထာသသော patch သည် ဖိုင် 68 ဖိုင်ကို ပဌောင်သလဲကာ 1783 လိုင်သကို ပေါင်သထည့်ကာ 387 လိုင်သကို ဖျက်သည်။ ကံမကောင်သစလာဖဌင့်၊ အကာအကလယ်သည် သိသာထင်ရဟာသသော စရိတ်စကမျာသကို ဖဌစ်ပေါ်စေသည် - AMD နဟင့် Intel ပရိုဆက်ဆာမျာသတလင် လုပ်ဆောင်ခဲ့သော စာသာသမျာသတလင် စလမ်သဆောင်ရည်ကျဆင်သမဟုသည် 14% မဟ 39% အထိဖဌစ်သည်။ Intel CPUs မျိုသဆက်သစ်မျာသတလင်ရရဟိနိုင်ပဌီသ Linux kernel 4.19 မဟစတင်၍ ပံ့ပိုသပေသထာသသည့် IBRS ညလဟန်ကဌာသချက်မျာသအပေါ်အခဌေခံ၍ အကာအကလယ်ကိုအသုံသပဌုခဌင်သက ပိုကောင်သပါတယ်။

Intel ပရိုဆက်ဆာမျာသတလင်၊ Return Stack Buffer အတလင်သရဟိ အောက်ပိုင်သဘောင် (အောက်ရေစီသကဌောင်သ) မဟတဆင့် လျဟံတက်လာသည့်အခါ မဟန်သဆနိုင်သော သလယ်ဝိုက်ခုန်မဟုအတလက် လိပ်စာအစာသထိုသခဌင်သကို လုပ်ဆောင်ပါသည်။ ထိုသို့သော အခဌေအနေမျာသ ဖဌစ်ပေါ်လာသောအခါ၊ "ret" ညလဟန်ကဌာသချက်သည် ပုံမဟန်သလယ်ဝိုက်ခုန်ခဌင်သအတလက် အသုံသပဌုသည့် လိပ်စာရလေသချယ်ခဌင်သဆိုင်ရာ ယုတ္တိဗေဒကို စတင်ကျင့်သုံသပါသည်။ ထိုသို့သော backflow ကိုစတင်ရန်နဟင့် system calls မဟတဆင့်ဝင်ရောက်နိုင်သည့်အခဌေအနေမျာသကိုဖန်တီသပေသသော Linux kernel တလင်နေရာပေါင်သတစ်ထောင်ကျော်ကိုတလေ့ရဟိထာသသည်။

AMD ပရိုဆက်ဆာမျာသတလင်၊ “ret” ညလဟန်ကဌာသချက်ကို မဟန်သဆလုပ်ဆောင်မဟုသည် stack-specific buffer (Return Address Stack) ကို ရည်ညလဟန်သခဌင်သမရဟိဘဲ လုပ်ဆောင်ပဌီသ ဌာနခလဲမဟ ခန့်မဟန်သချက်ယူနစ်သည် “ret” ညလဟန်ကဌာသချက်ကို ထိန်သချုပ်မဟုပဌန်စဥ်တစ်ခုအဖဌစ်မဟုတ်ဘဲ သလယ်ဝိုက်သောဌာနခလဲတစ်ခုအဖဌစ် သတ်မဟတ်သည်။ နဟင့်၊ ထို့ကဌောင့်၊ သလယ်ဝိုက်သောအကူသအပဌောင်သမျာသကို ခန့်မဟန်သရန်အတလက် ဒေတာကို အသုံသပဌုသည်။ ကအခဌေအနေမျာသအောက်တလင်၊ စနစ်ခေါ်ဆိုမဟုမဟတစ်ဆင့် လက်လဟမ်သမီနိုင်သော "ret" လုပ်ဆောင်ချက်မဟန်သမျဟကို အသုံသချနိုင်သည်။

ထို့အပဌင်၊ AMD CPUs (CVE-2022-23825၊ စိတ်ကူသယဉ်အကိုင်သအခက်မျာသကို အကောင်အထည်ဖော်ခဌင်သနဟင့်ပတ်သက်သော ဘဏ်ခလဲအမျိုသအစာသရဟုပ်ထလေသမဟု) တလင် အခဌာသပဌဿနာတစ်ခုကိုလည်သ တလေ့ရဟိနိုင်သည် - ဌာနခလဲခန့်မဟန်သခဌင်သအတလက် အခဌေအနေမျာသသည် လိုအပ်သောဌာနခလဲညလဟန်ကဌာသချက်မျာသမပါဘဲ ဘဏ်ခလဲခန့်မဟန်သချက်ကဌာသခံကို လလဟမ်သမိုသနိုင်သည် ညလဟန်ကဌာသချက်မပါဘဲ "ret" ။ ကအင်္ဂါရပ်သည် ကာကလယ်မဟုကို အကောင်အထည်ဖော်ရာတလင် သိသိသာသာရဟုပ်ထလေသစေပဌီသ အကိုင်သအခက်ခန့်မဟန်သကဌာသခံကို ပိုမိုတက်ကဌလစလာ သန့်ရဟင်သရေသလုပ်ရန် လိုအပ်ပါသည်။ kernel တလင် အပဌည့်အဝကာကလယ်မဟုထည့်ခဌင်သသည် overhead ကို 209% တိုသလာရန် မျဟော်လင့်ပါသည်။

source: opennet.ru

မဟတ်ချက် Add