Կանոնավոր արտահայտությունը շարքից հանեց Cloudflare-ը. 27 րոպե։
2019թ.
2019թ. հուլիսի 2, 13:42 UTC: Cloudflare-ի վեբ հավելվածների Firewall-ի մեկ նոր կանոն գործարկվում է 180+ քաղաքներում մոտ երկու վայրկյանում։ Սա XSS կանոն է իմիտացիոն ռեժիմում, ուստի այն ոչինչ չի արգելափակում, բայց այն, այնուամենայնիվ, գործում է յուրաքանչյուր հարցման վրա և ավարտվում է .*(?:.*=.*)-ով։ PCRE-ն հետընթաց է կատարում, HTTP հարցումները սպասարկող յուրաքանչյուր CPU միջուկ հասնում է 100%-ի, և Cloudflare-ի միջոցով պրոքսիացված յուրաքանչյուր կայք 27 րոպե շարունակ վերադարձնում է 502; տրաֆիկը նվազում է 82%-ով։ Անջատման կոճակը գտնվում է Cloudflare Access-ի հետևում, որն էլ գտնվում է Cloudflare-ի հետևում։ Հետմահու վերլուծություն, Cloudflare-ի սեփական գրավոր նյութից. CPU-ի պաշտպանությունը հեռացվել է շաբաթներ առաջ վերակազմավորման ժամանակ՝ CPU խնայելու նպատակով, ընթացակարգը, որը թույլ է տվել ցանկացած կանոնի բաց թողնել փուլը, շարժիչը՝ առանց բարդության երաշխիքի, 11 պատճառները և 7 շտկումները։ Շտկման վճիռը՝ SHIP IT։
Կարդացեք գրավոր տարբերակը (անգլերեն) ↗
Ինչ է ընդգրկում այս տեսանյութը
- 13:31–13:42 UTC: PR-ը միավորված է, CI-ը կանաչ է (առանց CPU թեստի), Quicksilver-ը կանոնը մղում է 180+ քաղաքներ. WAF կանոնները բաց են թողնում DOG → PIG → Canary փուլերը
- 13:45–14:07: առաջին էջ; CPU 100% ամբողջ աշխարհում, տրաֆիկ -82%, 502s ամենուր; ներքին կառավարման վահանակը Cloudflare Access-ի հետևում է, որն անջատված է; որոշ հավատարմագրեր ժամկետանց են; հազվադեպ կիրառվող շրջանցում
- 14:07–14:09: գլոբալ WAF-ի դադարեցում; տրաֆիկը և CPU-ն նորմալ են 27 րոպեից հետո; 14:52 WAF-ը հետ է առանց կանոնի
- Հուլիսի 2 (15:50 UTC) և հուլիսի 12: Cloudflare-ը հրապարակում է նույն օրվա նշումը և ամբողջական հետմահու վերլուծությունը; CPU պաշտպանությունը նորից ավելացվել է, 3,868 կանոններ նորից կարդացվել են, փուլային տեղակայումներ, անցում գծային ժամանակի regex շարժիչի
Թարգմանված արձանագրություն
Թարգմանվել է բնօրինակ անգլերեն պատմությունից։ Հասանելի աուդիո և ենթագրերը վերահսկվում են YouTube-ի կողմից։
0:00 Մեկ կանոնավոր արտահայտություն միանգամից գործարկվում է Cloudflare-ի յուրաքանչյուր սերվերի վրա, և հաջորդ քսանյոթ րոպեի ընթացքում դրա հետևում գտնվող կայքերը 502 էջ են, ինչը, Firewall-ի համար, հնարավոր ամենախիստ կարգավորումն է։ 2019 թվականի հուլիսի 2, 13:42 UTC։ Cloudflare-ը հրապարակում է երկու ժամվա ընթացքում՝ ոչ թե հարձակում, այլ վատ տեղակայում, տրաֆիկը նվազել է 82 տոկոսով։ Տասը օր անց CTO Ջոն Գրեհեմ-Քամինգը հրապարակում է ամբողջական հետմահու վերլուծությունը, ներառյալ regex-ը, և Hacker News-ը դրան տալիս է 698 միավոր,
0:26 ինչը խափանման համար բուռն ծափահարություններ է։ Ինչպես է դա տեղի ունենում, ինչու է դա հնարավոր, և ով է իրականում մեղքը կրում։ Սա The Daily Diff-ն է, հետմահու վերլուծություն։ 13:31. Միավորվում է քաշման հարցումը. մեկ նոր Firewall կանոն՝ կայքերի միջև սկրիպտինգի դեմ, իմիտացիոն ռեժիմում, ուստի այն ոչինչ չի արգելափակում։ 13:37, թեստերը հաջող են անցնում; ոչ մեկը չի չափում CPU-ն։ 13:42, կանոնը երկու վայրկյանում ուղարկվում է 180 քաղաք, քանի որ WAF կանոնները բաց են թողնում շան, խոզի և կանարիայի փուլերը, որոնք ստանում են այլ թողարկումները։
0:54 13:45, առաջին էջը։ 13:49, Hacker News-ը թեմա ունի կարգավիճակի էջի մասին, որը դեռ ասում է, որ բոլոր համակարգերը գործում են։ Կանոնն ավարտվում է կետ-աստղ, կետ-աստղ, հավասար է, կետ-աստղով. ամեն ինչ, ապա ամեն ինչ, ապա հավասարության նշան։ PCRE-ն ժլատորեն կռահում է, ձախողվում և հետընթաց է կատարում յուրաքանչյուր այլ բաժանման միջով։ x հավասար է x-ին պահանջում է 23 քայլ։ Հավասարությունից հետո քսան x՝ 555։
1:15 Քսան x, առանց հավասարության նշանի. 4,067 քայլ՝ ոչինչ չգտնելու համար։ Դա գործարկեք յուրաքանչյուր հարցման վրա, և յուրաքանչյուր միջուկ կլինի հարյուր տոկոսի վրա, ոչինչ չանելով, մանրակրկիտ։ Երկու պահակ պետք է բռնեին դա։ Կանոնների վրա CPU-ի սահմանաչափը սխալմամբ հանվել էր շաբաթներ առաջ, վերակազմավորման ժամանակ, որը նպատակ ուներ WAF-ի կողմից ավելի քիչ CPU օգտագործել։ Եվ ընթացակարգը թույլ է տալիս ցանկացած կանոնի բաց թողնել փուլը, քանի որ կանոնները գոյություն ունեն կենդանի հարձակումները դադարեցնելու համար. սա արտակարգ իրավիճակ չէր, և այն, այնուամենայնիվ, գլոբալ դարձավ։
1:37 14:00, WAF-ը նույնականացվում է; հարձակում չկա։ 14:02, ինչ-որ մեկը առաջարկում է գլոբալ դադարեցում. մեկ բաղադրիչ, անջատված, ամբողջ աշխարհում։ Անջատիչը Cloudflare Access-ի հետևում է։ Cloudflare Access-ը Cloudflare-ի հետևում է։ Որոշ հավատարմագրեր ժամկետանց են դարձել չօգտագործելու պատճառով, ուստի ինտերնետի ամենաարագ ցանցը հինգ րոպե է ծախսում մի շրջանցման վրա, որը ոչ ոք չէր փորձարկել։ 14:07, անջատում։ 14:09, տրաֆիկը նորմալ է։ git blame. մեկ արագությամբ, գլոբալ տեղակայում; CPU պաշտպանությունը պատահաբար հեռացվել է վերակազմավորման արդյունքում;
2:04 regex շարժիչ՝ առանց վերին սահմանի։ Ոչ թե այն ինժեները, ով գրել է կանոնը. հետմահու վերլուծությունը թվարկում է տասնմեկ պատճառ և ոչ ոքի չի նշում։ Ազդեցության շառավիղը. 27 րոպե, տրաֆիկի 82 տոկոսը, 100 տոկոս CPU յուրաքանչյուր միջուկի վրա, յուրաքանչյուր քաղաքում։ Վահանակը և API-ն նույն եզրի հետևում են, ուստի հաճախորդները նույնիսկ չեն կարող անջատել այն։ Hacker News, հետմահու վերլուծության տակ. նրանք ունեին մեկ խնդիր, օգտագործեցին կանոնավոր արտահայտություն, հիմա ունեն երկուսը։ Հին կատակ։ Դեռ կոմպիլացվում է։
2:28 Վճիռ, հետմահու վերլուծություն. SHIP IT։ CPU պաշտպանությունը վերադարձել է, բոլոր 3,868 կանոնները ձեռքով կարդացվում են, կանոններն անցնում են փուլերով, և շարժիչն անցնում է մեկին՝ գծային ժամանակի երաշխիքներով, որը հրապարակվել է Քեն Թոմփսոնի կողմից 1968 թվականին։ Երկուշաբթի. ոչ մի կետ-աստղ կետ-աստղ ոչ մի բանում, որը գործարկվում է ըստ հարցման, և անջատման կոճակը հեռու պահեք այն բանից, ինչին այն անջատում է։ Ուղարկեք ինձ այն միջադեպը, որի մասին դուք դեռ չունեք խոսելու թույլտվություն, մեկնաբանություններում, կամ daily diff dot dev-ում։
2:53 Եվ սա այսօրվա տարբերությունն է։ Ես Նիկոն եմ Axrisi-ից։ Միավորեք պատասխանատվությամբ։
Աղբյուրներ
- John Graham-Cumming, "Details of the Cloudflare outage on July 2, 2019" (Jul 12, 2019)blog.cloudflare.com
- Matthew Prince, "Cloudflare outage caused by bad software deploy (updated)" (Jul 2, 2019)blog.cloudflare.com
- Matthew Prince on X, Jul 2, 2019, 14:22 UTCx.com
- Matthew Prince on X, Jul 2, 2019, 14:36 UTC ("No evidence yet attack related")x.com
- Hacker News, Jul 2, 2019, 13:49 UTC — "Cloudflare Network Performance Issues" (631 points)news.ycombinator.com
- Hacker News, Jul 2, 2019 — "Cloudflare outage caused by bad software deploy" (348 points)news.ycombinator.com
- Hacker News, Jul 12, 2019 — "Details of the Cloudflare outage on July 2, 2019" (698 points)news.ycombinator.com
- TechCrunch, Jul 2, 2019techcrunch.com



