HTTP/2 ပရိုတိုကောကို အမျိုးမျိုးသော အကောင်အထည်ဖော်မှုများတွင် DoS အားနည်းချက်များကို ဖော်ထုတ်ထားသည်။

Netflix နှင့် Google တို့မှ သုတေသီများ ဖော်ထုတ်ခဲ့သည်။ HTTP/2 ပရိုတိုကော၏ အမျိုးမျိုးသော အကောင်အထည်ဖော်မှုများတွင် အားနည်းချက် ရှစ်ခုရှိပြီး ကွန်ရက်တောင်းဆိုမှုများကို လမ်းကြောင်းတစ်ခုဖြင့် ပေးပို့ခြင်းဖြင့် ဝန်ဆောင်မှုကို ငြင်းပယ်ခြင်းဖြစ်စေနိုင်သည်။ ပြဿနာသည် HTTP/2 ပံ့ပိုးမှုဖြင့် HTTP/XNUMX ပံ့ပိုးမှုဖြင့် HTTP ဆာဗာအများစုကို အတိုင်းအတာတစ်ခုအထိ သက်ရောက်မှုရှိပြီး အလုပ်သမားသည် မှတ်ဉာဏ်ကုန်သွားခြင်း သို့မဟုတ် CPU load များလွန်းခြင်းတို့ကို ဖြစ်ပေါ်စေသည်။ အားနည်းချက်များကို ဖယ်ရှားပေးမည့် အပ်ဒိတ်များကို တင်ပြထားပြီးဖြစ်သည်။ nginx 1.16.1/1.17.3 и H2O ၁၈ဒါပေမယ့် အခုပဲ မရရှိနိုင်ပါ။ Apache httpd နှင့် အခြားထုတ်ကုန်များ.

ဒွိဖွဲ့စည်းပုံများအသုံးပြုခြင်းနှင့်ဆက်စပ် HTTP/2 ပရိုတိုကောတွင်ထည့်သွင်းထားသောရှုပ်ထွေးမှုများ၊ ချိတ်ဆက်မှုများအတွင်းဒေတာစီးဆင်းမှုကိုကန့်သတ်သည့်စနစ်၊ စီးဆင်းမှုဦးစားပေးလုပ်ဆောင်မှုယန္တရားနှင့် HTTP/2 ချိတ်ဆက်မှုတွင်လုပ်ဆောင်နေသော ICMP ကဲ့သို့သောထိန်းချုပ်မှုစာတိုများရှိနေခြင်းမှရရှိလာသည့်ပြဿနာများ အဆင့် (ဥပမာ၊ ping၊ ပြန်လည်သတ်မှတ်ခြင်းနှင့် စီးဆင်းမှု ဆက်တင်များ)။ အကောင်အထည်ဖော်မှုများစွာသည် ထိန်းချုပ်မှုမက်ဆေ့ချ်များ၏ စီးဆင်းမှုကို ကောင်းစွာမကန့်သတ်ထားဘဲ၊ တောင်းဆိုမှုများလုပ်ဆောင်နေချိန်တွင် ဦးစားပေးတန်းစီကို ထိရောက်စွာမစီမံနိုင်ခဲ့ သို့မဟုတ် စီးဆင်းမှုထိန်းချုပ်မှုဆိုင်ရာ အယ်လဂိုရီသမ်များ၏ အကောင်းမွန်ဆုံးအကောင်အထည်ဖော်မှုများကို အသုံးပြုခဲ့သည်။

ဖော်ထုတ်ထားသော တိုက်ခိုက်မှုနည်းလမ်းအများစုသည် အချို့သောတောင်းဆိုမှုများကို ဆာဗာသို့ပေးပို့ခြင်းမှ ဆင်းသက်လာပြီး တုံ့ပြန်မှုအများအပြားကို ဖြစ်ပေါ်စေသည်။ အကယ်၍ client သည် socket မှ ဒေတာကို မဖတ်ဘဲ ချိတ်ဆက်မှုကို မပိတ်ပါက၊ server side ရှိ တုံ့ပြန်မှု buffering တန်းစီသည် စဉ်ဆက်မပြတ် ပြည့်သွားမည်ဖြစ်သည်။ ဤအပြုအမူသည် ကွန်ရက်ချိတ်ဆက်မှုများကို လုပ်ဆောင်ရန်အတွက် တန်းစီစီမံခန့်ခွဲမှုစနစ်တွင် ဝန်ကိုဖန်တီးပေးပြီး အကောင်အထည်ဖော်မှုအင်္ဂါရပ်များပေါ်မူတည်၍ ရရှိနိုင်သောမှတ်ဉာဏ် သို့မဟုတ် CPU ရင်းမြစ်များ ကုန်ဆုံးသွားစေသည်။

ဖော်ထုတ်ထားသော အားနည်းချက်များ-

  • CVE-2019-9511 (Data Dribble) - တိုက်ခိုက်သူသည် လျှောကျနေသောဝင်းဒိုးအရွယ်အစားနှင့် thread ဦးစားပေးကို ကြိုးကိုင်ခြင်းဖြင့် များပြားလှသော ဒေတာပမာဏကို 1-byte လုပ်ကွက်များတွင် ဆာဗာအား တန်းစီခိုင်းစေခြင်းဖြင့်၊
  • CVE-2019-9512 (Ping Flood) - တိုက်ခိုက်သူသည် HTTP/2 ချိတ်ဆက်မှုမှတစ်ဆင့် ping မက်ဆေ့ဂျ်များကို အဆက်မပြတ် အဆိပ်သင့်စေကာ အခြားတစ်ဖက်တွင် ပေးပို့တုံ့ပြန်မှုများ၏အတွင်းပိုင်းတန်းစီခြင်းကို ဖြစ်စေသည်။
  • CVE-2019-9513 (Resource Loop) - တိုက်ခိုက်သူသည် တောင်းဆိုချက်အတိုအထွာများကို ဖန်တီးပြီး ဦးစားပေးသစ်ပင်ကို မွှေနှောက်သွားစေသည်။
  • CVE-2019-9514 (Reset Flood) - တိုက်ခိုက်သူသည် စာတွဲများစွာကို ဖန်တီးသည်
    ဆာဗာမှ RST_STREAM ဘောင်များကို ပေးပို့စေကာ စာတွဲတစ်ခုစီမှ မမှန်မကန်တောင်းဆိုမှုကို ပေးပို့သော်လည်း တုံ့ပြန်မှုတန်းစီခြင်းကို ဖြည့်စွက်ရန် ၎င်းတို့ကို လက်မခံပါ။

  • CVE-2019-9515 (Settings Flood) - တိုက်ခိုက်သူသည် တောင်းဆိုချက်တစ်ခုစီ၏ လက်ခံရရှိမှုကို အသိအမှတ်ပြုရမည်ဖြစ်ပြီး ဆာဗာမှ တုံ့ပြန်သည့်အနေဖြင့် အချည်းနှီးသော “SETTINGS” ဘောင်များကို ပေးပို့သည်။
  • CVE-2019-9516 (0-Length Headers Leak) - တိုက်ခိုက်သူသည် null name နှင့် null value ပါသော headers များကို ပေးပို့ပြီး header တစ်ခုစီကို သိမ်းဆည်းရန်အတွက် ဆာဗာသည် memory အတွင်းရှိ ကြားခံတစ်ခုကို ခွဲဝေပေးကာ session ပြီးဆုံးသည်အထိ ၎င်းကို မလွှတ်ပေးပါ။ ;
  • CVE-2019-9517 (Internal Data Buffering) - တိုက်ခိုက်သူ ဖွင့်သည်။
    ဆာဗာအတွက် HTTP/2 လျှောဝင်းဒိုးသည် ကန့်သတ်ချက်များမရှိဘဲ ဒေတာပေးပို့ရန်၊ သို့သော် TCP ဝင်းဒိုးကို ပိတ်ထားပြီး ဒေတာများကို socket သို့ အမှန်တကယ်ရေးသားခြင်းမှ ကာကွယ်ပေးသည်။ ထို့နောက်၊ တိုက်ခိုက်သူသည် ကြီးမားသောတုံ့ပြန်မှုလိုအပ်သည့် တောင်းဆိုချက်များကို ပေးပို့သည်။

  • CVE-2019-9518 (Empty Frames Flood) - တိုက်ခိုက်သူသည် DATA၊ HEADERS၊ CONTINUATION သို့မဟုတ် PUSH_PROMISE အမျိုးအစား ဖရိမ်များကို ပေးပို့သည်၊ သို့သော် payload အလွတ်နှင့် flow termination flag မရှိပါ။ ဆာဗာသည် ဖရိမ်တစ်ခုစီကို လုပ်ဆောင်ရာတွင် အချိန်ဖြုန်းသည်၊ တိုက်ခိုက်သူမှ အသုံးပြုသော bandwidth နှင့် အချိုးမညီပါ။

source: opennet.ru

မှတ်ချက် Add