Technical University of Graz (Austria) နှင့် Helmholtz Center for Information Security (CISPA) မှ သုတေသီများ၊
Foreshadow တိုက်ခိုက်မှုသည် ခြွင်းချက်တစ်ခု (terminal စာမျက်နှာတွင် အမှားအယွင်းဖြစ်စေသည်) တွင် memory ကို virtual address သို့ဝင်ရောက်သည့်အခါ ပရိုဆက်ဆာသည် ရုပ်ပိုင်းဆိုင်ရာလိပ်စာကို မှန်းဆတွက်ချက်ပြီး L1 cache တွင်ရရှိနိုင်ပါက ဒေတာကို load လုပ်သည်ဟူသောအချက်ကို အခွင့်ကောင်းယူသည်။ မှတ်ဉာဏ်စာမျက်နှာဇယားရှာဖွေမှု မပြီးသေးမီတွင် မှန်းဆရယူမှုကို လုပ်ဆောင်ပြီး မှတ်ဉာဏ်စာမျက်နှာ ဇယားထည့်သွင်းမှု (PTE) ၏ အခြေအနေ မည်သို့ပင်ရှိစေကာမူ၊ ဥပမာ။ ရုပ်ပိုင်းဆိုင်ရာမှတ်ဉာဏ်တွင် ဒေတာပါဝင်မှုနှင့် ၎င်း၏ဖတ်နိုင်မှုကို မစစ်ဆေးမီ။ မမ်မိုရီရရှိနိုင်မှု စစ်ဆေးမှုကို ပြီးမြောက်ပြီးနောက်၊ PTE တွင် ပစ္စုပ္ပန်အလံမရှိပါက လုပ်ဆောင်ချက်ကို ဖျက်သိမ်းလိုက်သော်လည်း ဒေတာများကို ကက်ရှ်တွင် ကျန်ရှိနေစေပြီး ဘေးထွက်ချန်နယ်များမှတစ်ဆင့် ကက်ရှ်အကြောင်းအရာများကို ဆုံးဖြတ်ရန်အတွက် နည်းလမ်းများကို အသုံးပြု၍ ပြန်လည်ထုတ်ယူနိုင်သည် (အသုံးပြုချိန်အတွင်း အပြောင်းအလဲများကို ခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့်၊ cached နှင့် uncached data များသို့) ။
Foreshadow ကို လက်ရှိကာကွယ်မှုနည်းလမ်းများသည် ထိရောက်မှုမရှိကြောင်းနှင့် ပြဿနာ၏ မှားယွင်းသောအဓိပ္ပာယ်ဖွင့်ဆိုချက်ဖြင့် အကောင်အထည်ဖော်နေကြောင်း သုတေသီများက ပြသခဲ့သည်။ အားနည်းချက်
ယခင်က လုံလောက်သည်ဟု ယူဆခဲ့သော kernel လုံခြုံရေးယန္တရားများ မည်သို့ပင်ဖြစ်စေ Foreshadow ကို အသုံးချနိုင်သည်။ ရလဒ်အနေဖြင့်၊ သုတေသီများသည် Spectre-v2 ကာကွယ်မှုသာ ပိတ်ထားရသော ရနိုင်သော Foreshadow ကာကွယ်မှုမုဒ်များအားလုံးကို ဖွင့်ထားသည့်စနစ်များပေါ်တွင် Foreshadow တိုက်ခိုက်မှုကို လုပ်ဆောင်နိုင်ခြေကို သရုပ်ပြခဲ့သည် (အသုံးပြုခြင်း Linux kernel ရွေးချယ်မှု nospectre_v2)။
တွေ့ပြီ
မန်မိုရီဝင်ရောက်စဉ်အတွင်း ကြိုတင်မှာယူသော်လည်း kernel အတွင်းရှိ အသုံးပြုသူနေရာလွတ်များ၏ မှန်းဆချက်ဆိုင်ရာ အကိုးအကားများ မှတ်ပုံတင်သည့်အခါ ဖြစ်ပေါ်သည်။ အားနည်းချက်၏ အကြောင်းရင်းကို လွဲမှားစွာ အဓိပ္ပာယ်ဖွင့်ဆိုခြင်းသည် Foreshadow ရှိ ဒေတာယိုစိမ့်မှုသည် L1 cache မှတဆင့်သာ ဖြစ်ပွားနိုင်သည်ဟု ယူဆရပြီး kernel အတွင်းရှိ အချို့သော ကုဒ်အတိုအထွာများ (prefetch gadgets) ရှိနေခြင်းသည် L1 cache အပြင်ဘက်တွင် ဒေတာယိုစိမ့်မှုကို အထောက်အကူဖြစ်စေနိုင်သည်၊ ဥပမာအားဖြင့်၊ L3 cache တွင်။
ဖော်ထုတ်ထားသော အင်္ဂါရပ်သည် သီးခြားပတ်ဝန်းကျင်များတွင် virtual လိပ်စာများကို ရုပ်ပိုင်းဆိုင်ရာ လိပ်စာများအဖြစ် ဘာသာပြန်ဆိုခြင်းနှင့် CPU မှတ်ပုံတင်ခြင်းများတွင် သိမ်းဆည်းထားသည့် လိပ်စာနှင့် ဒေတာများကို ဆုံးဖြတ်ခြင်းလုပ်ငန်းစဉ်များအတွက် ရည်ရွယ်သည့် တိုက်ခိုက်မှုအသစ်များ ဖန်တီးနိုင်ခြေကိုလည်း ဖွင့်ပေးသည်။ သရုပ်ပြအဖြစ်၊ သုတေသီများသည် Intel Core i10-7U CPU ဖြင့် စနစ်တစ်ခုတွင် တစ်စက္ကန့်လျှင် 6500 bits ခန့် စွမ်းဆောင်ရည်ဖြင့် ဒေတာများကို လုပ်ငန်းစဉ်တစ်ခုမှ အခြားတစ်ခုသို့ ထုတ်ယူရန် ဖော်ထုတ်ထားသောအကျိုးသက်ရောက်မှုကို အသုံးပြုနိုင်ကြောင်း ပြသခဲ့သည်။ Intel SGX enclave မှ မှတ်ပုံတင်ထားသော အကြောင်းအရာများ ပေါက်ကြားနိုင်ခြေကိုလည်း ပြသထားသည် ( 32-bit မှတ်ပုံတင်သို့ ရေးထားသော 64-bit တန်ဖိုးကို ဆုံးဖြတ်ရန် 15 မိနစ်ခန့် အချိန်ယူရသည်)။ အချို့သောတိုက်ခိုက်မှုအမျိုးအစားများသည် JavaScript နှင့် WebAssembly တွင်အကောင်အထည်ဖော်ရန်ဖြစ်နိုင်ချေရှိသည်၊ ဥပမာအားဖြင့်၊ JavaScript variable ၏ရုပ်ပိုင်းဆိုင်ရာလိပ်စာကိုဆုံးဖြတ်ရန်နှင့်တိုက်ခိုက်သူမှထိန်းချုပ်ထားသောတန်ဖိုးတစ်ခုဖြင့် 64-bit မှတ်ပုံတင်မှုများကိုဖြည့်စွက်နိုင်သည်။
L3 ကက်ရှ်မှတဆင့် Foreshadow တိုက်ခိုက်မှုကို ပိတ်ဆို့ရန်၊ retpoline patch အစုံတွင် လုပ်ဆောင်ခဲ့သော Spectre-BTB (Branch Target Buffer) ကာကွယ်ရေးနည်းလမ်းသည် ထိရောက်သည်။ ထို့ကြောင့်၊ CPU မှန်းဆလုပ်ဆောင်မှု ယန္တရားရှိ သိပြီးသား အားနည်းချက်များကို ကာကွယ်ပြီးသား CPU အသစ်များပါရှိသော စနစ်များတွင်ပင် retpoline ကို ဖွင့်ထားရန် လိုအပ်သည်ဟု သုတေသီများက ယုံကြည်ကြသည်။ တစ်ချိန်တည်းမှာပင် Intel ကိုယ်စားလှယ်များက Foreshadow အား ပရိုဆက်ဆာများတွင် ထပ်လောင်းကာကွယ်မှုအစီအမံများ ထည့်သွင်းရန် အစီအစဉ်မရှိသည့်အပြင် Spectre V2 နှင့် L1TF (Foreshadow) တိုက်ခိုက်မှုများကို ကာကွယ်မှုပါ၀င်ရန် လုံလောက်သည်ဟု ယူဆကြောင်း ပြောကြားခဲ့သည်။
source: opennet.ru