+− THE DAILY DIFFdev & AI news
SHIP IT

რეგულარულმა გამოსახულებამ Cloudflare გათიშა. 27 წუთით.

2019 წლის 2 ივლისი, 13:42 UTC: Cloudflare-ის ვებ აპლიკაციის ფაიერვოლის ერთი ახალი წესი ამოქმედდება 180+ ქალაქში დაახლოებით ორ წამში.

2019 წლის 2 ივლისი, 13:42 UTC: Cloudflare-ის ვებ აპლიკაციის ფაიერვოლის ერთი ახალი წესი ამოქმედდება 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 %, 502-ები ყველგან; შიდა მართვის პანელი Cloudflare Access-ის უკან დგას, რომელიც გათიშულია; ზოგიერთი სერტიფიკატი ვადაგასულია; იშვიათად გაწრთვნილი გვერდის ავლით
  • 14:07–14:09: გლობალური WAF შეწყვეტა; ტრაფიკი და CPU ნორმალურია 27 წუთის შემდეგ; 14:52 WAF დაბრუნდა წესის გარეშე
  • 2 ივლისი (15:50 UTC) და 12 ივლისი: Cloudflare აქვეყნებს იმავე დღის ჩანაწერს და სრულ პოსტმორტემს; CPU დაცვა ხელახლა დაემატა, 3,868 წესი ხელახლა იქნა წაკითხული, ეტაპობრივი ამოქმედება, გადასვლა წრფივი დროის რეგექსის ძრავაზე

ნათარგმნი ტრანსკრიპტი

ნათარგმნია ორიგინალური ინგლისური ნარატივიდან. ხელმისაწვდომი აუდიო და სუბტიტრები კონტროლდება YouTube-ის მიერ.

0:00 ერთი რეგულარული გამოსახულება ერთდროულად ამოქმედდა ყველა Cloudflare სერვერზე, და შემდეგი ოცდაშვიდი წუთის განმავლობაში მის უკან არსებული საიტები 502 გვერდს აჩვენებდნენ, რაც, ფაიერვოლისთვის, ყველაზე მკაცრი შესაძლო პარამეტრია. 2019 წლის 2 ივლისი, 13:42 UTC. Cloudflare ორ საათში აქვეყნებს: არა თავდასხმა, არამედ ცუდი განლაგება, ტრაფიკი 82 პროცენტით შემცირდა. ათი დღის შემდეგ CTO ჯონ გრემ-კამინგი აქვეყნებს სრულ პოსტმორტემს, რეგულარული გამოსახულების ჩათვლით, და Hacker News აძლევს მას 698 ქულას,

0:26 რაც გამორთვისთვის ოვაციას ნიშნავს. როგორ ხდება, რატომ არის შესაძლებელი და ვინ არის რეალურად დამნაშავე. ეს არის The Daily Diff, პოსტმორტემი. 13:31. Pull request გაერთიანდა: ერთი ახალი ფაიერვოლის წესი cross-site სკრიპტინგის წინააღმდეგ, სიმულაციის რეჟიმში, ასე რომ არაფერს ბლოკავს. 13:37, ტესტები წარმატებით გავიდა; არცერთი არ ზომავს CPU-ს. 13:42, წესი 180 ქალაქში ორ წამში გაიგზავნა, რადგან WAF წესები გამოტოვებენ ძაღლის, ღორის და კანარის ეტაპებს, რომლებსაც სხვა გამოშვებები გადიან.

0:54 13:45, პირველი გვერდი. 13:49, Hacker News-ს აქვს თემა სტატუსის გვერდზე, რომელიც კვლავ ამბობს, რომ ყველა სისტემა მუშაობს. წესი მთავრდება dot-star, dot-star, equals, dot-star-ით: ნებისმიერი რამ, შემდეგ ნებისმიერი რამ, შემდეგ ტოლობის ნიშანი. 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 შემთხვევით; რეგექსის ძრავა ზედა ზღვრის გარეშე. არა ინჟინერი, რომელმაც დაწერა წესი: პოსტმორტემი ჩამოთვლის თერთმეტ მიზეზს და არავის ასახელებს. აფეთქების რადიუსი: 27 წუთი, ტრაფიკის 82 პროცენტი, 100 პროცენტი CPU ყველა ბირთვზე, ყველა ქალაქში. დაფა და API დგანან იმავე ზღვრის უკან, ასე რომ მომხმარებლებს არ შეუძლიათ მისი გამორთვაც კი. Hacker News, პოსტმორტემის ქვეშ: მათ ჰქონდათ ერთი პრობლემა, გამოიყენეს რეგულარული გამოსახულება, ახლა ორი აქვთ. ძველი ხუმრობა. მაინც კომპილირდება.

2:28 ვერდიქტი, პოსტმორტემი: SHIP IT. CPU დაცვა დაბრუნდა, ყველა 3,868 წესი ხელით იკითხება, წესები გადის სტაგინგს, და ძრავა გადადის ისეთზე, რომელსაც აქვს წრფივი დროის გარანტიები, გამოქვეყნებული კენ ტომპსონის მიერ 1968 წელს. ორშაბათი: არანაირი dot-star dot-star არაფერში, რაც მუშაობს თითო მოთხოვნაზე, და გამომრთველი შეინახეთ იმისგან მოშორებით, რასაც ის კლავს. გამომიგზავნეთ ინციდენტი, რომელზეც ჯერ კიდევ არ გაქვთ საუბრის უფლება, კომენტარებში, ან daily diff dot dev-ზე.

2:53 და ეს არის დღევანდელი განსხვავება. მე ვარ ნიკო Axrisi-დან. შეაერთეთ პასუხისმგებლობით.

წყაროები

  1. John Graham-Cumming, "Details of the Cloudflare outage on July 2, 2019" (Jul 12, 2019)blog.cloudflare.com
  2. Matthew Prince, "Cloudflare outage caused by bad software deploy (updated)" (Jul 2, 2019)blog.cloudflare.com
  3. Matthew Prince on X, Jul 2, 2019, 14:22 UTCx.com
  4. Matthew Prince on X, Jul 2, 2019, 14:36 UTC ("No evidence yet attack related")x.com
  5. Hacker News, Jul 2, 2019, 13:49 UTC — "Cloudflare Network Performance Issues" (631 points)news.ycombinator.com
  6. Hacker News, Jul 2, 2019 — "Cloudflare outage caused by bad software deploy" (348 points)news.ycombinator.com
  7. Hacker News, Jul 12, 2019 — "Details of the Cloudflare outage on July 2, 2019" (698 points)news.ycombinator.com
  8. TechCrunch, Jul 2, 2019techcrunch.com

მსგავსი ვიდეოები

postmortem · ka · 19 სექ. 2026

Google Cloud ცარიელ ველზე გაითიშა. სამი საათი.

პოლიტიკის სტრიქონი რამდენიმე ცარიელი ველით null მაჩვენებელზე ხვდება და Google Cloud ერთდროულად ყველა რეგიონში ითიშება — შემდეგ Cloudflare-იც მასთან ერთად იშლება. 2025 წლის 12 ივნისი, 17:49 UTC: Servic

2:57 ↗
postmortem · ka · 16 სექ. 2026

ფეისბუქმა ინტერნეტიდან წაშალა საკუთარი თავი. ექვსი საათი.

ფეისბუქი ინტერნეტიდან საკუთარ მისამართს შლის და როცა მისი ინჟინრები მის აღსადგენად მიდიან, სამკერდე ნიშნის წამკითხველიც არ მუშაობს, რადგან ისინი ფეისბუქზე მუშაობენ. 2021 წლის 4 ოქტომბერი, 15:40 UTC: ხ

3:01 ↗
postmortem · ka · 25 სექ. 2026

ერთმილიწამიანმა ხარვეზმა შეაჩერა გაერთიანებული სამეფოს საჰაერო მოძრაობა. ექვსი საათი.

სამშაბათს, 8 სექტემბერს, 10:00 საათზე, NATS-ის ეროვნული საჰაერო სივრცის სისტემაში (NAS) squawk-კოდის ერთ რუტინულ მოთხოვნას აწყვეტინებს უფრო მაღალი პრიორიტეტის შეტყობინება, სანამ ის მნიშვნელობის განახლ

3:06 ↗
postmortem · ka · 22 სექ. 2026

გადატვირთვამ Telstra 2006 წელში დააბრუნა. ცხრა მილიონი ტელეფონი.

მელბურნელმა ინჟინერმა დილის 2:50 საათზე ჩართო ქრონომეტრაჟის შასი, და საუზმისთვის ავსტრალიის უდიდესმა მობილურმა ქსელმა დაასკვნა, რომ ეს იყო 2006 წლის ნოემბერი. 2026 წლის 8 ივლისი: Telstra-ს NTP შასიში

3:15 ↗