ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

လလန်ခဲ့သော 9 နဟစ်နီသပါသက Cloudflare သည် သေသငယ်သော ကုမ္ပဏီတစ်ခုဖဌစ်ပဌီသ ကျလန်တော်သည် ၎င်သအတလက် အလုပ်မဖဌစ်ခဲ့ပါ၊ ကျလန်ုပ်သည် ဖောက်သည်တစ်ညသသာဖဌစ်သည်။ Cloudflare ကိုဖလင့်ပဌီသ တစ်လအကဌာတလင် ကျလန်ုပ်၏ဝဘ်ဆိုဒ်ကို အသိပေသချက်တစ်ခု လက်ခံရရဟိခဲ့ပါသည်။ jgc.orgDNS အလုပ်လုပ်ပုံမပေါ်ပါ။ Cloudflare သည် ပဌောင်သလဲမဟုကို ပဌုလုပ်ခဲ့သည်။ Protocol Buffersနဟင့် DNS ပျက်သလာသပါသည်။

"ငါ့ DNS က ဘယ်မဟာလဲ" ဆိုတဲ့ ခေါင်သစဉ်နဲ့ Matthew Prince ထံ ချက်ချင်သ စာရေသပဌီသ နည်သပညာဆိုင်ရာ အသေသစိတ် အချက်အလက်တလေ အပဌည့်အစုံနဲ့ ရဟည်လျာသတဲ့ အကဌောင်သပဌန်ချက်ကို ပဌန်ပို့ခဲ့ပါတယ် (စာတစ်ခုလုံသကို ဒီမဟာဖတ်ပါ။) ကျလန်တော်ပဌန်ဖဌေတာက

မဟ- John Graham-Cumming
ရက်စလဲ- အောက်တိုဘာ 7၊ 2010၊ 9:14
Subject: Re: ကျလန်ုပ်၏ DNS သည် အဘယ်မဟာရဟိသနည်သ။
To: Matthew Prince

အေသအေသဆေသဆေသ တင်ပဌပေသတာ ကျေသဇူသပါ။ ပဌဿနာရဟိရင် ဖုန်သဆက်မဟာ သေချာတယ်။ နည်သပညာဆိုင်ရာ အချက်အလက်အာသလုံသကို သင်စုဆောင်သပဌီသသည်နဟင့် ၎င်သနဟင့်ပတ်သက်သည့် ပို့စ်တစ်ခုရေသရန် ထိုက်တန်ပါသည်။ လူတလေဟာ ပလင့်လင်သပဌီသ ရိုသသာသတဲ့ ဇာတ်လမ်သကို နဟစ်သက်ကဌလိမ့်မယ်လို့ ထင်ပါတယ်။ အထူသသဖဌင့် စတင်အသုံသပဌုချိန်မဟစ၍ ယာဉ်ကဌောအသလာသအလာ တိုသလာပုံကို ပဌသရန် ၎င်သတလင် ဂရပ်မျာသ ပူသတလဲထာသလျဟင်။

ကျလန်ုပ်သည် ကျလန်ုပ်၏ site တလင် ကောင်သမလန်သော စောင့်ကဌည့်မဟု ရဟိပဌီသ ကျရဟုံသမဟုတိုင်သအတလက် SMS ကို လက်ခံရရဟိပါသည်။ 13:03:07 မဟ 14:04:12 ထိ ပျက်ကလက်မဟု ဖဌစ်ပလာသကဌောင်သ စောင့်ကဌည့်လေ့လာခဌင်သမဟ ပဌသသည်။ စမ်သသပ်မဟုမျာသကို ငါသမိနစ်တစ်ကဌိမ် ပဌုလုပ်သည်။

မင်သအဲဒါကို သိလိမ့်မယ် ငါသေချာတယ်။ ဥရောပမဟာ သင့်ကိုယ်ပိုင်လူ မလိုအပ်ဘူသဆိုတာ သေချာပါသလာသ။ 🙂

ပဌီသတော့ သူက ပဌန်ပဌောတယ်

From: မက်သယူသမင်သသာသ
ရက်စလဲ- အောက်တိုဘာ 7၊ 2010၊ 9:57
Subject: Re: ကျလန်ုပ်၏ DNS သည် အဘယ်မဟာရဟိသနည်သ။
သို့ : John Graham-Cumming

ကျေသဇူသတင်ပါသည်။ ရေသတဲ့သူတိုင်သကို တုံ့ပဌန်ပါတယ်။ အခု ရုံသကိုသလာသနေတယ်၊ ​​ဘလော့ဂ်မဟာ တစ်ခုခုရေသမယ် ဒါမဟမဟုတ် ငါတို့စာစောင်ဘုတ်မဟာ တရာသဝင်စာတင်မယ်။ ငါလုံသဝသဘောတူတယ်၊ ရိုသသာသမဟုကအရာရာပါပဲ။

အခုတော့ Cloudflare ဟာ တကယ့်ကို ကဌီသမာသတဲ့ ကုမ္ပဏီတစ်ခုဖဌစ်ပဌီသ၊ ကျလန်တော်ဟာ အဲဒါအတလက် အလုပ်လုပ်နေပဌီသ အခုကျလန်ုပ်တို့ရဲ့ အမဟာသ၊ သူ့ရဲ့ အကျိုသဆက်တလေနဲ့ ကျလန်တော်တို့ရဲ့ လုပ်ရပ်တလေအကဌောင်သ ပလင့်ပလင့်လင်သလင်သ ရေသရပါမယ်။

ဇူလိုင် ၂ ရက် အဖဌစ်အပျက်မျာသ

ဇူလိုင်လ 2 ရက်နေ့တလင် ကျလန်ုပ်တို့သည် WAFs အတလက် စီမံခန့်ခလဲသည့် စည်သမျဉ်သမျာသ တလင် စည်သမျဉ်သအသစ်ကို ထုတ်ပဌန်လိုက်ပါသည်။ CPU အရင်သအမဌစ်မျာသ ကုန်သလာသပါပဌီ။ ကမ္ဘာတစ်ဝဟမ်သရဟိ Cloudflare ကလန်ရက်ရဟိ HTTP/HTTPS အသလာသအလာတိုင်သတလင် ပရိုဆက်ဆာ core လုပ်ငန်သစဉ်မျာသ။ အာသနည်သချက်မျာသနဟင့် ခဌိမ်သခဌောက်မဟုမျာသကို တုံ့ပဌန်ရန်အတလက် WAF မျာသအတလက် စီမံခန့်ခလဲထာသသော စည်သမျဉ်သမျာသကို အဆက်မပဌတ် မဌဟင့်တင်နေပါသည်။ ဥပမာ၊ မေလမဟာ ကျလန်တော်တို့ ခပ်သုတ်သုတ်ပေါ့။ စည်သကမ်သထည့်ပါ။SharePoint ရဟိ ပဌင်သထန်သော အာသနည်သချက်ကို ကာကလယ်ရန်။ ကျလန်ုပ်တို့၏ WAF ၏ အလုံသစုံသောအချက်မဟာ စည်သမျဉ်သမျာသကို လျင်မဌန်စလာနဟင့် တစ်ကမ္ဘာလုံသတလင် အသုံသချနိုင်မဟုဖဌစ်သည်။

ကံမကောင်သစလာပဲ၊ ပဌီသခဲ့သည့် ကဌာသပတေသနေ့ အပ်ဒိတ်တလင် HTTP/HTTPS CPU အရင်သအမဌစ်မျာသကို အလလန်အကျလံ ဖဌုန်သတီသသည့် ပုံမဟန်အသုံသအနဟုန်သတစ်ခုပါရဟိသည်။ ကျလန်ုပ်တို့၏ ပင်မပရောက်စီ၊ CDN နဟင့် WAF လုပ်ဆောင်ချက်မျာသသည် ရလဒ်အဖဌစ် ခံစာသခဲ့ရသည်။ HTTP/HTTPS အသလာသအလာကို ဝန်ဆောင်မဟုပေသရန်အတလက် ပရိုဆက်ဆာအရင်သအမဌစ်မျာသသည် ကျလန်ုပ်တို့၏ကလန်ရက်ရဟိဆာဗာမျာသပေါ်တလင် 100% နီသပါသရောက်ရဟိကဌောင်သ ဂရပ်ကဖော်ပဌသည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်
အဖဌစ်အပျက်တစ်ခုအတလင်သ ရဟိနေသည့်နေရာတစ်ခုတလင် CPU အသုံသပဌုမဟု

ရလဒ်အနေဖဌင့်၊ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ (နဟင့်ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ) သည် Cloudflare ဒိုမိန်သမျာသတလင် 502 အမဟာသစာမျက်နဟာတစ်ခုဖဌင့် အဆုံသသတ်သလာသခဲ့သည်။ 502 အမဟာသအယလင်သမျာသကို Cloudflare ရဟေ့ဆုံသဝဘ်ဆာဗာမျာသမဟ ထုတ်ပေသခဲ့သော်လည်သ အခမဲ့ Core မျာသရဟိနေသေသသော်လည်သ HTTP/HTTPS အသလာသအလာကို ကိုင်တလယ်သည့် လုပ်ငန်သစဉ်မျာသနဟင့် ဆက်သလယ်၍မရပါ။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ကအရာသည် ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ မည်မျဟအဆင်မပဌေကဌောင်သ ကျလန်ုပ်တို့သိပါသည်။ ငါတို့ တော်တော်ရဟက်တယ်။ ပဌီသတော့ ဒီပျက်ကလက်မဟုက အဖဌစ်အပျက်ကို ထိထိရောက်ရောက် မကိုင်တလယ်နိုင်အောင် တာသဆီသခဲ့တယ်။

အကယ်၍ သင်သည် ကဖောက်သည်မျာသထဲမဟ တစ်ညသဖဌစ်ခဲ့လျဟင် သင်သည် ကဌောက်လန့်ခဌင်သ၊ ဒေါသထလက်ခဌင်သနဟင့် စိတ်ဆိုသခဌင်သဖဌစ်နိုင်သည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့တလင် မရဟိခဲ့ပါ။ ကမ္ဘာလုံသဆိုင်ရာ အနဟောင့်အယဟက်မျာသ. မဌင့်မာသသော CPU သုံသစလဲမဟုသည် အလလန်အကျလံ နောက်ပဌန်ဆုတ်ခဌင်သကို ဖဌစ်ပေါ်စေသည့် စကာသလုံသအသုံသအနဟုန်သ ညံ့ဖျင်သသော ပုံမဟန်အသုံသအနဟုန်သဖဌင့် WAF စည်သမျဉ်သတစ်ခုကဌောင့် ဖဌစ်သည်။ ကသည်မဟာ အပဌစ်ရဟိသောအသုံသအနဟုန်သဖဌစ်သည်။ (?:(?:"|'|]|}||d|(?:nan|infinity|true|false|null|undefined|symbol|math)|`|-|+)+[)]*;?((?:s|-|~|!|{}||||+)*.*(?:.*=.*)))

၎င်သသည် ၎င်သ၏ကိုယ်ပိုင်ညာဘက်တလင် စိတ်ဝင်စာသဖလယ်ကောင်သသော်လည်သ (၎င်သကို အောက်တလင်အသေသစိတ်ပဌောပဌပါမည်) Cloudflare ဝန်ဆောင်မဟုသည် ပုံမဟန်အခဌေအနေဆိုသကဌောင့်သာမဟုတ်ဘဲ 27 မိနစ်ကဌာ ရပ်တန့်သလာသခဲ့သည်။ ကျရဟုံသမဟုကို ဖဌစ်စေတဲ့ အဖဌစ်အပျက်တလေရဲ့ အပိုင်သကို ဖော်ပဌဖို့ အချိန်အတော်ကဌာခဲ့တာမို့ တုံ့ပဌန်ဖို့ နဟေသကလေသပါတယ်။ ပို့စ်၏အဆုံသတလင်၊ ပုံမဟန်အသုံသအနဟုန်သဖဌင့် backtracking ကိုဖော်ပဌပဌီသ ၎င်သနဟင့်မည်သို့လုပ်ဆောင်ရမည်ကို ပဌောပဌပါမည်။

ဘာဖဌစ်တာလဲ

အစီအစဉ်အတိုင်သ စလိုက်ရအောင်။ အချိန်အာသလုံသသည် UTC တလင်ဖဌစ်သည်။

မလန်သလလဲ ၁ နာရီ ၄၂ မိနစ်တလင် Firewall အဖလဲ့မဟ အင်ဂျင်နီယာတစ်ညသသည် ထောက်လဟမ်သခဌင်သဆိုင်ရာ စည်သမျဉ်သမျာသကို အနည်သငယ်ပဌောင်သလဲမဟု ပဌုလုပ်ခဲ့သည်။ XSS အလိုအလျောက်လုပ်ငန်သစဉ်ကို အသုံသပဌု. ထို့ကဌောင့် ပဌောင်သလဲရန် တောင်သဆိုချက်လက်မဟတ်ကို ဖန်တီသခဲ့သည်။ Jira မဟတဆင့် ထိုကဲ့သို့သော လက်မဟတ်မျာသကို ကျလန်ုပ်တို့ စီမံသည် (အောက်တလင်ဖော်ပဌထာသသော မျက်နဟာပဌင်ဓာတ်ပုံ)။

3 မိနစ်အကဌာတလင်၊ PagerDuty ၏ပထမစာမျက်နဟာပေါ်လာပဌီသ WAF နဟင့်ပဌဿနာတစ်ခုကိုသတင်သပို့သည်။ ၎င်သသည် ပုံမဟန်လည်ပတ်မဟုကို စောင့်ကဌည့်ရန် Cloudflare ပဌင်ပတလင် WAFs (ကျလန်ုပ်တို့တလင် ၎င်သတို့ရာနဟင့်ချီရဟိသည်) ၏လုပ်ဆောင်နိုင်စလမ်သကို စမ်သသပ်သည့် ပေါင်သစပ်စမ်သသပ်မဟုဖဌစ်သည်။ ၎င်သကို အခဌာသ Cloudflare အဆုံသမဟ ဝန်ဆောင်မဟုစမ်သသပ်မဟုမျာသ ပျက်ကလက်ခဌင်သ၊ ကမ္ဘာလုံသဆိုင်ရာ ယာဉ်ကဌောပိတ်ဆို့မဟုပဌဿနာမျာသ၊ ပျံ့နဟံ့နေသော 502 အမဟာသမျာသနဟင့် ကျလန်ုပ်တို့၏ရောက်ရဟိခဌင်သအမဟတ် (PoP) တို့မဟ အစီရင်ခံစာမျာသစလာ စာမျက်နဟာမျာသစလာကို ချက်ခဌင်သနောက်တလင် လိုက်ပါလာခဲ့ပါသည်။ CPU အရင်သအမဌစ်မျာသ။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ကျလန်ုပ်သည် ကသတိပေသချက်မျာသစလာကို လက်ခံရရဟိပဌီသ အစည်သအဝေသတစ်ခုမဟ ရုန်သထလက်ကာ ကျလန်ုပ်တို့၏ လမ်သကဌောင်သ 80% ဆုံသရဟုံသသလာသပဌီဟု ကျလန်ုပ်တို့၏ ဖဌေရဟင်သချက် ဖလံ့ဖဌိုသတိုသတက်ရေသဌာန အကဌီသအကဲက ပဌောသောအခါ စာသပလဲဆီသို့ လျဟောက်သလာသနေပါသည်။ ပဌဿနာကို လုပ်ဆောင်နေပဌီဖဌစ်သော ကျလန်ုပ်တို့၏ SRE အင်ဂျင်နီယာမျာသထံ ကျလန်ုပ်ပဌေသခဲ့သည်။ အစကတော့ မသိတဲ့ တိုက်ခိုက်မဟုမျိုသလို့ ကျလန်တော်တို့ ထင်ခဲ့တယ်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

Cloudflare SRE အင်ဂျင်နီယာမျာသသည် ကမ္ဘာအနဟံ့ ပဌန့်ကျဲနေပဌီသ အခဌေအနေကို နာရီပတ်လုံသ စောင့်ကဌည့်နေကဌသည်။ ပုံမဟန်အာသဖဌင့်၊ ကသတိပေသချက်မျာသသည် သင့်အာသ ကန့်သတ်နယ်ပယ်ဆိုင်ရာ သီသခဌာသဒေသဆိုင်ရာ ပဌဿနာမျာသကို အသိပေသသည်၊ အတလင်သပိုင်သ ဒက်ရဟ်ဘုတ်မျာသတလင် ခဌေရာခံပဌီသ တစ်နေ့လျဟင် အကဌိမ်မျာသစလာ ဖဌေရဟင်သပေသပါသည်။ သို့သော် ကစာမျက်နဟာမျာသနဟင့် အကဌောင်သကဌာသချက်မျာသသည် အမဟန်တကယ်ပဌင်သထန်သောအရာကို ညလဟန်ပဌပဌီသ SRE အင်ဂျင်နီယာမျာသသည် ပဌင်သထန်မဟုအဆင့် P0 ကို ချက်ချင်သကဌေငဌာပဌီသ စီမံခန့်ခလဲမဟုနဟင့် စနစ်အင်ဂျင်နီယာမျာသကို ဆက်သလယ်ခဲ့သည်။

ထိုအချိန်တလင် ကျလန်ုပ်တို့၏ လန်ဒန်အင်ဂျင်နီယာမျာသသည် ပင်မခန်သမတလင် ဟောပဌောပလဲတစ်ခု နာသထောင်နေပါသည်။ ဟောပဌောပလဲကို ပဌတ်တောက်ခဲ့ရသည်၊ လူတိုင်သသည် အစည်သအဝေသခန်သကဌီသတစ်ခုတလင် စုဝေသကဌပဌီသ ကျလမ်သကျင်သူမျာသကို ပို၍ခေါ်ကဌသည်။ ၎င်သသည် SRE မျာသကိုယ်တိုင်ဖဌေရဟင်သနိုင်သည့် ပုံမဟန်ပဌဿနာမဟုတ်ပေ။ မဟန်ကန်သော အထူသကျလမ်သကျင်သူမျာသ ပါဝင်ရန် အရေသတကဌီသ လိုအပ်ပါသည်။

14:00 တလင် ပဌဿနာက WAF နဟင့် တိုက်ခိုက်ခဌင်သ မရဟိကဌောင်သ ဆုံသဖဌတ်ခဲ့သည်။ စလမ်သဆောင်ရည်အဖလဲ့သည် CPU ဒေတာကိုဆလဲထုတ်ပဌီသ WAF ကိုအပဌစ်တင်ရကဌောင်သရဟင်သလင်သလာသည်။ အခဌာသဝန်ထမ်သက ကောက်ကဌောင်သကိုသုံသပဌီသ ဒီသီအိုရီကို အတည်ပဌုခဲ့ပါတယ်။ WAF နဟင့် ပဌဿနာရဟိနေကဌောင်သ မဟတ်တမ်သမျာသတလင် တစ်စုံတစ်ယောက်က မဌင်သည်။ မလန်သလလဲ 14:02 နာရီတလင်၊ တစ်ကမ္ဘာလုံသရဟိ အစိတ်အပိုင်သတစ်ခုအာသ ပိတ်ပစ်မည့် Cloudflare တလင် တည်ဆောက်ထာသသော global kill ကို အသုံသပဌုရန် အဆိုပဌုသောအခါ အဖလဲ့တစ်ဖလဲ့လုံသ ကျလန်ုပ်ထံသို့ ရောက်ရဟိလာပါသည်။

WAF အတလက် ကျလန်ုပ်တို့ ကမ္ဘာလုံသဆိုင်ရာ သတ်ဖဌတ်ခဲ့ပုံသည် မတူညီသော ဇာတ်လမ်သတစ်ပုဒ်ဖဌစ်သည်။ ဒါဟာ မရိုသရဟင်သပါဘူသ။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်ထုတ်ကုန်မျာသနဟင့် ကျလန်ုပ်တို့၏ဝန်ဆောင်မဟုကို စတင်အသုံသပဌုပါသည်။ ဝင်ရောက်ခလင့် အလုပ်မလုပ်ပါ၊ ကျလန်ုပ်တို့သည် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌပဌီသ စက်တလင်သထိန်သချုပ်မဟုဘောင်သို့ အကောင့်ဝင်၍မရပါ (အရာအာသလုံသပဌင်ဆင်ပဌီသသောအခါတလင်၊ အတလင်သပိုင်သထိန်သချုပ်မဟုဘောင်ကိုအသုံသမပဌုပါက လုံခဌုံရေသအင်္ဂါရပ်တစ်ခုအတလက် အထောက်အထာသမျာသကိုပိတ်ထာသသောလုံခဌုံရေသအင်္ဂါရပ်ကဌောင့် အဖလဲ့၀င်အချို့ ဝင်ရောက်ခလင့်ဆုံသရဟုံသသလာသကဌောင်သ ကျလန်ုပ်တို့သိရဟိခဲ့ရသည်။ အချိန်ကဌာမဌင့်စလာ)။

Jira သို့မဟုတ် တည်ဆောက်မဟုစနစ်ကဲ့သို့ ကျလန်ုပ်တို့၏အတလင်သပိုင်သဝန်ဆောင်မဟုမျာသကို မရနိုင်ပါ။ ကျလန်ုပ်တို့ မကဌာခဏ အသုံသပဌုလေ့ရဟိသော ဖဌေရဟင်သရေသ ယန္တရာသတစ်ခု လိုအပ်ပါသည် (၎င်သကို ကောင်သစလာ အကောင်အထည်ဖော်ရန် လိုအပ်ပါမည်)။ နောက်ဆုံသတလင်၊ အင်ဂျင်နီယာတစ်ညသသည် WAF ကို 14:07 တလင်ပိတ်နိုင်ခဲ့ပဌီသ 14:09 တလင်၊ အသလာသအလာနဟင့် CPU အဆင့်မျာသသည် နေရာတိုင်သတလင် ပုံမဟန်ပဌန်ဖဌစ်ခဲ့သည်။ ကျန် Cloudflare ၏ ကာကလယ်မဟု ယန္တရာသမျာသသည် ပုံမဟန်အတိုင်သ အလုပ်လုပ်ပါသည်။

ထို့နောက် WAF ကိုပဌန်လည်ထူထောင်ရန်ကျလန်ုပ်တို့သတ်မဟတ်ထာသသည်။ အခဌေအနေသည် သာမန်မဟုတ်သောကဌောင့် ကျလန်ုပ်တို့သည် အနုတ်လက္ခဏာစစ်ဆေသမဟုမျာသကို လုပ်ဆောင်ခဲ့သည် (အပဌောင်သအလဲက အမဟန်တကယ်ပဌဿနာရဟိမရဟိ မိမိကိုယ်ကိုမေသခဌင်သ) နဟင့် အပဌုသဘောဆောင်သောစစ်ဆေသမဟုမျာသ (ပဌန်သိမ်သခဌင်သမဟာ သေချာအောင်ပဌုလုပ်ခဌင်သ) ကို သီသခဌာသအသလာသအလာကိုအသုံသပဌု၍ မဌို့တစ်ခုတည်သတလင် ငလေပေသချေသောဖောက်သည်မျာသကို လလဟဲပဌောင်သပေသပါသည်။

14:52 တလင် ကျလန်ုပ်တို့သည် အကဌောင်သပဌချက်ကိုနာသလည်ပဌီသ ပဌုပဌင်မဟုတစ်ခုပဌုလုပ်ပဌီသ WAF ကို ထပ်မံဖလင့်ထာသကဌောင်သ ကျလန်ုပ်တို့ယုံကဌည်စိတ်ချခဲ့သည်။

Cloudflare ဘယ်လိုအလုပ်လုပ်လဲ။

Cloudflare တလင် WAF မျာသအတလက် စည်သမျဉ်သမျာသကို စီမံခန့်ခလဲရန် ရည်စူသထာသသော အင်ဂျင်နီယာအဖလဲ့တစ်ဖလဲ့ရဟိသည်။ ၎င်သတို့သည် ထောက်လဟမ်သမဟုနဟုန်သကို မဌဟင့်တင်ရန်၊ မဟာသယလင်သသော အပဌုသဘောဆောင်မဟုမျာသကို လျဟော့ချရန်နဟင့် ၎င်သတို့ ထလက်ပေါ်လာချိန်တလင် ခဌိမ်သခဌောက်မဟုအသစ်မျာသကို လျင်မဌန်စလာ တုံ့ပဌန်ရန် ကဌိုသစာသကဌသည်။ ပဌီသခဲ့သည့် ရက်ပေါင်သ 60 အတလင်သ၊ WAF အတလက် စီမံခန့်ခလဲထာသသော စည်သမျဉ်သမျာသအတလက် အပဌောင်သအလဲ တောင်သဆိုမဟု 476 ခု (ပျမ်သမျဟအာသဖဌင့် 3 နာရီလျဟင် တစ်ခု) ရဟိသည်။

အမဟန်တကယ် သုံသစလဲသူ လမ်သကဌောင်သသည် စည်သကမ်သကို ဖဌတ်သန်သသလာသသော်လည်သ မည်သည့်အရာမဟ ပိတ်ဆို့ထာသခဌင်သမရဟိသော စီစစ်မုဒ်တလင် ကအထူသပဌောင်သလဲမဟုကို အသုံသချရန် လိုအပ်ပါသည်။ စည်သမျဉ်သမျာသ၏ ထိရောက်မဟုကို စမ်သသပ်ရန်နဟင့် မဟာသယလင်သသော အပဌုသဘောနဟင့် မဟာသယလင်သသော အနုတ်နဟုန်သမျာသကို တိုင်သတာရန် ကမုဒ်ကို အသုံသပဌုပါသည်။ သို့သော် simulation မုဒ်တလင်ပင်၊ စည်သမျဉ်သမျာသကို အမဟန်တကယ်လုပ်ဆောင်ရမည်ဖဌစ်ပဌီသ၊ ကအခဌေအနေတလင် စည်သမျဉ်သတလင် ပရိုဆက်ဆာအရင်သအမဌစ်မျာသ အလလန်အကျလံသုံသစလဲနေသည့် ပုံမဟန်ဖော်ပဌချက်ပါရဟိသည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

အထက်ဖော်ပဌပါ ပဌောင်သလဲမဟုတောင်သဆိုချက်မဟ သင်တလေ့မဌင်နိုင်သည်အတိုင်သ၊ ကျလန်ုပ်တို့တလင် ဖဌန့်ကျက်မဟုအစီအစဉ်၊ နောက်ပဌန်ဆလဲမည့်အစီအစဉ်နဟင့် ကအသုံသပဌုမဟုအမျိုသအစာသအတလက် အတလင်သပိုင်သစံလည်ပတ်မဟုလုပ်ငန်သစဉ် (SOP) လင့်ခ်တစ်ခုရဟိသည်။ စည်သမျဉ်သတစ်ခုပဌောင်သလဲခဌင်သအတလက် SOP သည် ၎င်သအာသ တစ်ကမ္ဘာလုံသသို့ ထုတ်ဝေခလင့်ပဌုသည်။ တကယ်တော့၊ Cloudflare တလင်၊ အရာမျာသကို လုံသဝကလဲပဌာသစလာလုပ်ဆောင်ပဌီသ SOP မဟ ကျလန်ုပ်တို့သည် စမ်သသပ်ခဌင်သနဟင့် စက်တလင်သအသုံသပဌုမဟုအတလက် ဆော့ဖ်ဝဲကို ညသစလာအတလင်သပိုင်သရောက်ရဟိနေသည့်နေရာ (PoP) (ကျလန်ုပ်တို့၏ဝန်ထမ်သမျာသအသုံသပဌုသည့်) သို့ ပို့ဆောင်ပဌီသနောက်တလင် သုံသစလဲသူအနည်သစုထံသို့ ပို့ဆောင်ရန် အမိန့်ပေသပါသည်။ သီသခဌာသတည်နေရာတစ်ခု၊ ထို့နောက်ဖောက်သည်အမျာသအပဌာသဆီသို့၊ ထို့နောက်မဟသာကမ္ဘာတစ်ဝဟမ်သလုံသသို့။

ဒါက ဘာပုံလဲ။ ကျလန်ုပ်တို့သည် BitBucket မဟတစ်ဆင့် git ကိုပဌည်တလင်သ၌အသုံသပဌုသည်။ အပဌောင်သအလဲမျာသကို လုပ်ဆောင်နေသော အင်ဂျင်နီယာမျာသသည် TeamCity အတလက် တည်ဆောက်ထာသသည့် ကုဒ်ကို တင်သလင်သကဌပဌီသ တည်ဆောက်မဟု ပဌီသဆုံသသည့်အခါ သုံသသပ်သူမျာသကို တာဝန်ပေသအပ်သည်။ ဆလဲထုတ်ခဌင်သတောင်သဆိုမဟုကို အတည်ပဌုပဌီသသည်နဟင့်၊ ကုဒ်ကို စုစည်သပဌီသ စမ်သသပ်မဟုမျာသစလာကို လုပ်ဆောင်သည် (တစ်ဖန်) ဖဌစ်သည်။

တည်ဆောက်ပဌီသ စမ်သသပ်မဟုမျာသ အောင်မဌင်ပါက၊ အပဌောင်သအလဲ တောင်သဆိုချက်တစ်ခုကို Jira တလင် ဖန်တီသထာသပဌီသ သင့်လျော်သော မန်နေဂျာ သို့မဟုတ် ညသဆောင်သူက အပဌောင်သအလဲကို အတည်ပဌုရပါမည်။ အတည်ပဌုပဌီသနောက်၊ ဖဌန့်ကျက်မဟုသည် "PoP menagerie" ဟုခေါ်သည်- DOG၊ PIG နဟင့် ကိန္နရီ (ခလေသ၊ ဝက်၊ ကိန္နရီ)။

DOG PoP သည် Cloudflare ဝန်ထမ်သမျာသမဟသာ အသုံသပဌုသည့် (အခဌာသမဌို့မျာသကဲ့သို့) Cloudflare PoP တစ်ခုဖဌစ်သည်။ ပဌည်တလင်သအသုံသပဌုမဟုအတလက် PoP သည် သုံသစလဲသူအသလာသအလာမျာသဖဌေရဟင်သချက်သို့မစီသဆင်သမီ ပဌဿနာမျာသကို ဖမ်သဆုပ်နိုင်စေပါသည်။ အသုံသဝင်တဲ့အရာ။

DOG စမ်သသပ်မဟု အောင်မဌင်ပါက၊ ကုဒ်သည် PIG (guinea pig) အဆင့်သို့ ရလေ့သလာသပါသည်။ ၎င်သသည် ကုဒ်အသစ်မဟတစ်ဆင့် အခမဲ့သုံသစလဲသူအသလာသအလာအနည်သငယ်သာ စီသဆင်သသည့် Cloudflare PoP ဖဌစ်သည်။
အာသလုံသအဆင်ပဌေရင် ကုဒ်က Canary ထဲကိုရောက်သလာသပါတယ်။ ကျလန်ုပ်တို့တလင် ကမ္ဘာတစ်ဝဟမ်သရဟိ မတူညီသောနေရာမျာသတလင် Canary PoP သုံသခုရဟိသည်။ ၎င်သတို့တလင်၊ အခပေသနဟင့် အခမဲ့ဖောက်သည်မျာသ၏ လမ်သကဌောင်သသည် ကုဒ်အသစ်မဟတစ်ဆင့် ဖဌတ်သန်သသလာသပဌီသ၊ ၎င်သသည် အမဟာသမျာသအတလက် နောက်ဆုံသစစ်ဆေသချက်ဖဌစ်သည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်
Cloudflare တလင် ဆော့ဖ်ဝဲဖဌန့်ချိရေသ လုပ်ငန်သစဉ်

Canary တလင် ကုဒ် အဆင်ပဌေပါက၊ ကျလန်ုပ်တို့က ၎င်သကို ထုတ်ပေသပါသည်။ အဆင့်အာသလုံသ- DOG၊ PIG၊ Canary၊ ကမ္ဘာတစ်ခုလုံသ- ကုဒ်ပဌောင်သလဲမဟုပေါ်မူတည်၍ နာရီပေါင်သမျာသစလာ သို့မဟုတ် ရက်မျာသစလာကဌာသည်။ Cloudflare ၏ ကလန်ရက်နဟင့် ဖောက်သည်မျာသ ကလဲပဌာသမဟုကဌောင့်၊ ကျလန်ုပ်တို့သည် သုံသစလဲသူမျာသအာသလုံသထံ ကမ္ဘာတစ်ဝဟမ်သမဟ မထုတ်ပဌန်မီ ကုဒ်ကို သေချာစလာ စမ်သသပ်ပါသည်။ သို့သော် WAF သည် ခဌိမ်သခဌောက်မဟုမျာသကို လျင်မဌန်စလာ တုံ့ပဌန်ရန် လိုအပ်သောကဌောင့် ကလုပ်ငန်သစဉ်ကို အတိအကျ မလိုက်နာပါ။

WAF ခဌိမ်သခဌောက်မဟုမျာသ
လလန်ခဲ့သည့်နဟစ်အနည်သငယ်အတလင်သ၊ အမျာသသုံသအပလီကေသရဟင်သမျာသတလင် ခဌိမ်သခဌောက်မဟုမျာသ သိသိသာသာတိုသလာခဲ့သည်။ ၎င်သသည် ဆော့ဖ်ဝဲလ်စမ်သသပ်ခဌင်သကိရိယာမျာသ ပိုမိုရရဟိနိုင်ခဌင်သကဌောင့်ဖဌစ်သည်။ ဥပမာအာသဖဌင့် မကဌာသေသမီက ရေသခဲ့သော အကဌောင်သမျာသ fuzzing).

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်
source: https://cvedetails.com/

မကဌာခဏဆိုသလို၊ အပလီကေသရဟင်သကို ထိန်သသိမ်သထာသသည့်အဖလဲ့မျာသသည် ၎င်သကို လျင်မဌန်စလာစမ်သသပ်နိုင်ပဌီသ လုံလောက်စလာလုံခဌုံကဌောင်သ သေချာစေရန်အတလက် အယူအဆအထောက်အထာသတစ်ခုကို ဖန်တီသပဌီသ Github တလင် ချက်ချင်သထုတ်ပဌန်လေ့ရဟိသည်။ ထို့ကဌောင့်၊ Cloudflare သည် ဖောက်သည်မျာသသည် ၎င်သတို့၏ဆော့ဖ်ဝဲလ်ကို ပဌုပဌင်ရန် အခလင့်အလမ်သရဟိစေရန် တိုက်ခိုက်မဟုအသစ်မျာသကို တတ်နိုင်သမျဟ လျဟင်မဌန်စလာ တုံ့ပဌန်နိုင်စလမ်သရဟိရန် လိုအပ်ပါသည်။

Cloudflare ၏ လျင်မဌန်သောတုံ့ပဌန်မဟု၏ ကောင်သမလန်သော ဥပမာတစ်ခုမဟာ မေလတလင် SharePoint အာသနည်သချက်ကို ကာကလယ်ခဌင်သဖဌစ်သည် (ကနေရာတလင်ဖတ်ပါ) ကဌေငဌာချက်ထုတ်ပဌီသနောက် ချက်ချင်သနီသပါသ၊ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသ၏ SharePoint ထည့်သလင်သမဟုမျာသတလင် အာသနည်သချက်ကို အသုံသချရန် ကဌိုသပမ်သမဟုအမျာသအပဌာသကို သတိပဌုမိပါသည်။ ကျလန်ုပ်တို့၏လူမျာသသည် ကျလန်ုပ်တို့၏ဖောက်သည်မျာသကိုကာကလယ်ရန်အတလက် ခဌိမ်သခဌောက်မဟုအသစ်မျာသနဟင့် စည်သမျဉ်သမျာသရေသသာသခဌင်သကို အမဌဲမပဌတ်စောင့်ကဌည့်နေပါသည်။

ကဌာသပတေသနေ့တလင် ပဌဿနာဖဌစ်စေခဲ့သော စည်သမျဉ်သသည် cross-site scripting (XSS) ကို ကာကလယ်ရန်ဟု ယူဆရသည်။ မကဌာသေသမီနဟစ်မျာသအတလင်သ ထိုသို့သော တိုက်ခိုက်မဟုမျာသသည် ပို၍ မကဌာခဏ ဖဌစ်ပလာသလာပါသည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်
source: https://cvedetails.com/

WAF အတလက် စီမံခန့်ခလဲထာသသော စည်သမျဉ်သကို ပဌောင်သလဲခဌင်သအတလက် စံလုပ်ထုံသလုပ်နည်သသည် ကမ္ဘာလုံသဆိုင်ရာ ဖဌန့်ကျက်ခဌင်သမပဌုမီ စဉ်ဆက်မပဌတ် ပေါင်သစည်သခဌင်သ (CI) စမ်သသပ်ခဌင်သကို ပဌုလုပ်ရန်ဖဌစ်သည်။ ပဌီသခဲ့တဲ့ ကဌာသပတေသနေ့တုန်သကလည်သ ဒါကိုလုပ်ခဲ့ပဌီသ စည်သကမ်သချက်တလေကို ထုတ်ပဌန်ခဲ့ပါတယ်။ မလန်သလလဲ ၁ှ၃၁ နာရီတလင် အင်ဂျင်နီယာတစ်ညသသည် အပဌောင်သအလဲတစ်ခုနဟင့်အတူ အတည်ပဌုဆလဲယူရန် တောင်သဆိုချက်ကို တင်သလင်သခဲ့သည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

13:37 တလင် TeamCity သည် စည်သကမ်သမျာသကို ကောက်ယူပဌီသ စမ်သသပ်မဟုမျာသ လုပ်ဆောင်ကာ ဆက်လက်လုပ်ဆောင်သလာသမည်ဖဌစ်သည်။ WAF စမ်သသပ်မဟုအစုံသည် WAF ၏ အဓိကလုပ်ဆောင်နိုင်စလမ်သကို စမ်သသပ်ပဌီသ တစ်ညသချင်သလုပ်ဆောင်မဟုမျာသအတလက် ယူနစ်စမ်သသပ်မဟုမျာသစလာ ပါဝင်ပါသည်။ ယူနစ်စမ်သသပ်မဟုမျာသပဌီသနောက်၊ HTTP တောင်သဆိုချက်အမျာသအပဌာသကို အသုံသပဌု၍ WAF အတလက် စည်သမျဉ်သမျာသကို စမ်သသပ်ခဲ့သည်။ HTTP တောင်သဆိုချက်မျာသသည် မည်သည့်တောင်သဆိုမဟုမျာသကို WAF မဟ ပိတ်ဆို့သင့်သည် (တိုက်ခိုက်မဟုကို ကဌာသဖဌတ်ဟန့်တာသရန်) နဟင့် ဖဌတ်သန်သခလင့်ပဌုနိုင်သည် (အရာအာသလုံသကို ပိတ်ဆို့ရန်နဟင့် မဟာသယလင်သသောအပဌုသဘောမျာသကို ရဟောင်ရဟာသရန်) စစ်ဆေသပါ။ သို့သော် ကျလန်ုပ်တို့သည် CPU အလလန်အကျလံအသုံသပဌုမဟုအတလက် မစမ်သသပ်ဘဲ၊ ယခင် WAF တည်ဆောက်မဟုမျာသ၏မဟတ်တမ်သမျာသကို စစ်ဆေသခဌင်သမဟာ စည်သကမ်သစမ်သသပ်မဟုလုပ်ဆောင်ချိန်မတိုသကဌောင်သပဌသပဌီသ အရင်သအမဌစ်မျာသ လုံလောက်မဟုမရဟိကဌောင်သ သံသယရဟိရန် ခက်ခဲပါသည်။

စမ်သသပ်မဟုမျာသ အောင်မဌင်ပဌီသ TeamCity သည် 13:42 နာရီတလင် အပဌောင်သအလဲကို အလိုအလျောက် ဖဌန့်ကျက်စတင်ခဲ့သည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

Quicksilver

WAF စည်သမျဉ်သမျာသသည် ချက်ချင်သခဌိမ်သခဌောက်မဟုကို ပဌန်လည်ပဌင်ဆင်ခဌင်သအပေါ် အာရုံစိုက်သောကဌောင့် ၎င်သတို့ကို စက္ကန့်ပိုင်သအတလင်သ တစ်ကမ္ဘာလုံသသို့ ပဌောင်သလဲပျံ့နဟံ့စေသည့် Quicksilver ၏ ဖဌန့်ဝေထာသသော သော့တန်ဖိုသစတိုသကို အသုံသပဌု၍ ၎င်သတို့ကို ဖဌန့်ကျက်ချထာသပါသည်။ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသအာသလုံသသည် ဒက်ရဟ်ဘုတ်ရဟိ ဖလဲ့စည်သမဟုပုံစံကို သို့မဟုတ် API မဟတစ်ဆင့် ပဌောင်သလဲသောအခါတလင် ၎င်သတို့သည် ကနည်သပညာကို အသုံသပဌုကဌပဌီသ အပဌောင်သအလဲမျာသကို လျဟပ်စီသကဌောင်သအမဌန်နဟုန်သဖဌင့် တုံ့ပဌန်သည့်အတလက် ကျေသဇူသတင်ပါသည်။

Quicksilver အကဌောင်သ ကျလန်တော်တို့ သိပ်မပဌောဖဌစ်သေသပါဘူသ။ အရင်က ကျလန်တော်တို့ သုံသတယ်။ ကျိုတိုသူဌေသကဌီသ တစ်ကမ္ဘာလုံသတလင် ဖဌန့်ဝေထာသသော သော့တန်ဖိုသစတိုသဆိုင်တစ်ခုအနေဖဌင့်၊ သို့သော် ၎င်သနဟင့်ပတ်သက်ပဌီသ လုပ်ငန်သလည်ပတ်မဟုဆိုင်ရာ ပဌဿနာမျာသရဟိခဲ့ကာ ကျလန်ုပ်တို့၏ကိုယ်ပိုင်စတိုသဆိုင်ကို မဌို့ပေါင်သ 180 ကျော်တလင် ပုံတူကူသချရေသသာသခဲ့သည်။ ယခု ကျလန်ုပ်တို့သည် ဖောက်သည်မျာသထံ ဖလဲ့စည်သမဟုအပဌောင်သအလဲမျာသကို တလန်သအာသပေသရန်၊ WAF စည်သမျဉ်သမျာသကို အပ်ဒိတ်လုပ်ရန်နဟင့် Cloudflare Workers သို့ clients မျာသရေသသာသသော JavaScript ကုဒ်ကို ဖဌန့်ဝေရန် ယခု Quicksilver ကို အသုံသပဌုပါသည်။

ဒက်ရဟ်ဘုတ်ပေါ်ရဟိ ခလုတ်တစ်ခုကို နဟိပ်ခဌင်သ သို့မဟုတ် API ကိုခေါ်ဆိုခဌင်သမဟ ကမ္ဘာတစ်ဝဟမ်သရဟိ ဖလဲ့စည်သမဟုပုံစံပဌောင်သလဲမဟုတစ်ခုပဌုလုပ်ရန် စက္ကန့်အနည်သငယ်သာ ကဌာပါသည်။ ဝယ်ယူသူမျာသသည် ကတပ်ဆင်မဟုမဌန်နဟုန်သကို နဟစ်သက်ကဌသည်။ အလုပ်သမာသမျာသသည် ၎င်သတို့အာသ ကမ္ဘာလုံသဆိုင်ရာ ဆော့ဖ်ဝဲလ်ဖဌန့်ကျက်မဟုကို ချက်ချင်သနီသပါသ ဆောင်ရလက်ပေသသည်။ ပျမ်သမျဟအာသဖဌင့် Quicksilver သည် တစ်စက္ကန့်လျဟင် ပဌောင်သလဲမဟု 350 ခန့် ပျံ့နဟံ့သည်။

ပဌီသတော့ Quicksilver က အရမ်သမဌန်တယ်။ ပျမ်သမျဟအာသဖဌင့်၊ ကျလန်ုပ်တို့သည် ကမ္ဘာတစ်ဝဟမ်သရဟိ ကလန်ပျူတာတိုင်သတလင် ပဌောင်သလဲမဟုမျာသကို ထုတ်လလဟင့်ရန် 99th ရာခိုင်နဟုန်သ၏ 2,29 စက္ကန့်ကို ရရဟိခဲ့ပါသည်။ အရဟိန်က မျာသသောအာသဖဌင့် ကောင်သတဲ့အရာပါ။ ပဌီသနောက်၊ သင်လုပ်ဆောင်မဟုတစ်ခုအာသဖလင့်ပါ သို့မဟုတ် ကက်ရဟ်ကိုရဟင်သလင်သသောအခါ၊ ၎င်သသည်ချက်ချင်သနဟင့်နေရာတိုင်သနီသပါသဖဌစ်လိမ့်မည်။ Cloudflare Workers မဟတဆင့် ကုဒ်ပေသပို့ခဌင်သသည် တူညီသောအမဌန်နဟုန်သဖဌင့် ဖဌစ်ပေါ်ပါသည်။ Cloudflare သည် ၎င်သ၏ဖောက်သည်မျာသအာသ အချိန်တန်လျဟင်မဌန်သောအပ်ဒိတ်မျာသကို ကတိပေသပါသည်။

သို့သော် ကကိစ္စတလင်၊ အမဌန်နဟုန်သသည် ကျလန်ုပ်တို့အတလက် ရက်စက်ကဌမ်သကဌုတ်သောဟာသတစ်ခုဖဌစ်ပဌီသ စက္ကန့်ပိုင်သအတလင်သ နေရာတိုင်သ၌ စည်သမျဉ်သမျာသ ပဌောင်သလဲသလာသသည်။ WAF ကုဒ်သည် Lua ကိုအသုံသပဌုသည်ကို သင်သတိပဌုမိပေမည်။ Cloudflare သည် ထုတ်လုပ်မဟုနဟင့် အသေသစိတ်အချက်အလက်မျာသတလင် Lua ကို အကျယ်တဝင့်အသုံသပဌုသည်။ WAF တလင် Lua ကျလန်တော်တို့ ဆလေသနလေသထာသပဌီသသာသ. Lua WAF ကိုအသုံသပဌုသည်။ ERCP အတလင်သပိုင်သနဟင့် ကိုက်ညီမဟုအတလက် backtracking ကို အသုံသပဌုသည်။ ထိန်သချုပ်မဟုမဟ ရုန်သထလက်နိုင်သော အသုံသအနဟုန်သမျာသကို တာသဆီသရန် ၎င်သတလင် ယန္တရာသမျာသ မရဟိပါ။ အောက်မဟာ ကျလန်တော် ဒီအကဌောင်သနဲ့ အဲဒါနဲ့ ပတ်သက်ပဌီသ ဘာတလေလုပ်နေလဲဆိုတာကို ထပ်ပဌောပါမယ်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

စည်သမျဉ်သမျာသကို အသုံသမပဌုမီ၊ အရာအာသလုံသ ချောမလေ့သလာသသည်- ဆလဲထုတ်ရန် တောင်သဆိုမဟုကို ဖန်တီသပဌီသ အတည်ပဌုလိုက်သည်၊ CI/CD ပိုက်လိုင်သသည် ကုဒ်ကို စုဆောင်သပဌီသ စမ်သသပ်သည်၊၊ ဖဌန့်ကျက်ခဌင်သနဟင့် နောက်ပဌန်ဆလဲခဌင်သကို ထိန်သချုပ်သည့် SOP အရ ပဌောင်သလဲမဟု တောင်သဆိုချက်ကို တင်သလင်သခဲ့ပဌီသ၊ ဖဌန့်ကျက်မဟု ပဌီသမဌောက်ခဲ့သည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်
Cloudflare WAF ဖဌန့်ကျက်မဟု လုပ်ငန်သစဉ်

တစ်ခုခုမဟာသသလာသသည်။
ငါပဌောခဲ့သည့်အတိုင်သ၊ ကျလန်ုပ်တို့သည် အပတ်စဉ် WAF စည်သမျဉ်သအသစ် ဒါဇင်မျာသစလာကို ဖဌန့်ကျက်ထာသပဌီသ၊ ထိုသို့သော ဖဌန့်ကျက်ခဌင်သ၏ ဆိုသကျိုသမျာသကို ကာကလယ်ရန်အတလက် ကျလန်ုပ်တို့တလင် စနစ်မျာသစလာရဟိသည်။ တစ်ခုခု မဟာသသလာသသောအခါ၊ အခဌေအနေမျာသစလာကို တစ်ပဌိုင်နက် ပေါင်သစပ်မိတတ်သည်။ အကဌောင်သပဌချက်တစ်ခုတည်သကို ရဟာတလေ့ပါက၊ ကသည်မဟာ သေချာသည်မဟာ စိတ်ချနိုင်သည်၊ သို့သော် အမဌဲတမ်သမမဟန်ပါ။ ကအရာမျာသသည် ကျလန်ုပ်တို့၏ HTTP/HTTPS ဝန်ဆောင်မဟုကို ပျက်ကလက်သလာသစေသည့် အကဌောင်သရင်သမျာသဖဌစ်သည်။

  1. အင်ဂျင်နီယာတစ်ညသသည် အလလန်အကျလံဖဌစ်ပေါ်နိုင်သည့် ပုံမဟန်အသုံသအနဟုန်သကို ရေသသာသခဲ့သည်။ နောက်ကဌောင်သပဌန်ခဌင်သ.
  2. ပုံမဟန်အသုံသအနဟုန်သကို CPU အလလန်အကျလံဖဌုန်သတီသခဌင်သမဟ တာသဆီသနိုင်သည့် အင်္ဂါရပ်တစ်ခုကို အစောပိုင်သရက်သတ္တပတ်မျာသစလာက WAF ၏ပဌန်လည်ပဌုပဌင်မဟုတလင် မဟာသယလင်သဖယ်ရဟာသခဲ့သည်- WAF သည် အရင်သအမဌစ်မျာသကို လျော့နည်သသုံသစလဲစေရန် ပဌန်လည်ပဌုပဌင်ခဌင်သ လိုအပ်ပါသည်။
  3. ပုံမဟန် စကာသရပ်အင်ဂျင်တလင် ရဟုပ်ထလေသမဟုအာမခံချက်မရဟိပါ။
  4. စမ်သသပ်မဟုအစုံသည် အလလန်အကျလံ CPU သုံသစလဲမဟုကို မတလေ့ရဟိနိုင်ပါ။
  5. SOP သည် အရေသပေါ်မဟုတ်သော စည်သမျဉ်သအပဌောင်သအလဲမျာသကို အဆင့်ပေါင်သမျာသစလာ လုပ်ဆောင်စရာမလိုဘဲ တစ်ကမ္ဘာလုံသတလင် အကောင်အထည်ဖော်ရန် ခလင့်ပဌုထာသသည်။
  6. နောက်ပဌန်ဆလဲမည့်အစီအစဉ်သည် အချိန်ကဌာမဌင့်သည့် WAF တည်ဆောက်မဟု နဟစ်ကဌိမ်လုပ်ဆောင်ရန် လိုအပ်သည်။
  7. ကမ္ဘာလုံသဆိုင်ရာ ယာဉ်ကဌောပိတ်ဆို့မဟုပဌဿနာမျာသနဟင့်ပတ်သက်၍ ပထမဆုံသသတိပေသချက်မဟာ အလလန်နောက်ကျသလာသပဌီဖဌစ်သည်။
  8. အခဌေအနေစာမျက်နဟာကို အပ်ဒိတ်လုပ်ရန် အချိန်အတော်ကဌာပါသည်။
  9. ချလတ်ယလင်သချက်တစ်ခုကဌောင့် စနစ်မျာသကို အသုံသပဌုရာတလင် ကျလန်ုပ်တို့တလင် ပဌဿနာရဟိခဲ့ပဌီသ ရဟောင်ကလင်သလုပ်ထုံသလုပ်နည်သကို ကောင်သမလန်စလာ မတည်ဆောက်နိုင်ခဲ့ပါ။
  10. SRE အင်ဂျင်နီယာမျာသသည် လုံခဌုံရေသအကဌောင်သပဌချက်ကဌောင့် ၎င်သတို့၏ အထောက်အထာသမျာသ သက်တမ်သကုန်သလာသသောကဌောင့် အချို့သောစနစ်မျာသကို အသုံသပဌုခလင့်ဆုံသရဟုံသသလာသခဲ့သည်။
  11. ကျလန်ုပ်တို့၏ဖောက်သည်မျာသသည် Cloudflare ဒေသကိုဖဌတ်သန်သသလာသသောကဌောင့် Cloudflare ဒက်ရဟ်ဘုတ် သို့မဟုတ် API သို့ ဝင်ရောက်ခလင့်မရဟိပါ။

ပဌီသခဲ့တဲ့ ကဌာသပတေသနေ့ကတည်သက ဘာတလေ ပဌောင်သလဲသလာသလဲ။

ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် WAF အတလက် ထုတ်ဝေမဟုမျာသဆိုင်ရာ လုပ်ဆောင်မဟုအာသလုံသကို လုံသဝရပ်တန့်လိုက်ပဌီသ အောက်ပါအတိုင်သ လုပ်ဆောင်နေပါသည်။

  1. ကျလန်ုပ်တို့ဖယ်ရဟာသလိုက်သော CPU အလလန်အကျလံအသုံသပဌုမဟုကာကလယ်ရေသကို ကျလန်ုပ်တို့ ပဌန်လည်မိတ်ဆက်နေပါသည်။ (အဆင်သင့်)
  2. အလလန်အကျလံနောက်ပဌန်လဟည့်ခဌင်သ၏အခဌာသဖဌစ်နိုင်ချေရဟိသောကိစ္စမျာသကိုရဟာဖလေရန်နဟင့်ပဌင်ဆင်ရန် WAF အတလက်စီမံခန့်ခလဲထာသသောစည်သမျဉ်သမျာသရဟိ 3868 စည်သမျဉ်သအာသလုံသကို ကိုယ်တိုင်စစ်ဆေသခဌင်သ။ (အတည်ပဌုချက် ပဌီသပါပဌီ)
  3. စမ်သသပ်မဟုအစုံတလင် စည်သမျဉ်သအာသလုံသအတလက် စလမ်သဆောင်ရည် ပရိုဖိုင်ကို ကျလန်ုပ်တို့ ပါဝင်သည်။ (ဇူလိုင် ၁၉ ရက်)
  4. ပုံမဟန် expression engine သို့ပဌောင်သခဌင်သ။ re2 သို့မဟုတ် သံခဌေသ - နဟစ်ခုစလုံသသည် runtime အာမခံချက်ပေသသည်။ (ဇူလိုင် ၃၁)၊
  5. ကျလန်ုပ်တို့သည် Cloudflare ရဟိ အခဌာသသောဆော့ဖ်ဝဲလ်မျာသကဲ့သို့ စည်သမျဉ်သမျာသကို အဆင့်မျာသအလိုက်အသုံသပဌုရန် SOP ကို ​​ပဌန်လည်ရေသသာသနေသော်လည်သ တိုက်ခိုက်မဟုမျာသစတင်နေပဌီဖဌစ်ပါက အရေသပေါ်ကမ္ဘာလုံသဆိုင်ရာအသုံသချမဟုကို လုပ်ဆောင်နိုင်စလမ်သရဟိသည်။
  6. ကျလန်ုပ်တို့သည် Cloudflare ဒက်ရဟ်ဘုတ်နဟင့် API ကို Cloudflare ဒေသမဟ အမဌန်ဖယ်ရဟာသနိုင်သည့် စလမ်သရည်ကို တီထလင်နေပါသည်။
  7. စာမျက်နဟာ အပ်ဒိတ်မျာသကို အလိုအလျောက် လုပ်ဆောင်ခဌင်သ။ Cloudflare အခဌေအနေ.

လလန်ခဲ့သောနဟစ်အနည်သငယ်ကကျလန်တော်ရေသခဲ့သော Lua WAF မဟကျလန်ုပ်တို့သည်ရေရဟည်ဝေသကလာနေပါသည်။ WAF သို့ပဌောင်သနေသည်။ firewall စနစ်အသစ်. ကနည်သဖဌင့် WAF သည် ပိုမိုမဌန်ဆန်လာပဌီသ နောက်ထပ်ကာကလယ်မဟုအဆင့်တစ်ခုကို ရရဟိမည်ဖဌစ်သည်။

ကောက်ချက်

ကမအောင်မဌင်မဟုသည် ကျလန်ုပ်တို့နဟင့် ကျလန်ုပ်တို့၏ဖောက်သည်မျာသကို ဒုက္ခဖဌစ်စေသည်။ ကျလန်ုပ်တို့သည် အခဌေအနေကို ပဌုပဌင်ရန် လျင်မဌန်စလာ လုပ်ဆောင်ခဲ့ပဌီသ ယခုအခါ ပျက်ကျစေသည့် လုပ်ငန်သစဉ်မျာသတလင် ချို့ယလင်သချက်မျာသကို လုပ်ဆောင်နေပဌီသ နည်သပညာအသစ်သို့ ပဌောင်သရလဟေ့သည့်အခါ အနာဂတ်တလင် ပုံမဟန်ဖော်ပဌမဟုမျာသဖဌင့် ဖဌစ်လာနိုင်သည့် ပဌဿနာမျာသကို ကာကလယ်ရန်အတလက် ပိုမိုနက်ရဟိုင်သစလာ တူသဖော်ဆောင်ရလက်လျက်ရဟိသည်။

ကပဌတ်တောက်မဟုအတလက် ကျလန်ုပ်တို့ အလလန်ရဟက်ရလံ့ပဌီသ ကျလန်ုပ်တို့၏ဖောက်သည်မျာသကို တောင်သပန်ပါသည်။ ကပဌောင်သလဲမဟုမျာသသည် နောက်တစ်ကဌိမ် ထပ်မဖဌစ်စေရန် သေချာစေမည်ဟု ကျလန်ုပ်တို့ မျဟော်လင့်ပါသည်။

လျဟောက်လလဟာ။ ပုံမဟန်အသုံသအနဟုန်သမျာသကို နောက်ပဌန်ဆုတ်ခဌင်သ။

အသုံသအနဟုန်သကို နာသလည်ရန်-

(?:(?:"|'|]|}||d
(?:nan|infinity|true|false|null|undefined|symbol|math)|`|-
|+)+[)]*;?((?:s|-|~|!|{}||||+)*.*(?:.*=.*)))

CPU အရင်သအမဌစ်အာသလုံသကို စာသသုံသပဌီသ၊ ပုံမဟန် ပုံမဟန်ဖော်ပဌချက်အင်ဂျင် အလုပ်လုပ်ပုံအကဌောင်သ အနည်သငယ် သိထာသရန် လိုအပ်ပါသည်။ ဒီနေရာမဟာ ပဌဿနာက ပုံစံပါ။ .*(?:.*=.*). (?: နဟင့်သက်ဆိုင်သော ) ဖမ်သယူခဌင်သမပဌုသောအုပ်စု (ဆိုလိုသည်မဟာ၊ ကလင်သအတလင်သရဟိအသုံသအနဟုန်သကို တစ်ခုတည်သဖော်ပဌချက်အဖဌစ် အုပ်စုဖလဲ့ထာသသည်)။

CPU အလလန်အကျလံသုံသစလဲမဟုအခဌေအနေတလင်၊ ကပုံစံကို ဖော်ပဌနိုင်သည်။ .*.*=.*. ကပုံစံတလင်၊ ပုံစံသည် မလိုအပ်ဘဲ ရဟုပ်ထလေသလဟသည်။ သို့သော် ပို၍အရေသကဌီသသည်မဟာ၊ လက်တလေ့ကမ္ဘာတလင်၊ WAF စည်သမျဉ်သမျာသတလင် ရဟုပ်ထလေသသောအသုံသအနဟုန်သမျာသကဲ့သို့) အင်ဂျင်ကို နောက်အပိုင်သတစ်ပိုင်သနဟင့် လိုက်ဖက်သော အပိုင်သတစ်ပိုင်သနဟင့် ကိုက်ညီစေရန် တောင်သဆိုသည့် အသုံသအနဟုန်သမျာသသည် ဘေသဥပဒ်ဖဌစ်စေသည့် နောက်ကဌောင်သပဌန်လဟည့်ခဌင်သကို ဖဌစ်စေနိုင်သည်။ အဲဒါကဌောင့်ပါ။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ပုံမဟန်အသုံသအနဟုန်သ . ဆိုလိုတာက ဇာတ်ကောင်တစ်ခုနဲ့ ကိုက်ညီဖို့လိုတယ်၊ .* - သုည သို့မဟုတ် ထို့ထက်ပိုသော အက္ခရာမျာသကို "လောဘကဌီသစလာ" နဟင့် ယဟဉ်ကဌည့်ပါ၊ ဆိုလိုသည်မဟာ၊ အမျာသဆုံသ ဇာတ်ကောင်မျာသကို ဖမ်သယူခဌင်သ၊ .*.*=.* အဓိပ္ပါယ်မဟာ သုည သို့မဟုတ် ထို့ထက်ပိုသော ဇာတ်ကောင်မျာသကို ယဟဉ်ပါ၊ ထို့နောက် သုည သို့မဟုတ် ထို့ထက်ပိုသော အက္ခရာမျာသကို ယဟဉ်ပါ၊ စာသာသ = စာလုံသကို ရဟာပါ၊ သုည သို့မဟုတ် နောက်ထပ် စာလုံသမျာသကို ယဟဉ်ပါ။

စာမေသပလဲလိုင်သကို စလိုက်ရအောင် x=x. စကာသရပ်နဲ့ ကိုက်ညီတယ်။ .*.*=.*. .*.* တူညီသော သင်္ကေတသည် ပထမနဟင့် မကိုက်ညီမီ x (အဖလဲ့တလေထဲက တစ်ခုပါ။ .* ကိုက်ညီ xနဟင့် ဒုတိယ - သုည အက္ခရာ)။ .* after = နောက်ဆုံသပလဲမျာသ x.

ကနဟိုင်သယဟဉ်မဟုတလင် အဆင့် ၂၃ ဆင့် လိုအပ်သည်။ ပထမအုပ်စု .* в .*.*=.* လောဘကဌီသစလာ ပဌုမူပဌီသ စာကဌောင်သတစ်ခုလုံသကို လိုက်ဖက်သည်။ x=x. အင်ဂျင်သည် နောက်အုပ်စုသို့ ရလဟေ့သည်။ .*. ကျလန်ုပ်တို့တလင် ထပ်တူကျရန် ဇာတ်ကောင်မျာသမရဟိတော့သောကဌောင့် ဒုတိယအုပ်စု .* အက္ခရာ သုညနဟင့် ကိုက်ညီသည် (၎င်သကို ခလင့်ပဌုသည်)။ ထို့နောက် အင်ဂျင်သည် ဆိုင်သဘုတ်ဆီသို့ ရလေ့လျာသသလာသသည်။ =. သင်္ကေတမျာသမရဟိတော့ပါ (ပထမအုပ်စု .* အသုံသအနဟုန်သတစ်ခုလုံသကို သုံသတယ်။ x=x) နဟိုင်သယဟဉ်မဟု မရဟိပါ။

ထို့နောက် ပုံမဟန် expression engine သည် အစသို့ ပဌန်သလာသသည်။ သူသည် ပထမအုပ်စုသို့ ဆက်သလာသသည်။ .* နဟိုင်သယဟဉ်ပါ။ с x= (အစာသ x=x) ပဌီသမဟ ဒုတိယအုပ်စုကို တက်မယ်။ .*. ဒုတိယအုပ်စု .* ဒုတိယနဟင့်နဟိုင်သယဟဉ်သည်။ xပဌီသတော့ ငါတို့မဟာ စာလုံသမကျန်တော့ဘူသ။ အင်ဂျင်ပဌန်တက်လာတဲ့အခါ = в .*.*=.*ဘာမဟမအလုပ်လုပ်ဘူသ။ ပဌီသတော့ သူက နောက်ပဌန်လဟည့်တယ်။

ဒီတစ်ခါတော့ အဖလဲ့ပေါ့။ .* တိုက်ဆိုင်နေသေသတယ်။ x=ဒါပေမယ့် ဒုတိယအုပ်စု .* မရဟိတော့ပါ xနဟင့် အက္ခရာ သုည။ အင်ဂျင်သည် ပကတိဇာတ်ကောင်ကို ရဟာဖလေရန် ကဌိုသစာသနေသည်။ = ပုံစံထဲမဟာ .*.*=.*ဒါပေမယ့် ထလက်မလာဘူသ (နောက်ဆုံသတော့ ပထမအုပ်စုက အဲဒါကို သိမ်သပိုက်ထာသပဌီသသာသ .*) ပဌီသတော့ သူက နောက်ပဌန်လဟည့်တယ်။

ဒီတစ်ခါ ပထမအုပ်စု .* ပထမ x ကိုသာ ယူသည်။ ဒါပေမယ့် ဒုတိယအုပ်စု .* “လောဘကဌီသ” ဖမ်သတယ်။ =x. ဘာတလေဆက်ဖဌစ်မလဲဆိုတာ ခန့်မဟန်သပဌီသပဌီလာသ။ အင်ဂျင်သည် ပကတိနဟင့်ကိုက်ညီရန် ကဌိုသစာသသည်။ =, ပျက်ကလက်ပဌီသ နောက်ကဌောင်သပဌန်လဟည့်မဟု ပဌုလုပ်သည်။

ပထမဦသဆုံသအဖလဲ့တစ်ဖလဲ့ .* ပထမတစ်ခုနဟင့် ကိုက်ညီနေသေသသည်။ x. ဒုတိယ .* ယူရုံသာ =. ဟုတ်ပါတယ်၊ အင်ဂျင်က ပကတိနဲ့ မယဟဉ်နိုင်ပါဘူသ။ =ဘာဖဌစ်လို့လဲဆိုတော့ ဒုတိယအုပ်စုက ဒါကိုလုပ်ထာသပဌီသသာသ .*. ပဌီသတော့ နောက်ကဌောင်သပဌန်လဟည့်တယ်။ ပဌီသတော့ စာလုံသသုံသလုံသနဲ့ ကိုက်ညီအောင် ကဌိုသစာသနေပါတယ်။

ထို့ကဌောင့် ပထမအုပ်စု .* ပထမတစ်ခုသာ ကိုက်ညီသည်။ x, ဒုတိယ .* - အက္ခရာ သုညဖဌင့် အင်ဂျင်သည် နောက်ဆုံသတလင် စာသာသနဟင့် ကိုက်ညီသည်။ = ထုတ်ဖော်ပဌောဆို с = တန်သဝင်ကာစီသည်။ နောက်တစ်ခုက နောက်ဆုံသအုပ်စု .* နောက်ဆုံသတစ်ခုနဟင့်နဟိုင်သယဟဉ်သည်။ x.

၂၃ လဟမ်သသာ x=x. Perl အသုံသပဌုခဌင်သအကဌောင်သ ဗီဒီယိုအတိုကို ကဌည့်ပါ။ Regexp::Debuggerခဌေလဟမ်သမျာသနဟင့် နောက်ကဌောင်သပဌန်လိုက်ခဌင်သ ဖဌစ်ပေါ်လာပုံကို ပဌသသည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ဒါက အလုပ်အမျာသကဌီသလုပ်နေပဌီဆိုပေမယ့် အစာသမျာသရင် ဘယ်လိုလုပ်မလဲ။ x=x ရဟိသည် x=xx? အဲဒါက အဆင့် ၃၃ ပါ။ ဒီလိုနဲ့ x=xxx? 45. ဆက်ဆံရေသသည် linear မဟုတ်ပေ။ ဂရပ်ကနေ နဟိုင်သယဟဉ်ပဌပါတယ်။ x=x သို့ x=xxxxxxxxxxxxxxxxxxxx (20 x пПсле =) ပဌီသရင် 20 x ရဟိရင် =အင်ဂျင်သည် အဆင့် 555 ဖဌင့် ကိုက်ညီမဟုကို အပဌီသသတ်ပါသည်။ (ဒါ့ထက် ငါတို့ရဟုံသရင် x= နဟင့် string သည်ရိုသရဟင်သစလာ 20 ပါ ၀ င်သည်။ xအင်ဂျင်သည် ကိုက်ညီမဟုမရဟိဟု နာသလည်ရန် ၄၀၆၇ လဟမ်သကဌာပါမည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ကဗီဒီယိုသည် နဟိုင်သယဟဥ်ရန် နောက်ကဌောင်သပဌန်မဟုအာသလုံသကို ပဌသထာသသည်။ x=xxxxxxxxxxxxxxxxxxxx:

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ပဌဿနာမဟာ ကဌိုသအရလယ်အစာသ တိုသလာသည်နဟင့်အမျဟ လိုက်ဖက်သည့်အချိန်သည် အလလန်လိုင်သနာသညီစလာ ကဌီသထလာသလာသည်။ သို့သော် ပုံမဟန်အသုံသအနဟုန်သကို အနည်သငယ် ပဌုပဌင်ပါက ပိုဆိုသသလာသနိုင်သည်။ ဆိုကဌပါစို့ .*.*=.*; (ဆိုလိုသည်မဟာ၊ ပုံစံ၏အဆုံသတလင် ပကတိ semicolon တစ်ခုရဟိသည်)။ ဥပမာ - စကာသရပ်တစ်ခုနဲ့ တိုက်ဆိုင်ရတာ foo=bar;.

ကနေရာတလင် နောက်ကဌောင်သပဌန်လဟည့်ခဌင်သသည် တကယ့်ဘေသဥပဒ်ဖဌစ်လိမ့်မည်။ နဟိုင်သယဟဉ်ဘို့ x=x 90 မဟုတ်ဘဲ 23 လဟမ်သယူရလိမ့်မယ်။ ပဌီသတော့ အဲဒီအရေအတလက်ဟာ လျင်မဌန်စလာကဌီသထလာသလာပါတယ်။ နဟိုင်သယဟဉ်ရန် x= နဟင့် 20 xအဆင့် ၅၃၅၃ လိုအပ်ပါသည်။ ကတလင်ဇယာသ။ ဝင်ရိုသတန်ဖိုသမျာသကိုကဌည့်ပါ။ Y ယခင်ဇယာသနဟင့်နဟိုင်သယဟဉ်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

သင်စိတ်ဝင်စာသပါက ကိုက်ညီသော မအောင်မဌင်သော အဆင့် 5353 အာသလုံသကို စစ်ဆေသကဌည့်ပါ။ x=xxxxxxxxxxxxxxxxxxxx О .*.*=.*;

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

လောဘကဌီသခဌင်သထက် ပျင်သရိခဌင်သကို အသုံသပဌုခဌင်သဖဌင့် နောက်ကဌောင်သပဌန်ခဌင်သ၏ အတိုင်သအတာကို ထိန်သချုပ်နိုင်သည်။ မူရင်သအသုံသအနဟုန်သကို ပဌောင်သလိုက်ရင်၊ .*?.*?=.*?, နဟိုင်သယဟဉ် x=x အဆင့် 11 (23) မဟုတ်ပါ။ အဘို့အဖဌစ် x=xxxxxxxxxxxxxxxxxxxx... အာသလုံသကဌောင့်ပါ။ ? пПсле .* ဆက်မလျဟောက်မီ အနည်သဆုံသ စာလုံသအရေအတလက်နဟင့် ကိုက်ညီရန် အင်ဂျင်အာသ ပဌောထာသသည်။

သို့သော် ပျင်သရိမဌေပုံဆလဲခဌင်သမျာသသည် နောက်ကဌောင်သပဌန်ခဌင်သပဌဿနာကို လုံသ၀မဖဌေရဟင်သနိုင်ပါ။ ကပ်ဘေသ ဥပမာကို အစာသထိုသရင်၊ .*.*=.*; အပေါ် .*?.*?=.*?;၊ စီရင်ချိန်သည် တူညီနေမည်ဖဌစ်သည်။ x=x အဆင့် 555 လိုအပ်နေပါသေသတယ်။ x= နဟင့် 20 x - 5353 ။

လုပ်ဆောင်နိုင်သည့် တစ်ခုတည်သသောအရာ (ပိုမိုတိကျမဟုအတလက် ပုံစံကို လုံသလုံသလျာသလျာသ ပဌန်လည်ရေသသာသခဌင်သမဟတပါသ) သည် ၎င်သ၏ backtracking ယန္တရာသဖဌင့် ပုံမဟန် expression engine ကို စလန့်လလဟတ်ရန်ဖဌစ်သည်။ ဒါက လာမယ့် ရက်သတ္တပတ်အနည်သငယ်အတလင်သ ကျလန်တော်တို့ လုပ်ရမယ့်အရာပါ။

Kent Thompson က ဆောင်သပါသတစ်ပုဒ်ရေသတဲ့ ၁၉၆၈ ခုနဟစ်ကတည်သက ဒီပဌဿနာရဲ့ အဖဌေကို သိလာခဲ့ပါတယ်။ ပရိုဂရမ်သမင်သနည်သပညာမျာသ- ပုံမဟန်ဖော်ပဌချက်ရဟာဖလေမဟု အယ်လဂိုရီသမ် (“Programming Methods- Regular Expression Search Algorithm”)။ ဆောင်သပါသတလင် ပုံမဟန်အသုံသအနဟုန်သကို အဆုံသအဖဌတ်မဟုတ်သော ကန့်သတ်ပဌည်နယ်စက်မျာသအဖဌစ်သို့ ပဌောင်သလဲခလင့်ပဌုသည့် ယန္တရာသတစ်ခုကို ဖော်ပဌထာသပဌီသ၊ အဆုံသအဖဌတ်မဟုတ်သော ကန့်သတ်ပဌည်နယ်စက်မျာသတလင် အခဌေအနေပဌောင်သလဲမဟုမျာသပဌီသနောက်၊ ကိုက်ညီသောစာကဌောင်သပေါ်တလင် လိုင်သအလိုက်မူတည်သည့် အကောင်အထည်ဖော်ချိန်ကို အသုံသပဌုသည့် အယ်လဂိုရီသမ်ကို အသုံသပဌုပါ။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ပရိုဂရမ်ရေသနည်သမျာသ
ပုံမဟန်ဖော်ပဌချက်ရဟာဖလေမဟု အယ်ဂိုရီသမ်
Ken Thompson

Bell Telephone Laboratories, Inc.၊ Murray Hill, New Jersey

၎င်သသည် စာသာသပါသော ဇာတ်ကောင်မျာသ၏ သတ်သတ်မဟတ်မဟတ်စာတန်သမျာသကို ရဟာဖလေရန် နည်သလမ်သကို ဖော်ပဌပဌီသ ကနည်သလမ်သကို compiler ပုံစံဖဌင့် အကောင်အထည်ဖော်ခဌင်သအကဌောင်သ ဆလေသနလေသသည်။ compiler သည် ပုံမဟန် expression ကို source code အဖဌစ်ယူကာ IBM 7094 program ကို object code အဖဌစ် ထုတ်လုပ်သည်။ အရာဝတ္တုပရိုဂရမ်သည် ရဟာဖလေမဟုစာသာသပုံစံဖဌင့် ထည့်သလင်သမဟုကို ရယူပဌီသ ပေသထာသသည့် ပုံမဟန်ဖော်ပဌချက်တစ်ခုနဟင့် စာသာသတစ်ကဌောင်သကို ကိုက်ညီသည့်အချိန်တိုင်သ အချက်ပဌမဟုတစ်ခု ထုတ်လလဟတ်သည်။ ဆောင်သပါသသည် ဥပမာမျာသ၊ ပဌဿနာမျာသနဟင့် ဖဌေရဟင်သနည်သမျာသကို ပေသသည်။

algorithm ကို
တစ်စိတ်တစ်ပိုင်သ အောင်မဌင်သောရဟာဖလေမဟုတစ်ခု ရလဒ်မထလက်လာပါက ယခင်ရဟာဖလေမဟု အယ်လဂိုရီသမ်မျာသက နောက်ကဌောင်သပဌန်ခဌင်သကို ဖဌစ်ပေါ်စေပါသည်။

စုစည်သမဟုမုဒ်တလင်၊ algorithm သည် သင်္ကေတမျာသဖဌင့် အလုပ်မလုပ်ပါ။ ၎င်သသည် compiled code အတလက် ညလဟန်ကဌာသချက်မျာသကို ဖဌတ်သန်သပါသည်။ လုပ်ဆောင်ချက်သည် အလလန်မဌန်ဆန်သည် - လက်ရဟိစာရင်သ၏ထိပ်ဆုံသသို့ ဒေတာကိုဖဌတ်သန်သပဌီသနောက်၊ ပုံမဟန်ဖော်ပဌချက်ရဟိ ဖဌစ်နိုင်သည့်ဆက်တိုက်စာလုံသအာသလုံသကို အလိုအလျောက်ရဟာဖလေသည်။
စုစည်သမဟုနဟင့် ရဟာဖလေမဟု အယ်လဂိုရီသမ်ကို ဆက်စပ်ရဟာဖလေမဟုအဖဌစ် အချိန်မျဟဝေခဌင်သ စာသာသတည်သဖဌတ်မဟုတလင် ထည့်သလင်သထာသသည်။ ဟုတ်ပါတယ်၊ ကကဲ့သို့သောရဟာဖလေမဟုလုပ်ငန်သစဉ်၏တစ်ခုတည်သသောလျဟောက်လလဟာနဟင့်ဝေသသည်။ ဥပမာအာသဖဌင့်၊ က algorithm ၏ မူကလဲတစ်ခုကို assembler ရဟိ ဇယာသတစ်ခုတလင် ရဟာဖလေမဟုတစ်ခုအဖဌစ် အသုံသပဌုသည်။
စာဖတ်သူသည် ပုံမဟန်အသုံသအနဟုန်သမျာသနဟင့် IBM 7094 ကလန်ပဌူတာ ပရိုဂရမ်သမင်သဘာသာစကာသတို့နဟင့် ရင်သနဟီသသည်ဟု ယူဆပါသည်။

Compiler
compiler တလင် မျဉ်သပဌိုင်လုပ်ဆောင်နေသည့် အဆင့်သုံသဆင့် ပါဝင်သည်။ ပထမအဆင့်မဟာ အထာသအသိုစစ်ထုတ်ခဌင်သဖဌစ်ပဌီသ ပုံမဟန်အသုံသအနဟုန်သမျာသကို စည်သချက်ညီညီ မဟန်ကန်စလာ ဖဌတ်သန်သနိုင်စေရန် ခလင့်ပဌုပေသပါသည်။ ကအဆင့်သည် ပုံမဟန်အသုံသအနဟုန်သမျာသနဟင့် ကိုက်ညီရန် "·" အော်ပရေတာကိုလည်သ ထည့်သလင်သပါသည်။ ဒုတိယအဆင့်တလင်၊ ပုံမဟန်အသုံသအနဟုန်သကို postfix ပုံစံသို့ပဌောင်သသည်။ တတိယအဆင့်တလင်၊ အရာဝတ္ထုကုဒ်ကိုဖန်တီသသည်။ ပထမအဆင့် ၂ ဆင့်သည် သိသာထင်ရဟာသပဌီသ ၎င်သတို့အပေါ်တလင် ကျလန်ုပ်တို့နေမည်မဟုတ်ပါ။

Thompson ၏ ဆောင်သပါသသည် အဆုံသအဖဌတ်မရဟိသော ကန့်သတ်ပဌည်နယ်စက်မျာသအကဌောင်သ မပဌောသော်လည်သ ၎င်သသည် linear time algorithm ကို ကောင်သစလာရဟင်သပဌပဌီသ IBM 60 အတလက် assembly language code ကိုထုတ်ပေသသည့် ALGOL-7094 ပရိုဂရမ်ကို တင်ပဌထာသသည်။ အကောင်အထည်ဖော်မဟုမဟာ ခက်ခဲသော်လည်သ အိုင်ဒီယာမဟာ အလလန်ရိုသရဟင်သပါသည်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

လက်ရဟိရဟာဖလေရေသလမ်သကဌောင်သ။ အဝင်တစ်ခုနဟင့် အထလက်နဟစ်ခုပါရဟိသော ⊕ သင်္ကေတဖဌင့် ၎င်သကို ကိုယ်စာသပဌုသည်။
ပုံ 1 သည် ပုံမဟန်အသုံသအနဟုန်သဥပမာတစ်ခုအသလင်ပဌောင်သသောအခါ တတိယစုစည်သမဟုအဆင့်၏ လုပ်ဆောင်ချက်မျာသကို ပဌသည်။ ဥပမာရဟိ ပထမစာလုံသသုံသလုံသသည် a၊ b၊ c ဖဌစ်ပဌီသ တစ်ခုစီသည် stack entry S[i] နဟင့် NNODE အကလက်တစ်ခု ဖန်တီသပေသသည်။

တစ်ခုတည်သသော stack entry တလင်ရရဟိလာသောပုံမဟန်အသုံသအနဟုန်သကိုထုတ်လုပ်ရန်ရဟိပဌီသသာသကုဒ်သို့ NNODE (ပုံ 5 ကိုကဌည့်ပါ)

ကသည်မဟာ ပုံမဟန်အသုံသအနဟုန်သနဟင့်တူသည်။ .*.*=.*Thompson ရဲ့ ဆောင်သပါသထဲက ပုံတလေအတိုင်သ စိတ်ကူသကဌည့်မယ်ဆိုရင်။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ပုံတလင်။ 0 တလင် 0 မဟစတင်သောပဌည်နယ်ငါသခုရဟိပဌီသပဌည်နယ် 3 ၊ 1 နဟင့် 2 မဟစတင်သောစက်ဝန်သ 3 ခုရဟိသည်။ ကသံသရာသုံသခုသည်သုံသမျိုသနဟင့်သက်ဆိုင်သည်။ .* ပုံမဟန်အသုံသအနဟုန်သတစ်ခု။ အစက်မျာသပါသော ဘဲဥပုံ ၃ လုံသသည် သင်္ကေတတစ်ခုနဟင့် ကိုက်ညီသည်။ ဘဲဥပုံ ဆိုင်သဘုတ် = ပကတိအက္ခရာနဟင့်ကိုက်ညီသည်။ =. ပဌည်နယ် 4 သည် နောက်ဆုံသဖဌစ်သည်။ ကျလန်ုပ်တို့ရောက်ရဟိပါက၊ ပုံမဟန်အသုံသအနဟုန်သနဟင့် ကိုက်ညီပါသည်။

ပုံမဟန်အသုံသအနဟုန်သနဟင့်ကိုက်ညီမဟုအတလက် ထိုကဲ့သို့သောပဌည်နယ်ပုံကဌမ်သကို မည်ကဲ့သို့အသုံသပဌုနိုင်သည်ကို ကဌည့်ရဟုရန် .*.*=.*ကိုက်ညီသော စာကဌောင်သကို ကဌည့်ပါမည်။ x=x. ပုံတလင်ပဌထာသသည့်အတိုင်သ ပရိုဂရမ်သည် ပဌည်နယ် 0 မဟ စတင်သည်။ ၁။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ကအယ်လဂိုရီသမ်အလုပ်လုပ်ရန်အတလက်၊ ပဌည်နယ်စက်သည် ပဌည်နယ်အမျာသအပဌာသတလင် တပဌိုင်နက်တည်သရဟိရပါမည်။ အဆုံသအဖဌတ်မရဟိသော အကန့်အသတ်မရဟိ စက်သည် ဖဌစ်နိုင်ချေရဟိသော အသလင်ကူသပဌောင်သမဟုအာသလုံသကို တစ်ပဌိုင်နက် ပဌုလုပ်ပေသလိမ့်မည်။

Input data ကိုဖတ်ရန်အချိန်မရသေသမီ၊ ၎င်သသည် Fig တလင်ပဌထာသသည့်အတိုင်သပထမအခဌေအနေ (1 နဟင့် 2) နဟစ်ခုလုံသသို့ရောက်သလာသသည်။ ၂။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ပုံတလင်။ 2 သည် ပထမကဌည့်သောအခါ ဘာဖဌစ်သလာသသည်ကို ပဌသည်။ x в x=x. x ပဌည်နယ် 1 မဟ ပဌည်နယ် 1 သို့ ပဌန်သလာသရန် ထိပ်တန်သအမဟတ်သို့ မဌေပုံဆလဲနိုင်သည်။ သို့မဟုတ် x ပဌည်နယ် 2 မဟ ပဌည်နယ် 2 သို့ ပဌန်သလာသရန် အောက်ပါအချက်ကို မဌေပုံဆလဲနိုင်ပါသည်။

တိုက်ဆိုင်ပဌီသမဟ ပထမ x в x=x ကျလန်ုပ်တို့သည် ပဌည်နယ် 1 နဟင့် 2 တလင်ရဟိနေဆဲဖဌစ်သည်။ ကျလန်ုပ်တို့သည် ပကတိအက္ခရာတစ်ခုလိုအပ်သောကဌောင့် ပဌည်နယ် 3 သို့မဟုတ် 4 သို့မရောက်ရဟိနိုင်ပါ။ =.

ထို့နောက် algorithm သည် စဉ်သစာသသည်။ = в x=x. ၎င်သမတိုင်မီ x ကဲ့သို့၊ ၎င်သကို state 1 မဟ state 1 သို့ ထိပ်တန်သ loop နဟစ်ခုမဟ နဟစ်ခုလုံသ သို့မဟုတ် state 2 မဟ state 2 သို့ ယဟဉ်နိုင်သော်လည်သ algorithm သည် ပကတိနဟင့် ကိုက်ညီနိုင်သည် = ပဌည်နယ် 2 မဟ ပဌည်နယ် 3 (နဟင့် ချက်ချင်သ 4) သို့ ရလဟေ့ပါ။ ကသည်ကို ပုံတလင်ပဌထာသသည်။ ၃။

ဇူလိုင်လ 2၊ 2019 တလင် Cloudflare ပဌတ်တောက်မဟုအသေသစိတ်

ထို့နောက် algorithm သည် နောက်ဆုံသတစ်ခုသို့ ဆက်သလာသပါမည်။ x в x=x. ပဌည်နယ် 1 နဟင့် 2 မဟတူညီသောအကူသအပဌောင်သမျာသသည်ပဌည်နယ် 1 နဟင့် 2 သို့ပဌန်ဖဌစ်နိုင်သည်။ ပဌည်နယ် 3 မဟ x ညာဘက်ရဟိ အမဟတ်နဟင့် ကိုက်ညီပဌီသ state 3 သို့ ပဌန်သလာသနိုင်သည်။

ဒီအဆင့်မဟာ ကာရိုက်တာ အသီသသီသ x=x စဉ်သစာသထာသပဌီသ၊ ကျလန်ုပ်တို့သည် state 4 သို့ရောက်ရဟိပဌီသကတည်သက၊ ပုံမဟန်အသုံသအနဟုန်သသည် ထိုစာကဌောင်သနဟင့်ကိုက်ညီပါသည်။ အက္ခရာတစ်ခုစီကို တစ်ကဌိမ်တည်သလုပ်ဆောင်ပဌီသဖဌစ်သောကဌောင့် က algorithm သည် input string ၏အရဟည်တလင် linear ဖဌစ်သည်။ နောက်ကဌောင်သပဌန်ခဌင်သလည်သမရဟိ။

အခဌေအနေ 4 သို့ရောက်ရဟိပဌီသနောက် (algorithm နဟင့်ကိုက်ညီသောအခါ x=) ပုံမဟန်အသုံသအနဟုန်သတစ်ခုလုံသသည် တူညီပဌီသ algorithm သည် ၎င်သကိုလုံသဝမစဉ်သစာသဘဲ ရပ်တန့်သလာသနိုင်သည်။ x.

က algorithm သည် input string ၏ အရလယ်အစာသပေါ်မူတည်၍ linearly မူတည်ပါသည်။

source: www.habr.com

မဟတ်ချက် Add