Google သည် ဘရောက်ဆာတွင် JavaScript ကုဒ်ကိုလုပ်ဆောင်သောအခါတွင် Spectre အတန်းအစား အားနည်းချက်များကို အသုံးချနိုင်ခြေကို ပြသသည့် exploit prototype အများအပြားကို ထုတ်ဝေခဲ့ပြီး၊ ယခင်ထည့်သွင်းထားသော ကာကွယ်မှုနည်းလမ်းများကို ကျော်ဖြတ်ခဲ့သည်။ လက်ရှိတက်ဘ်ရှိ လုပ်ငန်းစဉ်လုပ်ဆောင်နေသည့် ဝဘ်အကြောင်းအရာ၏ မှတ်ဉာဏ်သို့ ဝင်ရောက်ခွင့်ရရန် Exploits ကို အသုံးပြုနိုင်သည်။ exploit ၏ လုပ်ဆောင်ချက်ကို စမ်းသပ်ရန်အတွက် ဝက်ဘ်ဆိုဒ် leaky.page ကို စတင်ခဲ့ပြီး၊ အလုပ်၏ ယုတ္တိကို ဖော်ပြသည့် ကုဒ်ကို GitHub တွင် တင်ထားသည်။
Предложенный прототип рассчитан на совершение атаки на системы с процессорами Intel Core i7-6500U в окружении с Linux и Chrome 88. Для применения эксплоита для других окружений требуется внесение изменений. Метод эксплуатации не специфичен для процессоров Intel — после соответствующей адаптации была подтверждена работа эксплоита на системах с CPU других производителей, включая Apple M1 на базе архитектуры ARM. После незначительных корректировок эксплоит также работоспособен в других операционных системах и в других браузерах на базе движка Chromium.
စံ Chrome 88 နှင့် Intel Skylake ပရိုဆက်ဆာများအပေါ် အခြေခံထားသော ပတ်ဝန်းကျင်တွင်၊ လက်ရှိ Chrome တက်ဘ်တွင် ဝဘ်အကြောင်းအရာကို လုပ်ဆောင်ခြင်းအတွက် တာဝန်ရှိသည့် လုပ်ငန်းစဉ်မှ အချက်အလက်များကို ပေါက်ကြားစေနိုင်သည်။ ထို့အပြင်၊ ဥပမာအားဖြင့်၊ တည်ငြိမ်မှုလျှော့ချရေးကုန်ကျစရိတ်ဖြင့် performance.now() timer ကို အသုံးပြုသည့်အခါ ယိုစိမ့်မှုနှုန်းကို 1kB/s အထိ တိုးမြှင့်နိုင်စေမည့် အသုံးချပုံဥပမာများကို တီထွင်ထုတ်လုပ်ထားပါသည်။ ) တစ်မီလီစက္ကန့်၏ timer တိကျမှုဖြင့် လုပ်ဆောင်နိုင်သော ဗားရှင်းတစ်ခုကိုလည်း ပြင်ဆင်ထားပြီး၊ ၎င်းသည် အခြားလုပ်ငန်းစဉ်၏ memory သို့ဝင်ရောက်ခွင့်ကို စုစည်းရန်အတွက် တစ်စက္ကန့်လျှင် 8 bytes ခန့်အမြန်နှုန်းဖြင့် လုပ်ဆောင်နိုင်သည်။
ထုတ်ဝေထားသော ဒီမိုကုဒ်တွင် အပိုင်းသုံးပိုင်းပါဝင်သည်။ ပထမပိုင်းသည် CPU ညွှန်ကြားချက်များကို မှန်းဆလုပ်ဆောင်မှုကြောင့် ပရိုဆက်ဆာ cache တွင်ကျန်ရှိနေသည့် အချက်အလက်များကို ပြန်လည်ရယူရန် လိုအပ်သည့် လုပ်ဆောင်ချက်များ၏ လုပ်ဆောင်ချိန်ကို ခန့်မှန်းရန် timer ကို ချိန်ညှိပေးသည်။ ဒုတိယအပိုင်းသည် JavaScript array ကိုခွဲဝေပေးရာတွင်အသုံးပြုသည့် memory layout ကိုဆုံးဖြတ်သည်။
တတိယအပိုင်းသည် မအောင်မြင်သော ခန့်မှန်းချက်အား ဆုံးဖြတ်ပြီးနောက် ပရိုဆက်ဆာမှ စွန့်ပစ်လိုက်သည့် ရလဒ်အဖြစ် အချို့သော လုပ်ဆောင်ချက်များ၏ မှန်းဆလုပ်ဆောင်မှုဆိုင်ရာ အခြေအနေများ ဖန်တီးခြင်းကြောင့် လက်ရှိ လုပ်ငန်းစဉ်၏ မှတ်ဉာဏ်အကြောင်းအရာများကို ဆုံးဖြတ်ရန် Spectre အားနည်းချက်ကို တိုက်ရိုက်အသုံးချပြီး ရလဒ်များ၊ လုပ်ဆောင်ချက်ကို ယေဘူယျ ကက်ရှ်တွင် သိမ်းဆည်းထားပြီး ကက်ရှ်၏ အကြောင်းအရာများကို ကက်ရှ်၏ အကြောင်းအရာများကို ကက်ရှ်နှင့် မချရသေးသော ဒေတာများသို့ ဝင်ရောက်ချိန်အတွင်း ပြောင်းလဲမှုများကို ခွဲခြမ်းစိတ်ဖြာသည့် ပြင်ပအဖွဲ့အစည်းချန်နယ်များမှ ကက်ရှ်အကြောင်းအရာများကို ဆုံးဖြတ်ရန်အတွက် နည်းလမ်းများကို အသုံးပြု၍ ပြန်လည်ရယူနိုင်ပါသည်။
အဆိုပြုထားသော exploitation technique သည် performance.now() API မှတဆင့် ရရှိနိုင်သော တိကျသောအချိန်တိုင်းကိရိယာများမပါဘဲ လုပ်ဆောင်နိုင်ပြီး SharedArrayBuffer အမျိုးအစားအတွက် ပံ့ပိုးမှုမရှိဘဲ၊ မျှဝေထားသော memory တွင် arrays ဖန်တီးမှုကို ခွင့်ပြုပေးပါသည်။ ထုတ်ယူသုံးစွဲမှုတွင် ထိန်းချုပ်ထားသော မှန်းဆချက်လုပ်ဆောင်မှုကို ဖြစ်စေသည့် Spectre gadget နှင့် မှန်းဆလုပ်ဆောင်မှုအတွင်း ရရှိသော ကက်ရှ်ဒေတာကို သိရှိနိုင်သည့် ဘေး-ချန်နယ်ယိုစိမ့်မှု ခွဲခြမ်းစိတ်ဖြာသည့်စနစ်တို့ ပါဝင်သည်။
gadget ကို compiler မှထည့်သွင်းထားသော ကြားခံအရွယ်အစားစစ်ဆေးမှုတစ်ခုရှိနေခြင်းကြောင့် ကြားခံ၏နယ်နိမိတ်များအပြင်ဘက်ရှိ ဧရိယာကိုဝင်ရောက်ရန် ကြိုးပမ်းသည့် gadget ကိုအသုံးပြုပြီး gadget သည် buffer ခန့်မှန်းမှုပိတ်ဆို့ခြင်းအခြေအနေအား ထိခိုက်စေသည် (ပရိုဆက်ဆာ၊ ရှေ့ကိုမျှော်ကြည့်ရင်း၊ မှန်းဆချက်ဖြင့် ဝင်ရောက်နိုင်သော်လည်း စစ်ဆေးပြီးနောက် အခြေအနေကို ပြန်လှည့်သည်။) အချိန်တိုင်းကိရိယာတိကျမှုမရှိသောအခြေအနေများအောက်တွင် cache ၏အကြောင်းအရာများကိုခွဲခြမ်းစိတ်ဖြာရန်၊ ပရိုဆက်ဆာများတွင်အသုံးပြုသော Tree-PLRU ကက်ရှ်ဖယ်ရှားခြင်းဗျူဟာကိုလှည့်စားပြီး သံသရာအရေအတွက်ကိုတိုးမြှင့်ခြင်းဖြင့်၊ ပြန်လာသည့်အခါခြားနားချက်သိသိသာသာတိုးလာစေရန်နည်းလမ်းတစ်ခုကိုအဆိုပြုထားပါသည်။ cache မှတန်ဖိုးတစ်ခုနှင့် cache တွင်တန်ဖိုးမရှိသောအခါ။
Spectre အတန်းအစား အားနည်းချက်များကို အသုံးပြု၍ တိုက်ခိုက်မှုများ၏ ဖြစ်နိုင်ခြေကို ပြသရန်နှင့် ထိုကဲ့သို့သော တိုက်ခိုက်မှုများမှ အန္တရာယ်များကို အနည်းဆုံးဖြစ်စေသည့် နည်းပညာများကို အသုံးပြုရန် ဝဘ်ဆော့ဖ်ဝဲရေးသားသူများကို အားပေးရန်အတွက် Google သည် exploit ၏ ရှေ့ပြေးပုံစံကို ထုတ်ပြန်ထားကြောင်း မှတ်သားရပါသည်။ တစ်ချိန်တည်းမှာပင် Google သည် အဆိုပြုထားသော ရှေ့ပြေးပုံစံကို သိသာထင်ရှားစွာ ပြန်လည်ပြုပြင်ခြင်းမရှိဘဲ၊ သရုပ်ပြရန်အတွက်သာမက ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုရန်အတွက်လည်း အဆင်သင့်ဖြစ်သည့် universal exploits များကို ဖန်တီးရန် မဖြစ်နိုင်ကြောင်း Google က ယုံကြည်ပါသည်။
အန္တရာယ်ကို လျှော့ချရန်၊ မကြာသေးမီက အကောင်အထည်ဖော်ခဲ့သော အရင်းအမြစ်များ ကြက်ခြေခတ်ဖွင့်ခြင်းမူဝါဒ (COOP)၊ ရင်းမြစ်ဖြတ်ကျော်မြှုပ်နှံမှုမူဝါဒ (COEP)၊ မူရင်းအရင်းအမြစ်ဆိုင်ရာမူဝါဒ (CORP)၊ မက်တာဒေတာတောင်းခံမှု၊ X-Frame- တို့ကို အသုံးပြုရန်၊ ရွေးချယ်မှုများ၊ X -Content-Type-Options နှင့် SameSite Cookie။ ဤယန္တရားများသည် တိုက်ခိုက်မှုများကို တိုက်ရိုက်မကာကွယ်နိုင်သော်လည်း ၎င်းတို့သည် တိုက်ခိုက်သူ၏ JavaScript ကုဒ်ကို လုပ်ဆောင်နိုင်သည့် လုပ်ငန်းစဉ်များအဖြစ် ဆိုက်ဒေတာ ယိုစိမ့်ခြင်းမှ ခွဲထုတ်နိုင်သည် (တိုက်ခိုက်သူ၏ကုဒ်အပြင်၊ တိုက်ခိုက်သူ၏ ကုဒ်အပြင်၊ တူညီသောတက်ဘ်တွင်ဖွင့်ထားသော အခြားဆိုက်မှဒေတာကိုလည်း စီမံဆောင်ရွက်နိုင်သည်)။ အဓိက အယူအဆမှာ iframe မှတဆင့် ထည့်သွင်းထားသော ယုံကြည်စိတ်ချရသော ပြင်ပကုဒ်မှ ရရှိသော ပြင်ပကုဒ်မှ မတူညီသော လုပ်ငန်းစဉ်များတွင် ဆိုက်ကုဒ်ကို အကောင်အထည်ဖော်ခြင်းအား ခွဲခြားရန်ဖြစ်သည်။

source: opennet.ru
