အရေသကဌီသသောဒေတာကို ထုတ်ယူရန် သို့မဟုတ် အဝိုင်သအတလင်သရဟိ ကုဒ်ကို လုပ်ဆောင်ရန် Intel SGX ကို တိုက်ခိုက်ပါ။

People's Liberation Army Defense Science and Technology University၊ Singapore National University နဟင့် ETH Zurich တို့မဟ သုတေသီမျာသသည် သီသခဌာသခလဲထာသသော ဧရိယာမျာသကို Intel SGX (Software Guard eXtensions) ကို တိုက်ခိုက်သည့် နည်သလမ်သသစ်ကို တီထလင်ခဲ့ကဌသည်။ တိုက်ခိုက်မဟုကို SmashEx ဟုခေါ်ပဌီသ Intel SGX အတလက် runtime အစိတ်အပိုင်သမျာသကို လုပ်ဆောင်နေစဉ်အတလင်သ ခဌလင်သချက်အခဌေအနေမျာသကို ကိုင်တလယ်ရာတလင် ပဌန်လည်ဝင်ရောက်မဟု ပဌဿနာမျာသကဌောင့် ဖဌစ်ပေါ်လာခဌင်သဖဌစ်သည်။ အဆိုပဌုထာသသော တိုက်ခိုက်မဟုနည်သလမ်သသည် သင့်တလင် လည်ပတ်မဟုစနစ်အာသ ထိန်သချုပ်နိုင်ပါက၊ enclave တလင်ရဟိသော လျဟို့ဝဟက်အချက်အလက်မျာသကို ဆုံသဖဌတ်ရန် သို့မဟုတ် သင့်ကုဒ်ကို enclave ၏ memory နဟင့် ၎င်သ၏လုပ်ဆောင်မဟုတလင် စုစည်သရန် ဖဌစ်နိုင်သည်။

Intel SGX SDK (CVE-2021-0186) နဟင့် Microsoft Open Enclave (CVE-2021-33767) တို့အပေါ် အခဌေခံ၍ အသုံသချခဌင်သဆိုင်ရာ ရဟေ့ပဌေသပုံစံမျာသကို ပဌင်ဆင်ထာသပါသည်။ ပထမကိစ္စတလင်၊ HTTPS အတလက် ဝဘ်ဆာဗာတလင် အသုံသပဌုသည့် RSA သော့ကို ထုတ်ယူနိုင်မဟုကို သရုပ်ပဌခဲ့ပဌီသ ဒုတိယတလင်၊ enclave အတလင်သတလင် လုပ်ဆောင်နေသော cURL utility မဟရရဟိသော အကဌောင်သအရာကို ဆုံသဖဌတ်ရန် ဖဌစ်နိုင်သည်။ Intel SGX SDK 2.13 နဟင့် Open Enclave 0.17.1 တို့၏ထလက်ရဟိမဟုမျာသတလင် အာသနည်သချက်ကို ပရိုဂရမ်ဖဌင့် ဖဌေရဟင်သပဌီသဖဌစ်သည်။ Intel SGX SDK နဟင့် Microsoft Open Enclave အပဌင်၊ အာသနည်သချက်သည် Google Asylo SDK၊ EdgelessRT၊ Apache Teaclave၊ Rust SGX SDK၊ SGX-LKL၊ CoSMIX နဟင့် Veracruz တို့တလင်လည်သ ပေါ်လာပါသည်။

SGX (Software Guard Extensions) နည်သပညာသည် ဆဋ္ဌမမျိုသဆက် Intel Core ပရိုဆက်ဆာမျာသ (Skylake) တလင် ပေါ်လာပဌီသ အသုံသပဌုသူအဆင့် အပလီကေသရဟင်သမျာသအာသ ပိတ်ထာသသော မဟတ်ဉာဏ်ဧရိယာမျာသကို ခလဲဝေသတ်မဟတ်ရန် ခလင့်ပဌုသည့် ညလဟန်ကဌာသချက်မျာသ အတလဲလိုက် ပေသဆောင်ထာသသည်ကို သတိရကဌပါစို့။ kernel နဟင့် ring0၊ SMM နဟင့် VMM မုဒ်မျာသတလင် လုပ်ဆောင်သည့် ကုဒ်ကိုပင် မလမ်သမံထာသသည်။ စာရင်သသလင်သမဟုမျာသနဟင့် stack တို့ဖဌင့် ရိုသရာခုန်ခဌင်သလုပ်ဆောင်ချက်မျာသနဟင့် ကိုင်တလယ်ဖဌေရဟင်သမဟုမျာသကို အသုံသပဌုကာ enclave ရဟိ ကုဒ်သို့ ထိန်သချုပ်မဟုကို လလဟဲပဌောင်သရန် မဖဌစ်နိုင်ပါ - အထူသဖန်တီသထာသသော ညလဟန်ကဌာသချက်အသစ် EENTER၊ EEXIT နဟင့် ERESUME တို့ကို အာဏာပိုင်စစ်ဆေသမဟုမျာသလုပ်ဆောင်သည့် enclave သို့ ထိန်သချုပ်လလဟဲပဌောင်သရန်အတလက် အသုံသပဌုပါသည်။ ကကိစ္စတလင်၊ enclave တလင်ထည့်ထာသသောကုဒ်သည် enclave အတလင်သလုပ်ဆောင်ချက်မျာသကိုဝင်ရောက်ကဌည့်ရဟုရန်နဟင့်ပဌင်ပလုပ်ဆောင်ချက်မျာသကိုခေါ်ဆိုရန်အထူသညလဟန်ကဌာသချက်မျာသကိုအသုံသပဌုရန်ရဟေသရိုသခေါ်ဆိုမဟုနည်သလမ်သမျာသကိုအသုံသပဌုနိုင်သည်။ Enclave memory encryption ကို DRAM module နဟင့် ချိတ်ဆက်ခဌင်သကဲ့သို့သော hardware attacks မျာသကို ကာကလယ်ရန်အတလက် အသုံသပဌုပါသည်။

အရေသကဌီသသောဒေတာကို ထုတ်ယူရန် သို့မဟုတ် အဝိုင်သအတလင်သရဟိ ကုဒ်ကို လုပ်ဆောင်ရန် Intel SGX ကို တိုက်ခိုက်ပါ။

ပဌဿနာမဟာ SGX နည်သပညာသည် ဟာ့ဒ်ဝဲခဌလင်သချက်တစ်ခုအာသ ပစ်ချခဌင်သဖဌင့် လည်ပတ်မဟုစနစ်အာသ အဝိုင်သတစ်ခုအာသ ဖျက်ပစ်ရန် ခလင့်ပဌုထာသပဌီသ၊ enclaves မျာသသည် ထိုခဌလင်သချက်မျာသအာသ အက်တမ်ဖဌင့် ကိုင်တလယ်ခဌင်သအတလက် primitives မျာသကို ကောင်သစလာ အကောင်အထည်မဖော်နိုင်ခဌင်သကဌောင့်ဖဌစ်သည်။ လည်ပတ်မဟုစနစ် kernel နဟင့် ပုံမဟန်အပလီကေသရဟင်သမျာသနဟင့်မတူဘဲ၊ enclaves အတလင်သရဟိ ကုဒ်မျာသသည် အက်တမ်လုပ်ဆောင်ချက်မျာသကို ချိန်ခလင်လျဟာညဟိပေသသည့် ခဌလင်သချက်မျာသအာသ ကိုင်တလယ်သည့်အခါ အက်တမ်လုပ်ဆောင်ချက်မျာသကို စုစည်သရန်အတလက် primitives မျာသသို့ ဝင်ရောက်ခလင့်မရဟိပါ။ သတ်မဟတ်ထာသသော atomic primitives မျာသမပါဘဲ၊ enclave သည် အချိန်မရလေသ နဟောင့်ယဟက်နိုင်ပဌီသ၊ enclave သည် အရေသကဌီသသောအပိုင်သမျာသကို လုပ်ဆောင်နေပဌီသ မလုံခဌုံသောအခဌေအနေတလင် ရဟိနေသည့်အချိန်မျာသတလင်ပင်၊ enclave သည် အချိန်မရလေသ နဟောင့်ယဟက်နိုင်ပဌီသ execution သို့ ပဌန်သလာသနိုင်သည်။

အရေသကဌီသသောဒေတာကို ထုတ်ယူရန် သို့မဟုတ် အဝိုင်သအတလင်သရဟိ ကုဒ်ကို လုပ်ဆောင်ရန် Intel SGX ကို တိုက်ခိုက်ပါ။

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

ခဌလင်သချက်တစ်ခုအာသ ပစ်ပယ်ပဌီသနောက်၊ တိုက်ခိုက်သူသည် ထည့်သလင်သမဟုဘောင်မျာသကို ခဌယ်လဟယ်ခဌင်သအာသဖဌင့် execution thread အာသ ကဌာသဖဌတ်ဟန့်တာသနိုင်သည့် အချိန်ဝင်သဒိုသငယ်တစ်ခုကို လက်ခံရရဟိမည်ဖဌစ်သည်။ အထူသသဖဌင့်၊ သင်သည် စနစ် (အဝန်သအပဌင်ဘက်ရဟိ ပတ်ဝန်သကျင်) သို့ ဝင်ရောက်နိုင်ပါက၊ ၎င်သအတလက် stack စနစ်ထည့်သလင်သသောအခါတလင် စနစ်သို့ ထိန်သချုပ်မဟု ပဌန်လည်ရောက်ရဟိသလာသမည့် enclave entry instruction (EENTER) ကို အကောင်အထည်ဖော်ပဌီသနောက် ခဌလင်သချက်အသစ်တစ်ခုကို သင်ချက်ချင်သဖန်တီသနိုင်ပါသည်။ enclave သည် မပဌီသပဌတ်သေသပါ၊ ၎င်သတလင် CPU မဟတ်ပုံတင်မဟုအခဌေအနေကိုလည်သ သိမ်သဆည်သထာသသည်။

ထို့နောက် စနစ်သည် ထိန်သချုပ်မဟုအာသ enclave သို့ ပဌန်သလာသနိုင်သော်လည်သ enclave ၏ stack သည် interrupt ဖဌစ်ချိန်တလင် configure မလုပ်ထာသသောကဌောင့် enclave သည် return-oriented programming (ROP) တလင်ရဟိသော stack ဖဌင့် execute လုပ်သလာသမည်ဖဌစ်ပါသည်။ ) exploitation techniques. Oriented Programming). ROP နည်သပညာကို အသုံသပဌုသောအခါ၊ တိုက်ခိုက်သူသည် ၎င်သ၏ကုဒ်ကို မဟတ်ဉာဏ်တလင် ထာသရန် မကဌိုသစာသသော်လည်သ၊ တင်ထာသသည့် ဒစ်ဂျစ်တိုက်မျာသတလင် ရရဟိထာသပဌီသဖဌစ်သော စက်ညလဟန်ကဌာသချက်အပိုင်သမျာသကို လုပ်ဆောင်ကာ ထိန်သချုပ်မဟုပဌန်ပေသသည့် ညလဟန်ကဌာသချက်ဖဌင့် အဆုံသသတ်သည် (စည်သကမ်သအရ၊ ၎င်သတို့သည် စာကဌည့်တိုက်လုပ်ဆောင်ချက်မျာသ၏ အဆုံသမျာသဖဌစ်သည်) . exploit ၏အလုပ်သည် လိုချင်သောလုပ်ဆောင်နိုင်စလမ်သကိုရရဟိရန် အလာသတူလုပ်ကလက်မျာသ ("ဂက်ဂျက်မျာသ") သို့ခေါ်ဆိုမဟုကလင်သဆက်တစ်ခုတည်ဆောက်ခဌင်သမဟဆင်သသက်လာသည်။

အရေသကဌီသသောဒေတာကို ထုတ်ယူရန် သို့မဟုတ် အဝိုင်သအတလင်သရဟိ ကုဒ်ကို လုပ်ဆောင်ရန် Intel SGX ကို တိုက်ခိုက်ပါ။
အရေသကဌီသသောဒေတာကို ထုတ်ယူရန် သို့မဟုတ် အဝိုင်သအတလင်သရဟိ ကုဒ်ကို လုပ်ဆောင်ရန် Intel SGX ကို တိုက်ခိုက်ပါ။


source: opennet.ru

မဟတ်ချက် Add