DNS ကက်ရှ်ထဲသို့ အတုအယောင်ဒေတာကို ထည့်သွင်းရန် SAD DNS တိုက်ခိုက်မှုအသစ်

ကယ်လီဖိုးနီးယားတက္ကသိုလ်၊ Riverside မှ သုတေသီအဖွဲ့တစ်ဖွဲ့သည် CVE-2021-20322 အားနည်းချက်ကို တားဆီးရန် ပြီးခဲ့သောနှစ်တွင် CVE-2020-25705 အားနည်းချက်ကို ပိတ်ဆို့ရန် အကာအကွယ်များ ထည့်သွင်းထားသော်လည်း လုပ်ဆောင်နိုင်သည့် SAD DNS တိုက်ခိုက်မှု (CVE-XNUMX-XNUMX) ၏ မူကွဲအသစ်ကို ထုတ်ပြန်ခဲ့သည်။ နည်းလမ်းအသစ်သည် ယေဘူယျအားဖြင့် ယခင်နှစ်၏ အားနည်းချက်နှင့် ဆင်တူပြီး တက်ကြွသော UDP ဆိပ်ကမ်းများကို စစ်ဆေးရန်အတွက် မတူညီသော ICMP ပက်ကတ်များကို အသုံးပြုခြင်းတွင်သာ ကွဲပြားပါသည်။ အဆိုပြုထားသော တိုက်ခိုက်မှုသည် ကက်ရှ်အတွင်းရှိ မတရားဒိုမိန်းတစ်ခု၏ IP လိပ်စာကို အစားထိုးရန်နှင့် တိုက်ခိုက်သူ၏ ဆာဗာသို့ ဒိုမိန်းသို့ တောင်းဆိုမှုများကို ပြန်လည်ညွှန်းရန် အသုံးပြုနိုင်သည့် DNS ဆာဗာ ကက်ရှ်တွင် အတုအယောင်ဒေတာကို အစားထိုးနိုင်သည်။

အဆိုပြုထားသောနည်းလမ်းသည် Linux ရှိ ICMP packet processing ယန္တရား၏ထူးခြားချက်များနှင့်ချိတ်ဆက်မှုကြောင့် Linux network stack တွင်သာအလုပ်လုပ်သည်၊၊ ပေးပို့ရန်ဆာဗာမှအသုံးပြုသော UDP port နံပါတ်၏ဆုံးဖြတ်ခြင်းကိုရိုးရှင်းလွယ်ကူစေသော data ယိုစိမ့်မှုအရင်းအမြစ်တစ်ခုအနေဖြင့်လုပ်ဆောင်သည်။ ပြင်ပတောင်းဆိုမှု။ အချက်အလက်ပေါက်ကြားမှုကို ပိတ်ဆို့ထားသည့် အပြောင်းအလဲများကို သြဂုတ်လကုန်တွင် Linux kernel တွင် လက်ခံကျင့်သုံးခဲ့သည် (ပြင်ဆင်မှုကို kernel 5.15 နှင့် စက်တင်ဘာလတွင် kernel ၏ LTS အကိုင်းအခက်များသို့ အပ်ဒိတ်များတွင် ထည့်သွင်းခဲ့သည်)။ Jenkins Hash အစား ကွန်ရက် ကက်ရှ်များတွင် SipHash hashing algorithm ကို အသုံးပြုခြင်းသို့ ပြောင်းလဲခြင်းမှ အကျုံးဝင်ပါသည်။ ဖြန့်ဝေမှုများတွင် အားနည်းချက်ကို ပြင်ဆင်ခြင်း၏ အခြေအနေကို ဤစာမျက်နှာများတွင် အကဲဖြတ်နိုင်သည်- Debian၊ RHEL၊ Fedora၊ SUSE၊ Ubuntu။

ပြဿနာကို ဖော်ထုတ်ခဲ့သော သုတေသီများ၏ အဆိုအရ OpenDNS နှင့် Quad38 (9) ကဲ့သို့သော လူကြိုက်များသော DNS ဝန်ဆောင်မှုများ အပါအဝင် ကွန်ရက်ပေါ်ရှိ ပွင့်လင်းဖြေရှင်းသူ 9.9.9.9% ခန့်သည် ထိခိုက်လွယ်သည်။ ဆာဗာဆော့ဖ်ဝဲလ်အတွက်၊ Linux ဆာဗာပေါ်တွင် BIND၊ Unbound နှင့် dnsmasq ကဲ့သို့သော ပက်ကေ့ဂျ်များကို အသုံးပြုခြင်းဖြင့် တိုက်ခိုက်နိုင်သည်။ Windows နှင့် BSD စနစ်များတွင် အသုံးပြုနေသည့် DNS ဆာဗာများတွင် ပြဿနာမပေါ်ပါ။ တိုက်ခိုက်မှုကို အောင်မြင်စွာဆောင်ရွက်နိုင်ရန်၊ IP spoofing ကို အသုံးပြုရန်လိုအပ်သည်။ တိုက်ခိုက်သူ၏ ISP သည် အရင်းအမြစ် IP လိပ်စာအတုဖြင့် ပက်ကေ့ခ်ျများကို မပိတ်ဆို့ရန် လိုအပ်ပါသည်။

သတိပေးချက်အနေဖြင့်၊ SAD DNS တိုက်ခိုက်မှုသည် Dan Kaminsky မှ 2008 ခုနှစ်တွင် အဆိုပြုထားသော classic DNS cache အဆိပ်သင့်နည်းလမ်းကို ပိတ်ဆို့ရန်အတွက် DNS ဆာဗာများတွင် ထည့်သွင်းထားသော ကာကွယ်မှုများကို ရှောင်လွှဲသွားပါသည်။ Kaminsky ၏နည်းလမ်းသည် 16 bits သာရှိသော DNS query ID အကွက်၏ သေးငယ်သောအရွယ်အစားကို စီမံခန့်ခွဲသည်။ လက်ခံသူအမည်ကို အတုအယောင်ပြုလုပ်ရန်အတွက် လိုအပ်သော မှန်ကန်သော DNS ငွေပေးငွေယူ identifier ကို ရွေးချယ်ရန်၊ တောင်းဆိုမှု 7000 ခန့်ကို ပေးပို့နိုင်ပြီး စိတ်ကူးယဉ်တုံ့ပြန်မှု 140 ခန့်ကို အတုယူရန် လုံလောက်ပါသည်။ တိုက်ခိုက်မှုသည် စိတ်ကူးယဉ် IP ချိတ်ဆွဲခြင်းနှင့် မတူညီသော DNS ငွေပေးငွေယူ သတ်မှတ်ချက်များဖြင့် DNS ဖြေရှင်းသူထံ များပြားသော အစုံလိုက်များ ပေးပို့ခြင်းမှ အကျုံးဝင်သည်။ ပထမတုံ့ပြန်မှု၏ သိမ်းဆည်းခြင်းကို တားဆီးရန်၊ အတုမရှိသော တုံ့ပြန်မှုတစ်ခုစီတွင် အနည်းငယ်ပြုပြင်ထားသော ဒိုမိန်းအမည် (1.example.com၊ 2.example.com၊ 3.example.com စသည်) ပါရှိသည်။

ဤတိုက်ခိုက်မှုအမျိုးအစားကို ကာကွယ်ရန်၊ DNS ဆာဗာထုတ်လုပ်သူများသည် ဖြေရှင်းချက်တောင်းဆိုမှုများကို ပေးပို့သည့် အရင်းအမြစ်ကွန်ရက် ports များ၏ နံပါတ်များကို ကျပန်းဖြန့်ချီကာ identifier ၏ မလုံလောက်မှုအရွယ်အစားအတွက် လျော်ကြေးပေးပါသည်။ စိတ်ကူးယဉ်တုံ့ပြန်မှုတစ်ခုပေးပို့ခြင်းအတွက် အကာအကွယ်ကိုအကောင်အထည်ဖော်ပြီးနောက်၊ 16-bit identifier ကိုရွေးချယ်ခြင်းအပြင်၊ ရွေးချယ်မှုအရေအတွက်ကို 64^2 သို့တိုးမြှင့်ပေးသည့် 32 ports များထဲမှ တစ်ခုကို ရွေးချယ်ရန် လိုအပ်လာသည်။

SAD DNS နည်းလမ်းသည် သင့်အား ကွန်ရက်ဝင်ပေါက်နံပါတ်၏ ဆုံးဖြတ်ချက်များကို ရိုးရှင်းလွယ်ကူစေပြီး တိုက်ခိုက်မှုကို ဂန္တဝင် Kaminsky နည်းလမ်းသို့ လျှော့ချနိုင်စေပါသည်။ တိုက်ခိုက်သူသည် ICMP တုံ့ပြန်မှုပက်ကေ့ချ်များကို လုပ်ဆောင်သောအခါတွင် ကွန်ရက်ပေါက်ပေါက်များ၏ လုပ်ဆောင်ချက်နှင့်ပတ်သက်သည့် ပေါက်ကြားလာသည့်အချက်အလက်များကို အခွင့်ကောင်းယူပြီး အသုံးမပြုသောနှင့် အသုံးပြုနေသော UDP ဆိပ်ကမ်းများသို့ ဝင်ရောက်ကြည့်ရှုနိုင်သည်ကို တွေ့ရှိနိုင်သည်။ နည်းလမ်းသည် ကျွန်ုပ်တို့အား 4^2 (16_2_16_2) အစား 32^131+072^4 (294_967_296_XNUMX) ပမာဏ XNUMX ခုဖြင့် ရှာဖွေမှုရွေးချယ်စရာအရေအတွက်ကို လျှော့ချနိုင်စေပါသည်။ တက်ကြွသော UDP ဆိပ်ကမ်းများကို လျင်မြန်စွာ ဆုံးဖြတ်နိုင်စေမည့် အချက်အလက်ပေါက်ကြားမှုသည် အကွဲကွဲအပြားပြားတောင်းဆိုမှုများ (ICMP Fragmentation Needed flag) သို့မဟုတ် ပြန်ညွှန်းခြင်း (ICMP Redirect flag) ဖြင့် ICMP ပက်ကေ့ခ်ျများကို လုပ်ဆောင်ခြင်းအတွက် ကုဒ်ချို့ယွင်းချက်ကြောင့် ဖြစ်ပေါ်လာခြင်းဖြစ်သည်။ ထိုသို့သော packet များကို ပေးပို့ခြင်းသည် UDP port သည် မည်သည့်အရာက လုပ်ဆောင်နေပြီး မည်သည့်ဆာဗာ၏ တုံ့ပြန်မှုအပေါ် အခြေခံ၍ ဆုံးဖြတ်နိုင်စေသည့် ကွန်ရက် stack ရှိ ကက်ရှ်အခြေအနေကို ပြောင်းလဲစေသည်။

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

source: opennet.ru

မှတ်ချက် Add