+− THE DAILY DIFFdev & AI news
SHIP IT

Регуларни израз је срушио Cloudflare. 27 минута.

2.

2. јул 2019, 13:42 УТЦ: једно ново правило за Cloudflare-ов Веб Апликативни Фајервол ступа на снагу у 180+ градова за око две секунде. То је XSS правило у симулационом режиму, тако да ништа не блокира, али и даље ради на сваком захтеву и завршава се са .*(?:.*=.*). PCRE враћа уназад, свако ЦПУ језгро које опслужује ХТТП достиже 100 %, и сваки Cloudflare-проксирани сајт враћа 502 током 27 минута; саобраћај пада за 82 %. Прекидач за искључивање се налази иза Cloudflare Access-а, који се налази иза Cloudflare-а. Постмортем, из Cloudflare-овог сопственог извештаја: ЦПУ заштита уклоњена недељама раније у рефакторисању намењеном уштеди ЦПУ-а, процедура која је омогућила било ком правилу да прескочи припрему, механизам без гаранције сложености, 11 узрока и 7 поправки. Пресуда за поправку: SHIP IT.

Прочитајте писано издање (енглески) ↗

Шта овај видео покрива

  • 13:31–13:42 УТЦ: ПР спојен, ЦИ зелен (без ЦПУ теста), Quicksilver гура правило у 180+ градова; WAF правила прескачу DOG → PIG → Canary фазе
  • 13:45–14:07: прва страница; ЦПУ 100 % широм света, саобраћај −82 %, 502с свуда; интерна контролна табла је иза Cloudflare Access-а, који је ван функције; неки акредитиви су истекли; ретко увежбаван заобилазни пут
  • 14:07–14:09: глобално WAF гашење; саобраћај и ЦПУ нормални након 27 минута; 14:52 WAF поново ради без правила
  • 2. јул (15:50 УТЦ) и 12. јул: Cloudflare објављује напомену истог дана и комплетан постмортем; ЦПУ заштита поново додата, 3.868 правила поново прочитано, постепена примена, прелазак на regex механизам са линеарним временом

Преведени транскрипт

Преведено са оригиналне енглеске нарације. Доступни аудио и титлови контролисани су од стране YouTube-а.

0:00 Један регуларни израз истовремено ступа на снагу на сваком Cloudflare серверу, и наредних двадесет седам минута сајтови иза њега су страница са грешком 502, што је, за заштитни зид, најстроже могуће подешавање. 2. јул 2019. године, 13:42 УТЦ. Cloudflare објављује у року од два сата: није напад, лоша примена, саобраћај смањен за 82 процента. Десет дана касније CTO Џон Грејем-Каминг објављује комплетан постмортем, укључујући регуларни израз, и Hacker News му даје 698 поена,

0:26 што је за прекид рада стојеће овације. Како се то дешава, зашто је то могуће и ко је заправо крив. Ово је The Daily Diff, постмортем. 13:31. Захтев за повлачење се спаја: једно ново правило заштитног зида против међусајтног скриптовања, у симулационом режиму, тако да ништа не блокира. 13:37, тестови пролазе; ниједан не мери ЦПУ. 13:42, правило се шаље у 180 градова за две секунде, јер WAF правила прескачу фазе пса, свиње и канаринца које добијају друга издања.

0:54 13:45, прва страница. 13:49, Hacker News има тему на страници статуса, која и даље каже да су сви системи оперативни. Правило се завршава са тачка-звезда, тачка-звезда, једнако, тачка-звезда: било шта, затим било шта, затим знак једнакости. PCRE претпоставља похлепно, не успева и враћа се кроз сваки други размак. x једнако x захтева 23 корака. Двадесет икс-ова након једнакости: 555.

1:15 Двадесет икс-ова, без знака једнакости: 4.067 корака да се ништа не пронађе. Покрените то на сваком захтеву и свако језгро је на сто посто, радећи ништа, темељно. Два чувара су требала да то ухвате. Ограничење ЦПУ-а на правилима уклоњено је грешком недељама раније, у рефакторисању које је требало да омогући WAF-у да користи мање ЦПУ-а. А процедура омогућава било ком правилу да прескочи припрему, јер правила постоје да би зауставила активне нападе; овај није био хитан, а ипак је отишао глобално.

1:37 14:00, WAF је идентификован; нема напада. 14:02, неко предлаже глобално гашење: једна компонента, искључена, широм света. Прекидач је иза Cloudflare Access-а. Cloudflare Access је иза Cloudflare-а. Неки акредитиви су истекли од некоришћења, тако да најбржа мрежа на интернету проводи пет минута на заобилазни пут који нико није увежбао. 14:07, искључивање. 14:09, саобраћај нормалан. git blame: примена са једном брзином, глобална; ЦПУ заштита рефакторисана случајно;

2:04 regex механизам без горње границе. Није инжењер који је написао правило: постмортем наводи једанаест узрока и никога не именује. Радијус експлозије: 27 минута, 82 процента саобраћаја, 100 посто ЦПУ-а на сваком језгру, у сваком граду. Контролна табла и АПИ налазе се иза истог руба, тако да корисници не могу чак ни да га искључе. Hacker News, испод постмортема: имали су један проблем, користили су регуларни израз, сада имају два. Стара шала. Још увек се компајлира.

2:28 Пресуда, постмортем: SHIP IT. ЦПУ заштита је поново укључена, свих 3.868 правила се чита ручно, правила пролазе кроз припрему, и механизам прелази на онај са гаранцијама линеарног времена, које је објавио Кен Томпсон 1968. године. Понедељак: без тачка-звезда тачка-звезда у било чему што се покреће по захтеву, и држите прекидач за искључивање од ствари коју искључује. Пошаљите ми инцидент о коме вам још увек није дозвољено да говорите, у коментарима, или на the 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 · sr · 25. 9. 2026.

Грешка од једне милисекунде зауставила је ваздушни саобраћај у Великој Британији. Шест сати.

У уторак, 8. септембра, у 10:00, један рутински захтев за squawk-код у Националном систему ваздушног простора (NAS) компаније NATS бива прекинут поруком вишег приоритета док је делимично ажурирао вред

3:06 ↗