+− THE DAILY DIFFdev & AI news
SHIP IT

Regex batek Cloudflare jaitsi zuen. 27 minutu.

2019ko uztailaren 2a, 13:42 UTC: Cloudflare-ren Web Aplikazioen Suebakiari buruzko arau berri bat zuzenean jartzen da 180+ hiritan bi segundo inguruan.

2019ko uztailaren 2a, 13:42 UTC: Cloudflare-ren Web Aplikazioen Suebakiari buruzko arau berri bat zuzenean jartzen da 180+ hiritan bi segundo inguruan. XSS arau bat da simulazio moduan, beraz, ez du ezer blokeatzen, baina eskaera bakoitzean exekutatzen da, eta .*(?:.*=.*) amaitzen da. PCRE atzera egiten da, HTTP eskaerak zerbitzatzen dituen CPU nukleo bakoitzak %100era iristen da, eta Cloudflare-k proxy bidez babestutako gune bakoitzak 502 itzultzen du 27 minutuz; trafikoa %82 jaisten da. Hiltzeko etengailua Cloudflare Access-en atzean dago, eta hori Cloudflare-ren atzean. Hil ondorengo azterketa, Cloudflare-ren idazlan propioaren arabera: CPU babesa aste batzuk lehenago kendu zen CPU aurrezteko helburuarekin egindako berregituraketa batean, edozein arauk proba fasea saltatzeko aukera ematen zuen prozedura, konplexutasun bermerik gabeko motorra, 11 kausa eta 7 konponbide. Konponbidearen epaia: SHIP IT.

Irakurri idatzizko edizioa (ingelesez) ↗

Bideo honek zer jorratzen duen

  • 13:31–13:42 UTC: PR batu zen, CI berdea (CPU probarik gabe), Quicksilver-ek araua 180+ hiritara bultzatzen du; WAF arauak DOG → PIG → Canary faseak saltatzen dituzte.
  • 13:45–14:07: lehen orria; CPU %100 mundu osoan, trafikoa −%82, 502 ak nonahi; barneko kontrol panela Cloudflare Access-en atzean dago, eta hori behera dago; kredentzial batzuk iraungi dira; gutxitan landu den saihesbide bat.
  • 14:07–14:09: WAF globala amaitu; trafikoa eta CPU normalak 27 minutu igaro ondoren; 14:52 WAF berriro martxan arau hori kenduta.
  • Uztailaren 2a (15:50 UTC) eta uztailaren 12a: Cloudflare-k egun bereko oharra eta hil ondorengo azterketa osoa argitaratzen ditu; CPU babesa berriro gehitu da, 3.868 arau berriro irakurri dira, hedapen fasekatuak, denbora linealeko regex motor batera aldatzea.

Itzulitako transkripzioa

Jatorrizko ingelesezko narraziotik itzulia. Eskuragarri dauden audioa eta azpitituluak YouTube-k kontrolatzen ditu.

0:00 Erregela-adierazpen bat zuzenean jartzen da Cloudflare zerbitzari guztietan batera, eta hurrengo hogeita zazpi minutuetan atzean dituen guneak 502 orri bat dira, eta hori, suebaki baterako, ahalik eta ezarpen zorrotzena da. 2019ko uztailaren 2a, 13:42 UTC. Cloudflare-k bi orduko epean argitaratzen du: ez zen eraso bat izan, hedapen akastun bat baizik, trafikoa %82 jaitsi zen. Hamar egun geroago, John Graham-Cumming CTO-k hil ondorengo azterketa osoa argitaratzen du, regex-a barne, eta Hacker News-ek 698 puntu ematen dizkio,

0:26 eta hori, etenaldi baterako, txalo zaparrada bat da. Nola gertatzen den, zergatik den posible, eta nork duen benetan errua. Hau The Daily Diff da, hil ondorengo azterketa. 13:31. Pull eskaera bat batzen da: suebaki arau berri bat webgune arteko scripting-aren aurka, simulazio moduan, beraz, ez du ezer blokeatzen. 13:37, probak gainditzen dira; batek ere ez du CPUa neurtzen. 13:42, araua 180 hirira bidaltzen da bi segundotan, WAF arauek beste argitalpenek dituzten txakur, txerri eta kanario faseak saltatzen dituztelako.

0:54 13:45, lehen orria. 13:49, Hacker News-ek hari bat du egoera orrian, eta oraindik ere sistema guztiak operatiboak direla dio. Araua puntu-izar, puntu-izar, berdin, puntu-izar amaitzen da: edozer, gero edozer, gero berdin zeinua. PCRE-k zekenki asmatzen du, huts egiten du, eta beste banaketa guztietatik atzera egiten du. x berdin x-k 23 urrats hartzen ditu. Hogeita bost x berdinaren ondoren: 555.

1:15 Hogeita bost x, berdin zeinurik gabe: 4.067 urrats ezer ez aurkitzeko. Exekutatu hori eskaera bakoitzean eta nukleo bakoitza ehuneko ehunean egongo da, ezer ez egiten, sakonki. Bi zaindariak harrapatu behar zuten. Arauen CPU muga akats baten ondorioz kendu zen aste batzuk lehenago, WAF-ek CPU gutxiago erabiltzeko egindako berregituraketa batean. Eta prozedurak edozein arauk proba fasea saltatzeko aukera ematen du, arauak zuzeneko erasoak geldiarazteko existitzen direlako; hau ez zen larrialdi bat, eta hala ere global bihurtu zen.

1:37 14:00, WAFa identifikatzen da; erasorik ez. 14:02, norbaitek amaiera globala proposatzen du: osagai bat, desaktibatuta, mundu osoan. Etengailua Cloudflare Access-en atzean dago. Cloudflare Access Cloudflare-ren atzean dago. Kredentzial batzuk iraungi dira erabilera ezaren ondorioz, beraz, Interneteko sare azkarrenak bost minutu ematen ditu inork landu ez duen saihesbide batean. 14:07, hil. 14:09, trafikoa normala. git blame: abiadura bakarreko hedapen bat, globala; CPU babes bat,

2:04 kasualitatez berregituratua; goiko mugarik gabeko regex motor bat. Ez araua idatzi zuen ingeniaria: hil ondorengo azterketan hamaika kausa zerrendatzen dira eta ez da inor izendatzen. Eragin-erradioa: 27 minutu, trafikoaren %82, CPUaren %100 nukleo guztietan, hiri guztietan. Agente-panela eta APIa ertz beraren atzean daude, beraz, bezeroek ezin dute desaktibatu ere egin. Hacker News-en, hil ondorengo azterketaren azpian: arazo bat zuten, adierazpen erregular bat erabili zuten, orain bi dituzte. Txantxa zaharra. Oraindik ere konpilatzen da.

2:28 Epaia, hil ondorengo azterketa: SHIP IT. CPU babesa berriro jarrita dago, 3.868 arau guztiak eskuz irakurtzen dira, arauak proba faseetatik pasatzen dira, eta motorra denbora linealeko bermeak dituen batera mugitzen da, Ken Thompson-ek 1968an argitaratutakoa. Astelehena: ez puntu-izar puntu-izar eskaera bakoitzeko exekutatzen den ezeretan, eta utzi hiltzeko etengailua hiltzen duen gauzatik kanpo. Bidali ezin duzun gertaera hori, iruzkinetan, edo daily diff dot dev-en.

2:53 Eta hori da gaurko diff-a. Niko naiz Axrisi-tik. Batu arduraz.

Iturriak

  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

Lotutako bideoak