SEV (Secure Encrypted Virtualization) ကာကွယ်မှု ယန္တရားကို ကျော်လွှားနိုင်စေမည့် AMD CPU များတွင် အားနည်းချက်

သတင်းအချက်အလက်လုံခြုံရေးဆိုင်ရာ Helmholtz Center (CISPA) မှသုတေသီများသည် hypervisor သို့မဟုတ် host system administrator မှ virtual machines များဝင်ရောက်စွက်ဖက်ခြင်းမှကာကွယ်ရန် virtualization စနစ်များတွင်အသုံးပြုသော AMD SEV (Secure Encrypted Virtualization) လုံခြုံရေးယန္တရားအား အပေးအယူလုပ်ရန် CacheWarp တိုက်ခိုက်မှုနည်းလမ်းအသစ်ကို ထုတ်ပြန်ခဲ့သည်။ အဆိုပြုထားသောနည်းလမ်းသည် hypervisor သို့ဝင်ရောက်ခွင့်ရှိသော တိုက်ခိုက်သူအား ပြင်ပကုဒ်ကိုလုပ်ဆောင်ရန်နှင့် AMD SEV ကိုအသုံးပြု၍ ကာကွယ်ထားသော virtual machine တွင် အခွင့်ထူးများတိုးစေသည်။

တိုက်ခိုက်မှုသည် INVD ပရိုဆက်ဆာ ညွှန်ကြားချက်ကို လုပ်ဆောင်နေစဉ်အတွင်း ကက်ရှ်၏ မှားယွင်းလုပ်ဆောင်မှုကြောင့် ဖြစ်ပေါ်လာသော အားနည်းချက် (CVE-2023-20592) ကို အခြေခံ၍ တိုက်ခိုက်မှုသည် မန်မိုရီနှင့် ကက်ရှ်တွင် ဒေတာမတူညီမှုကို ရရှိစေရန် အကူအညီဖြင့်၊ နှင့် SEV-ES နှင့် SEV-SNP တိုးချဲ့မှုများကို အခြေခံ၍ လုပ်ဆောင်သည့် virtual machine memory ၏ ခိုင်မာမှုကို ထိန်းသိမ်းရန်အတွက် ယန္တရားများကို ရှောင်ကွင်းပါ။ အားနည်းချက်သည် AMD EPYC ပရိုဆက်ဆာများကို ပထမမျိုးဆက်မှ တတိယမျိုးဆက်အထိ သက်ရောက်မှုရှိသည်။

တတိယမျိုးဆက် AMD EPYC ပရိုဆက်ဆာ (Zen 3) အတွက်၊ AMD မှ ယမန်နေ့က ထုတ်ပြန်သော နိုဝင်ဘာလ မိုက်ခရိုကုဒ်အပ်ဒိတ်တွင် ပြဿနာကို ဖြေရှင်းပြီးဖြစ်သည် (ပြင်ဆင်မှုသည် မည်သည့်စွမ်းဆောင်ရည်ကိုမျှ ကျဆင်းစေခြင်းမရှိပါ)။ AMD EPYC (Zen 1 နှင့် Zen 2) ၏ ပထမနှင့် ဒုတိယမျိုးဆက်များအတွက်၊ ဤ CPU များသည် virtual machines အတွက် သမာဓိထိန်းချုပ်မှုကို ပံ့ပိုးပေးသည့် SEV-SNP တိုးချဲ့မှုကို မပံ့ပိုးနိုင်သောကြောင့် အကာအကွယ်မပေးထားပါ။ “Zen 4” microarchitecture ကိုအခြေခံ၍ AMD AMD EPYC “Genoa” ပရိုဆက်ဆာများ၏ စတုတ္ထမျိုးဆက်သည် အားနည်းချက်မရှိပါ။

AMD SEV နည်းပညာကို Amazon Web Services (AWS)၊ Google Cloud၊ Microsoft Azure နှင့် Oracle Compute Infrastructure (OCI) ကဲ့သို့သော cloud ပံ့ပိုးပေးသူများမှ virtual machine isolation အတွက် အသုံးပြုပါသည်။ AMD SEV အကာအကွယ်ကို virtual machine memory ၏ ဟာ့ဒ်ဝဲအဆင့် ကုဒ်ဝှက်ခြင်းမှတဆင့် လုပ်ဆောင်ပါသည်။ ထို့အပြင်၊ SEV-ES (Encrypted State) တိုးချဲ့မှုသည် CPU မှတ်ပုံတင်မှုများကို ကာကွယ်ပေးသည်။ လက်ရှိဧည့်သည်စနစ်တွင်သာ ကုဒ်ဝှက်ထားသောဒေတာကို ဝင်ရောက်ကြည့်ရှုနိုင်ပြီး အခြား virtual machines များနှင့် hypervisor သည် ဤမှတ်ဉာဏ်ကို ဝင်ရောက်ရန် ကြိုးစားသောအခါတွင် ကုဒ်ဝှက်ထားသော ဒေတာအစုတစ်ခုကို လက်ခံရရှိမည်ဖြစ်သည်။

AMD EPYC ပရိုဆက်ဆာများ၏ တတိယမျိုးဆက်သည် SEV-SNP (Secure Nested Paging) ကို nested memory page tables များ၏ လုံခြုံစွာလုပ်ဆောင်မှုကို သေချာစေသည့် တိုးချဲ့မှုတစ်ခုကို မိတ်ဆက်ပေးခဲ့သည်။ ယေဘူယျမှတ်ဉာဏ် ကုဒ်ဝှက်ခြင်းနှင့် မှတ်ပုံတင်ခြင်း သီးခြားခွဲထုတ်ခြင်းအပြင်၊ SEV-SNP သည် hypervisor မှ VM သို့ ပြောင်းလဲမှုများကို တားဆီးခြင်းဖြင့် မှတ်ဉာဏ်ခိုင်မာမှုကို ကာကွယ်ရန် နောက်ထပ်အစီအမံများကို လုပ်ဆောင်ပါသည်။ ကုဒ်ဝှက်ခြင်းသော့များကို ARM ဗိသုကာကိုအခြေခံ၍ ချစ်ပ်တွင်တည်ဆောက်ထားသော သီးခြား PSP (Platform Security Processor) ပရိုဆက်ဆာ၏ဘေးတွင် စီမံခန့်ခွဲသည်။

အဆိုပြုထားသော တိုက်ခိုက်မှုနည်းလမ်း၏ အနှစ်သာရမှာ ကက်ရှ်တွင် စုဆောင်းထားသော အချက်အလက်များကို မှတ်ဉာဏ်ထဲသို့ မစွန့်ပစ်ဘဲ ညစ်ပတ်သောစာမျက်နှာများ၏ ကက်ရှ်ရှိ အကွက်များ (လိုင်းများ) ကို ပျက်ပြယ်စေရန် INVD ညွှန်ကြားချက်ကို အသုံးပြုရန်ဖြစ်သည်။ ထို့ကြောင့်၊ Memory အခြေအနေကို မပြောင်းလဲဘဲ ပြောင်းလဲထားသော အချက်အလက်များကို ကက်ရှ်မှ နှင်ထုတ်နိုင်စေသည့် နည်းလမ်းဖြစ်သည်။ တိုက်ခိုက်မှုတစ်ခုလုပ်ဆောင်ရန်၊ ၎င်းသည် virtual machine ၏လည်ပတ်မှုကိုနေရာနှစ်ခုတွင်နှောင့်ယှက်ရန် software ခြွင်းချက် (fault injection) ကိုအသုံးပြုရန်အဆိုပြုထားသည်- ပထမတွင်၊ attacker သည်စုဆောင်းထားသော memory write operations အားလုံးကိုပြန်လည်သတ်မှတ်ရန် "wbnoinvd" ညွှန်ကြားချက်ကိုခေါ်သည်။ ကက်ရှ်၊ ဒုတိယနေရာမှာတော့ “invd” ဆိုတဲ့ ညွှန်ကြားချက်ကို memory ထဲမှာ မပေါ်ဘဲ ဟောင်းနွမ်းနေတဲ့ အခြေအနေဆီကို ပြန်လာတဲ့ write operations တွေကို ခေါ်ပါတယ်။

အားနည်းချက်များအတွက် သင့်စနစ်များကို စစ်ဆေးရန်အတွက်၊ သင်သည် AMD SEV မှတစ်ဆင့် ကာကွယ်ထားသော virtual machine တစ်ခုသို့ ခြွင်းချက်တစ်ခုကို ထည့်သွင်းခွင့်ပြုပြီး memory သို့ ပြန်လည်သတ်မှတ်မထားသော VM အတွင်းရှိ ပြောင်းလဲမှုများကို ပြန်လည်ပြုလုပ်နိုင်စေမည့် exploit prototype ကို ထုတ်ဝေလိုက်ပါသည်။ stack ပေါ်ရှိ ပြန်ပို့လိပ်စာဟောင်းကို ပြန်ပေးခြင်းဖြင့် ပရိုဂရမ်၏စီးဆင်းမှုကို ပြောင်းလဲရန် သို့မဟုတ် အထောက်အထားစိစစ်ခြင်းဆိုင်ရာ ရည်ညွှန်းချက်တန်ဖိုးကို ပြန်ပေးခြင်းဖြင့် ယခင်က စစ်မှန်ကြောင်းအတည်ပြုထားသည့် စက်ရှင်ဟောင်းတစ်ခု၏ လော့ဂ်အင်ပါရာမီတာများကို အသုံးပြုရန် အသုံးပြုနိုင်သည်။

ဥပမာအားဖြင့်၊ သုတေသီများသည် ipp-crypto စာကြည့်တိုက်ရှိ RSA-CRT အယ်လဂိုရီသမ်ကို အကောင်အထည်ဖော်ရာတွင် Bellcore တိုက်ခိုက်မှုကို လုပ်ဆောင်ရန် CacheWarp နည်းလမ်းကို အသုံးပြု၍ ဖြစ်နိုင်ခြေကို သရုပ်ပြခဲ့ပြီး၊ ၎င်းသည် ဒစ်ဂျစ်တယ်တစ်ခုအား တွက်ချက်ရာတွင် အမှားအယွင်း အစားထိုးခြင်းဖြင့် သီးသန့်သော့ကို ပြန်လည်ရယူနိုင်စေခဲ့သည်။ လက်မှတ်။ ၎င်းသည် ဧည့်သည်စနစ်သို့အဝေးမှချိတ်ဆက်သည့်အခါ session verification parameters များကို OpenSSH သို့ပြောင်းလဲနိုင်ပုံကိုလည်းပြသပြီး Ubuntu 20.04 တွင် root လုပ်ပိုင်ခွင့်ရရှိရန် sudo utility ကိုအသုံးပြုသည့်အခါ အတည်ပြုချက်အခြေအနေကို ပြောင်းလဲနိုင်သည်။ exploit ကို AMD EPYC 7252, 7313P နှင့် 7443 ပရိုဆက်ဆာများဖြင့် စနစ်များတွင် စမ်းသပ်ထားသည်။

source: opennet.ru

မှတ်ချက် Add