+− THE DAILY DIFFdev & AI news
SHIP IT

Regex ໄດ້ເຮັດໃຫ້ Cloudflare ລົ້ມ. 27 ນາທີ.

ວັນທີ 2 ກໍລະກົດ 2019, ເວລາ 13:42 UTC: ກົດລະບຽບໃໝ່ໜຶ່ງຂໍ້ສຳລັບ Web Application Firewall ຂອງ Cloudflare ເລີ່ມໃຊ້ງານໃນຫຼາຍກວ່າ 180 ເມືອງໃນເວລາປະມານສອງວິນາທີ.

ວັນທີ 2 ກໍລະກົດ 2019, ເວລາ 13:42 UTC: ກົດລະບຽບໃໝ່ໜຶ່ງຂໍ້ສຳລັບ Web Application Firewall ຂອງ Cloudflare ເລີ່ມໃຊ້ງານໃນຫຼາຍກວ່າ 180 ເມືອງໃນເວລາປະມານສອງວິນາທີ. ມັນເປັນກົດລະບຽບ XSS ໃນໂໝດຈຳລອງ, ດັ່ງນັ້ນມັນບໍ່ໄດ້ບລັອກຫຍັງ, ແຕ່ມັນຍັງຄົງເຮັດວຽກໃນທຸກຄຳຮ້ອງຂໍ, ແລະມັນຈົບລົງດ້ວຍ .*(?:.*=.*). PCRE ຖອຍຫຼັງ, ທຸກ CPU core ທີ່ໃຫ້ບໍລິການ HTTP ຕີ 100%, ແລະທຸກເວັບໄຊທີ່ເປັນໂປຣແກຣມ Cloudflare ສົ່ງຄືນ 502 ເປັນເວລາ 27 ນາທີ; ການຈະລາຈອນຫຼຸດລົງ 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 ແບບ linear-time

ບົດບັນທຶກທີ່ແປແລ້ວ

ແປຈາກຄຳບັນຍາຍຕົ້ນສະບັບພາສາອັງກິດ. ສຽງ ແລະ ຄຳບັນຍາຍທີ່ມີໃຫ້ແມ່ນຄວບຄຸມໂດຍ YouTube.

0:00 ນິພົດປົກກະຕິໜຶ່ງອັນຖືກນຳໃຊ້ໃນທຸກໆເຊີບເວີ Cloudflare ພ້ອມກັນ, ແລະເປັນເວລາຊາວເຈັດນາທີຕໍ່ມາ ເວັບໄຊຕ່າງໆທີ່ຢູ່ເບື້ອງຫຼັງມັນແມ່ນໜ້າ 502, ເຊິ່ງສຳລັບ Firewall, ແມ່ນການຕັ້ງຄ່າທີ່ເຂັ້ມງວດທີ່ສຸດເທົ່າທີ່ເປັນໄປໄດ້. ວັນທີ 2 ກໍລະກົດ 2019, 13:42 UTC. Cloudflare ປະກາດພາຍໃນສອງຊົ່ວໂມງ: ບໍ່ແມ່ນການໂຈມຕີ, ເປັນການຕິດຕັ້ງທີ່ບໍ່ດີ, ການຈະລາຈອນຫຼຸດລົງ 82 ເປີເຊັນ. ສິບມື້ຕໍ່ມາ CTO John Graham-Cumming ໄດ້ເຜີຍແຜ່ບົດລາຍງານຫຼັງເກີດເຫດເຕັມຮູບແບບ, ລວມທັງ regex, ແລະ Hacker News ໃຫ້ຄະແນນ 698 ຄະແນນ,

0:26 ເຊິ່ງສຳລັບການຢຸດເຮັດວຽກແມ່ນການລຸກຢືນຂຶ້ນຕົບມື. ມັນເກີດຂຶ້ນແນວໃດ, ເປັນຫຍັງມັນຈຶ່ງເປັນໄປໄດ້, ແລະໃຜທີ່ຖືກຕໍານິ. ນີ້ແມ່ນ The Daily Diff, ບົດລາຍງານຫຼັງເກີດເຫດ. 13:31. ການຮ້ອງຂໍດຶງຖືກລວມເຂົ້າກັນ: ກົດລະບຽບ Firewall ໃໝ່ໜຶ່ງຂໍ້ຕໍ່ການຂຽນສະຄຣິບຂ້າມເວັບໄຊ ໃນໂໝດຈຳລອງ, ສະນັ້ນມັນບໍ່ໄດ້ບລັອກຫຍັງ. 13:37, ການທົດສອບຜ່ານ; ບໍ່ມີອັນໃດວັດແທກ CPU. 13:42, ກົດລະບຽບຖືກສົ່ງໄປຍັງ 180 ເມືອງພາຍໃນສອງວິນາທີ, ເພາະວ່າກົດລະບຽບ WAF ຂ້າມຂັ້ນຕອນ Dog, Pig ແລະ Canary ທີ່ການປ່ອຍອື່ນໆໄດ້ຮັບ.

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 ຂັ້ນຕອນເພື່ອຊອກຫາບໍ່ມີຫຍັງ. ດໍາເນີນການນັ້ນໃນທຸກຄໍາຮ້ອງຂໍ ແລະທຸກ core ແມ່ນຢູ່ທີ່ໜຶ່ງຮ້ອຍເປີເຊັນ, ບໍ່ໄດ້ເຮັດຫຍັງ, ຢ່າງລະອຽດ. ຜູ້ຮັກສາສອງຄົນຄວນຈະຈັບມັນໄດ້. ຂີດຈໍາກັດ 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 ໃນທຸກ core, ໃນທຸກເມືອງ. ແຜງຄວບຄຸມ ແລະ API ຢູ່ເບື້ອງຫຼັງ edge ດຽວກັນ, ດັ່ງນັ້ນລູກຄ້າບໍ່ສາມາດປິດມັນໄດ້, Hacker News, ພາຍໃຕ້ບົດລາຍງານຫຼັງເກີດເຫດ: ພວກເຂົາມີບັນຫາໜຶ່ງ, ໃຊ້ regular expression, ຕອນນີ້ພວກເຂົາມີສອງ. ເລື່ອງຕະຫລົກເກົ່າ. ຍັງຄົງລວບລວມ.

2:28 ຜົນການຕັດສິນ, ຫຼັງເກີດເຫດ: SHIP IT. ການປ້ອງກັນ CPU ກັບມາແລ້ວ, ກົດລະບຽບທັງໝົດ 3,868 ຖືກອ່ານດ້ວຍມື, ກົດລະບຽບຜ່ານການຈັດວາງ, ແລະເຄື່ອງຈັກຍ້າຍໄປຫາອັນທີ່ມີ linear-time ການຮັບປະກັນ, ຈັດພິມໂດຍ Ken Thompson ໃນປີ 1968. ວັນຈັນ: ບໍ່ມີ dot-star dot-star ໃນສິ່ງທີ່ດໍາເນີນການຕໍ່ຄໍາຮ້ອງຂໍ, ແລະຮັກສາສະວິດປິດການໃຊ້ງານອອກຈາກສິ່ງທີ່ມັນປິດ. ສົ່ງເຫດການທີ່ທ່ານຍັງບໍ່ໄດ້ຮັບອະນຸຍາດໃຫ້ເວົ້າເຖິງມາໃຫ້ຂ້ອຍ, ໃນຄໍາເຫັນ, ຫຼືທີ່ the daily diff dot dev.

2:53 ແລະນັ້ນຄື diff ສໍາລັບມື້ນີ້. ຂ້ອຍ Niko ຈາກ 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 · lo · 19 ກ.ຍ. 2026

Google Cloud ຂັດຂ້ອງໃນພື້ນທີ່ຫວ່າງເປົ່າ. ສາມຊົ່ວໂມງ.

ແຖວນະໂຍບາຍທີ່ມີຊ່ອງຫວ່າງເປົ່າສອງສາມຊ່ອງພົບຕົວຊີ້ null, ແລະ Google Cloud ຂັດຂ້ອງພ້ອມກັນໃນທຸກພາກພື້ນ – ຈາກນັ້ນ Cloudflare ກໍລົ້ມລົງໄປພ້ອມກັນ. ວັນທີ 12 ມິຖຸນາ 2025, 17:49 UTC: Service Control, ໄບນາຣີທີ່ອ

2:57 ↗
postmortem · lo · 16 ກ.ຍ. 2026

ເຟສບຸກໄດ້ລຶບຕົວເອງອອກຈາກອິນເຕີເນັດ. ຫົກຊົ່ວໂມງ.

ເຟສບຸກໄດ້ລຶບທີ່ຢູ່ຂອງຕົນເອງອອກຈາກອິນເຕີເນັດ, ແລະເມື່ອວິສະວະກອນຂອງເຂົາມາຮອດເພື່ອເອົາກັບຄືນ, ເຄື່ອງອ່ານບັດກໍ່ລົ້ມເຫຼວເຊັ່ນກັນ, ເພາະວ່າພວກມັນໃຊ້ງານໃນເຟສບຸກ. ວັນທີ 4 ຕຸລາ 2021, ເວລາ 15:40 ໂມງ UTC: ຄຳສັ່ງບ

3:01 ↗
postmortem · lo · 25 ກ.ຍ. 2026

ຂໍ້ຜິດພາດໜຶ່ງມິນລິວິນາທີ ໄດ້ຢຸດຕິການຈະລາຈອນທາງອາກາດຂອງອັງກິດ. ຫົກຊົ່ວໂມງ.

ເວລາ 10:00 ໂມງ ຂອງວັນອັງຄານທີ 8 ກັນຍາ, ການຮ້ອງຂໍລະຫັດ squawk ປົກກະຕິອັນໜຶ່ງພາຍໃນລະບົບນ່ານຟ້າແຫ່ງຊາດ (NAS) ຂອງ NATS ຖືກຂັດຂວາງໂດຍຂໍ້ຄວາມທີ່ມີຄວາມສຳຄັນສູງກວ່າໃນຂະນະທີ່ມັນກຳລັງອັບເດດຄ່າໜຶ່ງຢູ່. ໄລຍະເວລາສ

3:06 ↗
postmortem · lo · 22 ກ.ຍ. 2026

ການຣີບູດເຮັດໃຫ້ Telstra ກັບຄືນສູ່ປີ 2006. ໂທລະສັບເກົ້າລ້ານເຄື່ອງ.

ວິສະວະກອນຢູ່ Melbourne ເປີດເຄື່ອງຈັບເວລາຄືນໃໝ່ໃນເວລາ 2:50 ໂມງເຊົ້າ, ແລະເມື່ອຮອດຕອນເຊົ້າເຄືອຂ່າຍໂທລະສັບມືຖືທີ່ໃຫຍ່ທີ່ສຸດຂອງອົດສະຕາລີກໍຕົກລົງວ່າມັນແມ່ນເດືອນພະຈິກ 2006. ວັນທີ 8 ກໍລະກົດ 2026: ບັດ GPS ໃນເຄ

3:15 ↗