RangeAmp - Range HTTP ခေါင်းစီးကို ကြိုးကိုင်သည့် CDN တိုက်ခိုက်မှု စီးရီးတစ်ခု

ပီကင်းတက္ကသိုလ်၊ Tsinghua တက္ကသိုလ်နှင့် Dallas ရှိ Texas တက္ကသိုလ်တို့မှ သုတေသီအဖွဲ့တစ်ဖွဲ့ ထုတ်ဖော်ခဲ့သည်။ HTTP ခေါင်းစီးအသုံးပြုမှုအပေါ် အခြေခံ၍ DoS တိုက်ခိုက်မှု အတန်းအစားအသစ် - RangeAmp အကွာအဝေး အကြောင်းအရာပေးပို့ခြင်းကွန်ရက်များ (CDN) မှတဆင့် လမ်းကြောင်းချဲ့ထွင်မှုကို စုစည်းရန်။ နည်းလမ်း၏ အနှစ်သာရမှာ CDN အများအပြားတွင် Range headers များကို လုပ်ဆောင်ပုံကြောင့် တိုက်ခိုက်သူသည် CDN မှတစ်ဆင့် ဖိုင်ကြီးတစ်ခုမှ တစ်ဘိုက်ကို တောင်းဆိုနိုင်သော်လည်း CDN ​​သည် ဖိုင်တစ်ခုလုံး သို့မဟုတ် ဒေတာပိုကြီးသော ဘလောက်တစ်ခုကို ဒေါင်းလုဒ်လုပ်မည်ဖြစ်သည်။ ပစ်မှတ်ဆာဗာကို cache တွင်ထားရှိရန်။ CDN ပေါ် မူတည်၍ ထိုသို့သော တိုက်ခိုက်မှုအတွင်း အသွားအလာချဲ့ထွင်မှု အတိုင်းအတာသည် 724 မှ ​​43330 ကြိမ်အထိ ရှိပါသည်၊ ၎င်းသည် CDN ကို အဝင်အသွားအလာများဖြင့် ပိုတင်ဆောင်ရန် သို့မဟုတ် သားကောင်၏ဆိုက်သို့ နောက်ဆုံး ဆက်သွယ်မှုချန်နယ်၏ စွမ်းရည်ကို လျှော့ချရန်အတွက် အသုံးပြုနိုင်သည်။

RangeAmp - Range HTTP ခေါင်းစီးကို ကြိုးကိုင်သည့် CDN တိုက်ခိုက်မှု စီးရီးတစ်ခု

Range header သည် client အား ဖိုင်တစ်ခုလုံးကို ပြန်ပေးမည့်အစား ဒေါင်းလုဒ်လုပ်သင့်သည့် ဖိုင်ရှိ နေရာအကွာအဝေးကို သတ်မှတ်နိုင်စေပါသည်။ ဥပမာအားဖြင့်၊ client သည် "Range: bytes=0-1023" ကို သတ်မှတ်နိုင်ပြီး server သည် data ၏ ပထမ 1024 bytes ကိုသာ ပေးပို့မည်ဖြစ်ပါသည်။ ဤအင်္ဂါရပ်သည် ကြီးမားသောဖိုင်များကို ဒေါင်းလုဒ်လုပ်သောအခါတွင် လိုအပ်သည် - အသုံးပြုသူသည် ဒေါင်းလုဒ်ကို ခေတ္တရပ်နိုင်ပြီး အနှောင့်အယှက်ရှိသော အနေအထားမှ ဆက်လက်လုပ်ဆောင်နိုင်သည်။ “bytes=0-0” ကို သတ်မှတ်သောအခါ၊ ဖိုင်၏ အဆုံးအထိ ပထမဘိုက်ကို “bytes=-1” - နောက်ဆုံး၊ “bytes=1-” - 1 byte မှ စတင်ပြီး ဖိုင်အဆုံးအထိ ပေးဆောင်ရန် စံက ညွှန်ကြားထားသည်။ ခေါင်းစီးတစ်ခုတွင် ဘောင်များစွာကို ပို့လွှတ်နိုင်သည်၊ ဥပမာ "အပိုင်းအခြား- bytes=0-1023,8192-10240"။

ထို့အပြင်၊ proxy အဖြစ်အသုံးပြုသည့် အခြားသော CDN မှတဆင့် အသွားအလာကို ထပ်ဆင့်ပို့သည့်အခါ ကွန်ရက်ဝန်ကို တိုးလာစေရန်အတွက် ရည်ရွယ်၍ ဒုတိယတိုက်ခိုက်မှုရွေးချယ်ခွင့်ကို အဆိုပြုခဲ့သည် (ဥပမာ၊ Cloudflare သည် ရှေ့ဆုံးတန်း (FCDN) အဖြစ်လုပ်ဆောင်သည့်အခါ) နှင့် Akamai သည် နောက်ကွယ်မှ (ဥပမာ၊ BCDN)။ နည်းလမ်းသည် ပထမတိုက်ခိုက်မှုနှင့် ဆင်တူသော်လည်း CDN ​​ကွန်ရက်များအတွင်း ဒေသစံသတ်မှတ်ထားပြီး အခြား CDN ​​များမှတစ်ဆင့် ဝင်ရောက်သည့်အခါ အသွားအလာ တိုးလာစေကာ အခြေခံအဆောက်အအုံအပေါ်ဝန်ကို တိုးစေပြီး ဝန်ဆောင်မှုအရည်အသွေးကို လျှော့ချပေးသည်။

အယူအဆမှာ တိုက်ခိုက်သူသည် "bytes=0-,0-,0-...", "bytes=1-,0-,0-..." သို့မဟုတ် CDN သို့ Range တောင်းဆိုချက်များစွာကို ပေးပို့ခြင်း ဖြစ်သည်။ "bytes=-1024,0 ၊0-၊0-..."။ တောင်းဆိုချက်များတွင် ဖိုင်ကို ရာထူး သုညမှ အဆုံးအထိ ပြန်ပို့သည်ဟု ဆိုလိုသည့် “0-” အပိုင်းအခြား အများအပြား ပါဝင်ပါသည်။ အပိုင်းအခြားခွဲခြမ်းစိတ်ဖြာမှု၏ မှားယွင်းစွာအကောင်အထည်ဖော်မှုကြောင့် ပထမ CDN သည် ဒုတိယကိုဝင်ရောက်သည့်အခါ "53-" အပိုင်းအခြားတစ်ခုစီအတွက် ဖိုင်အပြည့်အစုံကို ပို့လိုက်သည် (အပိုင်းအခြားများကို တစ်စုတစ်စည်းတည်းမဟုတ်ဘဲ ဆက်တိုက်ပြုလုပ်ထားသည်) တွင် အပိုင်းအခြားများနှင့် အပိုင်းအခြားများ ထပ်ပွားနေပါက၊ တိုက်ခိုက်သူမှ ကနဦးပေးပို့သော တောင်းဆိုချက်။ ထိုသို့သောတိုက်ခိုက်မှုတွင် ယာဉ်ကြောချဲ့ထွင်မှုအတိုင်းအတာသည် 7432 ​​ကြိမ်မှ XNUMX ကြိမ်အထိရှိသည်။

RangeAmp - Range HTTP ခေါင်းစီးကို ကြိုးကိုင်သည့် CDN တိုက်ခိုက်မှု စီးရီးတစ်ခု

လေ့လာမှုအတွင်း CDN ​​13 ခု၏ အပြုအမူကို လေ့လာခဲ့သည်-
Akamai၊ Alibaba Cloud၊ Azure၊ CDN77၊ CDNsun၊ Cloudflare၊ CloudFront၊ Fastly၊ G-Core Labs၊ Huawei Cloud၊ KeyCDN၊ StackPath နှင့် Tencent Cloud။ စစ်ဆေးထားသော CDN များအားလုံးသည် end server တွင် ပထမဆုံးတိုက်ခိုက်မှုအမျိုးအစားကို ခွင့်ပြုထားသည်။ CDN တိုက်ခိုက်မှု၏ ဒုတိယမူကွဲသည် ဝန်ဆောင်မှု 6 ခုကို ထိခိုက်ခဲ့ပြီး လေးခုသည် တိုက်ခိုက်မှု (CDN77၊ CDNsun၊ Cloudflare နှင့် StackPath) နှင့် နောက်ကွယ်မှ (Akamai၊ Azure နှင့် StackPath) အဖြစ် လုပ်ဆောင်နိုင်သည် ။ Range header တွင် သတ်မှတ်ထားသော အပိုင်းအခြား 10 ကျော်ကို ခွင့်ပြုပေးသော Akamai နှင့် StackPath တို့တွင် အကြီးမားဆုံးသော အမြတ်ကို ရရှိသည်။ CDN ပိုင်ရှင်များသည် လွန်ခဲ့သည့် 7 လခန့်က အားနည်းချက်များကို အကြောင်းကြားခဲ့ပြီး သတင်းအချက်အလက်ကို လူသိရှင်ကြားထုတ်ဖော်ချိန်တွင် CDN 12 ခုတွင် 13 သည် ဖော်ထုတ်ထားသောပြဿနာများကို ဖြေရှင်းခဲ့သည် သို့မဟုတ် ၎င်းတို့ကို ပြင်ဆင်ရန် အသင့်ရှိကြောင်း ဖော်ပြခဲ့သည် (StackPath ဝန်ဆောင်မှုကသာ တုံ့ပြန်ခြင်းမရှိပါ)။

source: opennet.ru

မှတ်ချက် Add