एक रेगुलर एक्सप्रेशन ने Cloudflare को 27 मिनट के लिए बंद कर दिया।
2 जुलाई, 2019, 13:42 UTC: Cloudflare के वेब एप्लिकेशन फ़ायरवॉल के लिए एक नया नियम लगभग दो सेकंड में 180 से अधिक शहरों में लाइव हो जाता है।
2 जुलाई, 2019, 13:42 UTC: Cloudflare के वेब एप्लिकेशन फ़ायरवॉल के लिए एक नया नियम लगभग दो सेकंड में 180 से अधिक शहरों में लाइव हो जाता है। यह सिमुलेट मोड में एक XSS नियम है, इसलिए यह कुछ भी ब्लॉक नहीं करता है, लेकिन यह अभी भी हर अनुरोध पर चलता है, और यह .*(?:.*=.*) में समाप्त होता है। PCRE बैकट्रैक करता है, HTTP को सेवा देने वाला हर CPU कोर 100% पर पहुँच जाता है, और हर Cloudflare-प्रॉक्सी साइट 27 मिनट के लिए 502 लौटाती है; ट्रैफ़िक 82% गिर जाता है। किल स्विच Cloudflare एक्सेस के पीछे है, जो 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 एक्सेस के पीछे है, जो डाउन है; कुछ क्रेडेंशियल समाप्त हो गए हैं; एक शायद ही कभी अभ्यास किया गया बाईपास
- 14:07–14:09: ग्लोबल WAF समाप्त; 27 मिनट के बाद ट्रैफ़िक और CPU सामान्य; 14:52 WAF नियम के बिना वापस
- 2 जुलाई (15:50 UTC) और 12 जुलाई: Cloudflare उसी दिन का नोट और पूरा पोस्टमार्टम प्रकाशित करता है; CPU गार्ड फिर से जोड़ा गया, 3,868 नियम फिर से पढ़े गए, स्टेज्ड रोलआउट, एक लीनियर-टाइम रेगुलर एक्सप्रेशन इंजन में चले गए
अनुवादित प्रतिलेख
मूल अंग्रेजी कथन से अनुवादित। उपलब्ध ऑडियो और कैप्शन YouTube द्वारा नियंत्रित होते हैं।
0:00 एक रेगुलर एक्सप्रेशन एक बार में हर Cloudflare सर्वर पर लाइव हो जाता है, और अगले सत्ताईस मिनट तक उसके पीछे की साइटें एक 502 पेज होती हैं, जो, एक फ़ायरवॉल के लिए, सबसे सख्त संभव सेटिंग है। 2 जुलाई, 2019, 13:42 UTC। Cloudflare दो घंटे के भीतर पोस्ट करता है: हमला नहीं, एक खराब परिनियोजन, ट्रैफ़िक 82 प्रतिशत कम। दस दिन बाद CTO जॉन ग्राहम-कमिंग पूरा पोस्टमार्टम प्रकाशित करते हैं, रेगुलर एक्सप्रेशन शामिल है, और हैकर न्यूज़ इसे 698 अंक देता है,
0:26 जो एक आउटेज के लिए एक स्टैंडिंग ओवेशन है। यह कैसे होता है, यह क्यों संभव है, और वास्तव में दोष किसे मिलता है। यह The Daily Diff है, पोस्टमार्टम। 13:31। एक पुल रिक्वेस्ट मर्ज होता है: क्रॉस-साइट के खिलाफ एक नया फ़ायरवॉल नियम स्क्रिप्टिंग, सिमुलेट मोड में, इसलिए यह कुछ भी ब्लॉक नहीं करता है। 13:37, परीक्षण पास होते हैं; कोई भी CPU को नहीं मापता। 13:42, नियम दो सेकंड में 180 शहरों में चला जाता है, क्योंकि WAF नियम डॉग, पिग और कैनरी स्टेज को छोड़ देते हैं जो अन्य रिलीज़ को मिलते हैं।
0:54 13:45, पहला पेज। 13:49, हैकर न्यूज़ पर स्टेटस पेज पर एक थ्रेड है, जो अभी भी कहता है कि सभी सिस्टम चालू हैं। नियम डॉट-स्टार, डॉट-स्टार, बराबर, डॉट-स्टार में समाप्त होता है: कुछ भी, फिर कुछ भी, फिर एक बराबर का निशान। PCRE लालच से अनुमान लगाता है, विफल रहता है, और हर दूसरे विभाजन के माध्यम से बैकट्रैक करता है। x बराबर x को 23 कदम लगते हैं। बराबर के बाद बीस x: 555।
1:15 बीस x, कोई बराबर का निशान नहीं: कुछ भी खोजने के लिए 4,067 कदम। इसे हर अनुरोध पर चलाएं और हर कोर सौ प्रतिशत पर है, पूरी तरह से कुछ भी नहीं कर रहा है। दो गार्डों को इसे पकड़ लेना चाहिए था। नियमों पर CPU सीमा गलती से हफ्तों पहले हटा दी गई थी, एक रीफ़ैक्टर में जिसका उद्देश्य WAF को कम CPU का उपयोग करना था। और प्रक्रिया किसी भी नियम को स्टेजिंग को छोड़ने की अनुमति देती है, क्योंकि नियम लाइव हमलों को रोकने के लिए मौजूद हैं; यह एक आपातकाल नहीं था, और यह वैसे भी वैश्विक हो गया।
1:37 14:00, WAF की पहचान हो गई; कोई हमला नहीं। 14:02, कोई वैश्विक समाप्ति का प्रस्ताव करता है: एक घटक, बंद, दुनिया भर में। स्विच Cloudflare एक्सेस के पीछे है। Cloudflare एक्सेस Cloudflare के पीछे है। कुछ क्रेडेंशियल अनुपयोग के कारण समाप्त हो गए हैं, इसलिए इंटरनेट पर सबसे तेज़ नेटवर्क एक बाईपास पर पाँच मिनट खर्च करता है जिसका किसी ने अभ्यास नहीं किया था। 14:07, मारो। 14:09, ट्रैफ़िक सामान्य। git blame: एक गति के साथ एक रोलआउट, वैश्विक; एक CPU गार्ड गलती से रीफ़ैक्टर्ड हो गया;
2:04 एक रेगुलर एक्सप्रेशन इंजन जिसकी कोई ऊपरी सीमा नहीं थी। नियम लिखने वाला इंजीनियर नहीं: पोस्टमार्टम में ग्यारह कारण सूचीबद्ध हैं और किसी का नाम नहीं लेता। ब्लास्ट रेडियस: 27 मिनट, 82 प्रतिशत ट्रैफ़िक, हर कोर पर 100 प्रतिशत CPU, हर शहर में। डैशबोर्ड और एपीआई उसी एज के पीछे हैं, इसलिए ग्राहक इसे बंद भी नहीं कर सकते हैं। हैकर न्यूज़, पोस्टमार्टम के तहत: उनके पास एक समस्या थी, एक रेगुलर एक्सप्रेशन का इस्तेमाल किया, अब उनके पास दो हैं। पुराना मजाक। अभी भी कंपाइल करता है।
2:28 फैसला, पोस्टमार्टम: SHIP IT। CPU गार्ड वापस आ गया है, सभी 3,868 नियम हाथ से पढ़े जाते हैं, नियम स्टेजिंग से गुजरते हैं, और इंजन एक लीनियर-टाइम गारंटी वाले में चला जाता है, जिसे केन थॉम्पसन ने 1968 में प्रकाशित किया था। सोमवार: हर अनुरोध पर चलने वाले किसी भी चीज़ में कोई डॉट-स्टार डॉट-स्टार नहीं, और किल स्विच को उस चीज़ से दूर रखें जिसे वह मारता है। मुझे वह घटना भेजें जिसके बारे में आपको अभी भी बात करने की अनुमति नहीं है, टिप्पणियों में, या the 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



