AMD ပရိုဆက်ဆာများ၏ မှန်းဆလုပ်ဆောင်မှု ယန္တရားတွင် အားနည်းချက်

Grsecurity ပရောဂျက်သည် အသေးစိတ်အချက်အလက်များနှင့် AMD ပရိုဆက်ဆာများတွင် အားနည်းချက်အသစ် (CVE-2021-26341) အတွက် တိုက်ခိုက်မှုနည်းလမ်းကို သရုပ်ပြသထားပြီး ခြွင်းချက်မရှိ ရှေ့ဆက်လုပ်ဆောင်မှုများပြီးနောက် မှန်းဆထားသော ညွှန်ကြားချက်များကို လုပ်ဆောင်ခြင်းနှင့်ပတ်သက်သည့် မှန်းဆလုပ်ဆောင်မှုများနှင့်ပတ်သက်သည့် AMD ပရိုဆက်ဆာများရှိ အားနည်းချက်တစ်ခုဖြစ်သည်။ တိုက်ခိုက်မှုအောင်မြင်ပါက၊ အားနည်းချက်သည် မတရားမှတ်ဉာဏ်ဧရိယာများ၏ အကြောင်းအရာများကို ဆုံးဖြတ်နိုင်စေပါသည်။ ဥပမာအားဖြင့်၊ သုတေသီများသည် ePBF kernel subsystem တွင် အခွင့်ထူးမခံသောကုဒ်ကိုလုပ်ဆောင်ခြင်းဖြင့် KASLR (kernel memory randomization) ကာကွယ်မှုယန္တရားကို ကျော်လွှားနိုင်စေမည့် exploit တစ်ခုကို ပြင်ဆင်ထားပါသည်။ kernel memory contents များ ပေါက်ကြားသွားစေနိုင်သည့် အခြားသော တိုက်ခိုက်မှုအခြေအနေများကို ဖယ်ထုတ်၍မရပါ။

အားနည်းချက်သည် သင့်အား ပရိုဆက်ဆာအား ကြိုတင်စီမံလုပ်ဆောင်မှုအတွင်း၊ မှတ်ဉာဏ်အတွင်းခုန်ခြင်းညွှန်ကြားချက် (SLS၊ Straight Line Speculation) ပြီးနောက် ညွှန်ကြားချက်ကို မှန်းဆပြီး ချက်ချင်းလုပ်ဆောင်ပေးသည့် အခြေအနေများကို ဖန်တီးနိုင်စေပါသည်။ ထို့အပြင်၊ ထိုသို့သော ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းသည် အခြေအနေအလိုက်ခုန်အော်ပရေတာများအတွက်သာမက JMP၊ RET နှင့် CALL ကဲ့သို့ ခြွင်းချက်မရှိ တိုက်ရိုက်ခုန်ခြင်းကို ညွှန်ပြသည့် ညွှန်ကြားချက်များအတွက်လည်း လုပ်ဆောင်ပါသည်။ ခြွင်းချက်မရှိ ခုန်ချသည့် ညွှန်ကြားချက်များအတိုင်း လုပ်ဆောင်ရန် မရည်ရွယ်သော မတရားသော အချက်အလက်များကို ထားရှိနိုင်ပါသည်။ ဌာနခွဲတစ်ခုသည် နောက်လာမည့်ညွှန်ကြားချက်ကို လုပ်ဆောင်ခြင်းမပါဝင်ကြောင်း ဆုံးဖြတ်ပြီးနောက်၊ ပရိုဆက်ဆာသည် အခြေအနေအား ရိုးရှင်းစွာပြန်လှည့်ကာ မှန်းဆလုပ်ဆောင်မှုကို လျစ်လျူရှုသော်လည်း၊ ညွှန်ကြားချက်လုပ်ဆောင်မှု၏ခြေရာခံသည် မျှဝေထားသော cache တွင်ကျန်ရှိနေပြီး ဘေးထွက်ချန်နယ်ပြန်လည်ရယူခြင်းနည်းပညာများကို အသုံးပြု၍ ခွဲခြမ်းစိတ်ဖြာရန်အတွက် ရနိုင်ပါသည်။

Spectre-v1 အားနည်းချက်ကို အသုံးချခြင်းကဲ့သို့ပင်၊ တိုက်ခိုက်မှုသည် မှန်းဆလုပ်ဆောင်မှုကို ဦးတည်သည့် kernel အတွင်းရှိ အချို့သော ညွှန်ကြားချက်များ (ဂက်ဂျက်များ) ရှိနေရန် လိုအပ်သည်။ ဤကိစ္စတွင် အားနည်းချက်တစ်ခုအား ပိတ်ဆို့ခြင်းသည် ကုဒ်တွင် ယင်းကဲ့သို့သော gadget များကို ခွဲခြားသတ်မှတ်ခြင်းနှင့် မှန်းဆလုပ်ဆောင်မှုကို ပိတ်ဆို့သည့်နောက်ဆက်တွဲညွှန်ကြားချက်များကို ထည့်သွင်းခြင်းမှ ဆင်းသက်လာသည်။ မှန်းဆသည့် အကောင်အထည်ဖော်မှုအတွက် အခြေအနေများကို eBPF virtual machine တွင် လုပ်ဆောင်နေသည့် အခွင့်ထူးမခံသော ပရိုဂရမ်များမှလည်း ဖန်တီးနိုင်သည်။ eBPF ကိုအသုံးပြု၍ ဂက်ဂျက်များတည်ဆောက်နိုင်စွမ်းကို ပိတ်ဆို့ရန်၊ စနစ်အတွင်းရှိ eBPF သို့ အခွင့်ထူးမခံသောဝင်ရောက်ခွင့်ကို ပိတ်ရန် အကြံပြုထားသည် (“sysctl -w kernel.unprivileged_bpf_disabled=1”)။

အားနည်းချက်သည် AMD EPYC နှင့် AMD Ryzen Threadripper ပရိုဆက်ဆာများ၏ ပထမနှင့် ဒုတိယမျိုးဆက်များအပါအဝင် Zen1 နှင့် Zen2 microarchitecture ပေါ်အခြေခံသည့် ပရိုဆက်ဆာများအပေါ် သက်ရောက်မှုရှိပြီး AMD Ryzen 2000/3000/4000/5000၊ AMD Athlon၊ AMD Athlon X၊ AMD Ryzen Threadripper PRO နှင့် APU စီးရီးပရိုဆက်ဆာများ A. ညွှန်ကြားချက်များကို မှန်းဆထားသော လုပ်ဆောင်ချက်များကို ပိတ်ဆို့ရန်၊ ဘဏ်ခွဲလည်ပတ်မှုများပြီးနောက် INT3 သို့မဟုတ် LFENCE ညွှန်ကြားချက်များ (RET၊ JMP၊ CALL) ကိုခေါ်ဆိုရန် အကြံပြုအပ်ပါသည်။

source: opennet.ru

မှတ်ချက် Add