UEFI firmware တွင် အားနည်းချက်တစ်ခု (CVE-2021-33164) ကို ဖော်ထုတ်တွေ့ရှိခဲ့သည်။ ဤအားနည်းချက်သည် hypervisor mode နှင့် Ring 0 ထက် ဦးစားပေးမှုပိုမိုမြင့်မားသော SMM (System Management Mode) အဆင့်တွင် ကုဒ်လုပ်ဆောင်ခြင်းကို ခွင့်ပြုပြီး စနစ်မှတ်ဉာဏ်အားလုံးကို အကန့်အသတ်မရှိ ဝင်ရောက်ခွင့်ပေးသည်။ RingHopper ဟု ကုဒ်အမည်ပေးထားသော အားနည်းချက်သည် DMA (Direct Memory Access) ကို အသုံးပြု၍ SMM အဆင့်တွင် ကုဒ်လုပ်ဆောင်ထားသော မှတ်ဉာဏ်ကို ပျက်စီးစေရန် အချိန်ကိုက်တိုက်ခိုက်မှုတစ်ခု ခွင့်ပြုသည်။ Intel၊ Dell နှင့် Insyde Software မှ firmware တွင် အားနည်းချက်ကို အတည်ပြုပြီးဖြစ်သည် (ပြဿနာသည် ထုတ်လုပ်သူ ရှစ်ဦးကို ထိခိုက်စေသည်ဟု ဆိုထားသော်လည်း ကျန်ငါးဦးကို ထုတ်ဖော်ပြောကြားခြင်း မရှိသေးပါ)။ AMD၊ Phoenix နှင့် Toshiba မှ firmware တွင် ထိခိုက်မှုမရှိပါ။
အားနည်းချက်များကို operating system အတွင်းမှ ဝင်ရောက်ရန် administrator အခွင့်အာဏာများ လိုအပ်သည့် အားနည်းချက်ရှိသော SMI (System Management Interrupt) handler များကို အသုံးပြု၍ အသုံးချနိုင်ပါသည်။ operating system ကို initialize မလုပ်မီ boot phase အစောပိုင်းတွင် physical access ဖြင့်လည်း တိုက်ခိုက်မှုကို ပြုလုပ်နိုင်ပါသည်။ ပြဿနာကို လျှော့ချရန်အတွက် user များသည် Linux LVFS ဝန်ဆောင်မှုကို အသုံးပြု၍ firmware ကို အပ်ဒိတ်လုပ်ရန် အကြံပြုပါသည် (Linux Vendor Firmware Service) သည် fwupd package မှ fwupdmgr utility (fwupdmgr get-updates; fwupdmgr update) ကို အသုံးပြု၍ ဖြစ်သည်။
တိုက်ခိုက်မှုတစ်ခုပြုလုပ်ရန် administrator အခွင့်ထူးများအတွက် လိုအပ်ချက်သည် ပြဿနာ၏ပြင်းထန်မှုကို ကန့်သတ်ထားသော်လည်း အခြားစနစ်အားနည်းချက်များကို အသုံးချပြီးနောက် သို့မဟုတ် လူမှုရေးအင်ဂျင်နီယာနည်းပညာများကို အသုံးပြုပြီးနောက် ဒုတိယအဆင့်အားနည်းချက်အဖြစ် ဆက်လက်တည်ရှိနေခြင်းမှ မတားဆီးနိုင်ပါ။ SMM (Ring -2) သို့ ဝင်ရောက်ခြင်းသည် operating system ၏ ထိန်းချုပ်မှုထက်ကျော်လွန်သော အဆင့်တွင် code execution ကို ခွင့်ပြုပေးပြီး firmware ကို ပြုပြင်ရန်နှင့် operating system မှ မရှာဖွေနိုင်သော SPI Flash ထဲသို့ hidden malicious code သို့မဟုတ် rootkits များကို ထည့်သွင်းရန်အသုံးပြုနိုင်သည့်အပြင် boot-time verification (UEFI Secure Boot, Intel BootGuard) ကို disable လုပ်ရန်နှင့် virtual environments အတွက် integrity check များကို ကျော်လွှားရန် hypervisors များကို တိုက်ခိုက်ရန် အသုံးပြုနိုင်သည်။
ဒီပြဿနာဟာ access check နဲ့ SMRAM access ကြားမှာဖြစ်ပေါ်တဲ့ SMI (System Management Interrupt) handler မှာ race condition ကြောင့်ဖြစ်တာပါ။ DMA ကိုသုံးပြီး state check နဲ့ check result အသုံးပြုမှုကြားက မှန်ကန်တဲ့ moment ကိုဆုံးဖြတ်ဖို့အသုံးပြုနိုင်ပါတယ်။ ဒါကြောင့် DMA မှတစ်ဆင့် SMRAM access ရဲ့ asynchronous သဘောသဘာဝကြောင့် attacker တစ်ယောက်ဟာ မှန်ကန်တဲ့ moment ကိုဆုံးဖြတ်ပြီး SMI handler API ကိုကျော်ပြီး DMA ကိုသုံးပြီး SMRAM content တွေကို overwrite လုပ်နိုင်ပါတယ်။ Intel VT နဲ့ Intel VT-d ကို support လုပ်တဲ့ processor တွေမှာ IOMMU (Input-Output Memory Management Unit) ကိုအခြေခံတဲ့ DMA တိုက်ခိုက်မှုတွေကနေကာကွယ်မှုပါဝင်ပေမယ့် ဒီကာကွယ်မှုဟာ attacker-prepared devices တွေကိုသုံးပြီးလုပ်ဆောင်တဲ့ hardware DMA တိုက်ခိုက်မှုတွေကိုပိတ်ဆို့ရာမှာထိရောက်ပြီး SMI handlers တွေကနေတိုက်ခိုက်မှုတွေကနေကာကွယ်မပေးပါဘူး။
source: opennet.ru
