Eno dodatno polje je povzročilo sesutje 8,5 milijona računalnikov. 78 minut.
19.
19. julij 2024, 04:09 UTC: CrowdStrike pošlje datoteko Channel File 291 — posodobitev vsebine za hiter odziv — vsakemu spletnemu senzorju Windows Falcon. Predloga, ki jo uporablja, je bila februarja deklarirana z 21 vhodnimi polji; koda, ki dobavlja vhode, zgradi polje z 20 elementi. Štiri mesece nihče ne bere polja 21, ker ga vsako pravilo pusti kot nadomestni znak. Ta posodobitev tam postavi pravi vzorec. Validator vsebine na strani v oblaku prešteje 21 polj proti deklaraciji in jo potrdi; tolmač vsebine senzorja, brez preverjanja meja, prebere režo 21 v jedrnem načinu in Windows prikaže napako Page Fault: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Gonilnik se naloži zgodaj ob zagonu namenoma, prebere isto datoteko, se znova sesuje — zanka zagona. Preklicano ob 05:27 UTC, 78 minut kasneje, vendar 8,5 milijona strojev (Microsoftova ocena, manj kot 1% sistemov Windows) že ima datoteko, in popravek je človek za vsako tipkovnico: varen način, izbriši C-00000291*.sys, obnovitveni ključ BitLocker. Letalske družbe, bolnišnice, banke in centri za klice v sili 911 se ustavijo; Delta odpove približno 7.000 letov in zahteva vsaj 500 milijonov dolarjev od CrowdStrike in Microsofta; Parametrix ocenjuje račun za podjetja Fortune 500 blizu 5,4 milijarde dolarjev. Poročilo o postmortemu iz CrowdStrikeove lastne analize vzroka, predhodni pregled po incidentu, Microsoftov blog, Deltin obrazec 8-K in pričanje v predstavniškem domu. Git blame: 65 CrowdStrike / 25 zasnova jedrnega načina / 10 petek. Razsodba o popravku: SHIP IT, tesno.
Preberi pisno izdajo (angleščina) ↗
Kaj zajema ta videoposnetek
- 28. februar – 24. april 2024: senzor 7.11 pošlje tip predloge IPC (deklariranih 21 polj, dobavljenih 20); stresni test uspe 5. marca; štiri instance delujejo, ker je polje 21 nadomestni znak
- 19. julij, 04:09 UTC: dve novi instanci predloge; logična napaka validatorja vsebine prepusti instanco brez nadomestnega znaka; branje izven meja v jedru; 05:27 UTC preklicano
- 19.–29. julij: ročno popravilo (Varen način, izbris datoteke, ključ BitLocker); ~97% senzorjev nazaj do 24. julija, ~99% do 29. julija
- 25. julij – 19. avgust: preverjanje meja med izvajanjem, validacija štetja polj med prevajanjem, preverjanja validatorja, kanarski + implementacijski obroči, nadzor strank nad vsebino hitrega odziva, dva neodvisna pregleda; celotna analiza vzroka s povzetkom pomnilnika ob sesutju 6. avgusta
Preveden prepis
Prevedeno iz izvirnega angleškega pripovedovanja. Razpoložljivi zvok in podnapisi so nadzorovani s strani YouTuba.
0:00 Ena varnostna posodobitev prenese enaindvajset polj v gonilnik, zgrajen za dvajset, in osem milijonov in pol računalnikov z operacijskim sistemom Windows prikaže modri zaslon pred zajtrkom. 19. julij 2024, 04:09 UTC. CrowdStrike pošlje datoteko Channel File 291 vsakemu senzorju Falcon. Sedemdeset osem minut kasneje jo umaknejo; do takrat letalske družbe, bolnišnice in banke gledajo v isti modri pravokotnik. Prva objava izvršnega direktorja pravi, da ne gre za kibernetski napad, res je, in to ni bistvo. Kako se to zgodi, zakaj je to mogoče in kdo je kriv.
0:27 To je The Daily Diff, postmortem. 28. februar. Senzor 7.11 dobavi nov detektor za imenovane cevi. Deklarira enaindvajset vhodnih polj; koda, ki jih napaja, zgradi polje z dvajsetimi elementi. Nihče ne opazi: štiri mesece vsako pravilo pusti polje enaindvajset kot nadomestni znak, in nihče ne prebere nadomestnega znaka. Stresni test je uspešen, štiri pravila se objavijo, vse je v redu. 19. julij, 04:09. Dve novi pravili; eno postavi pravi vzorec v polje enaindvajset.
0:51 Oblakovni validator prešteje enaindvajset glede na deklaracijo in reče, da je v redu. Vsak spletni gostitelj Windows jo takoj prenese, ker ni kanarskega obroča. Senzor prebere režo enaindvajset, ki ni njegov pomnilnik, in jedro naredi, kar jedra delajo. 05:27, preklicano. Prepozno za vse, ki so ponovno zagnali: gonilnik se naloži zgodaj ob zagonu, prebere isto datoteko in se znova sesuje. Zanka zagona. Zakaj je to mogoče? Pravila so konfiguracija, posredovana iz oblaka, tako da koda ne preskoči kodnega
1:16 cevovoda. Tolmač nima preverjanja meja; zaupa validatorju, in validator zaupa deklaraciji. In vse to se izvaja v jedrnem načinu, kjer slab kazalec ni izjema, ampak napaka Page Fault, ki je po mnenju sistema Windows ni mogoče zaščititi z 'try-except'. Patrick Wardle popoldne prebere iz povzetka sesutja: indeks nič x štirinajst, reža enaindvajset. Popravek je ročni. Varen način, izbriši C-00000291, ponovni zagon. Z BitLockerjem najprej vnesite osem in štirideset mestni
1:43 obnovitveni ključ, ki se nahaja na strežniku, ki je prav tako moder. git blame. CrowdStrike, petinšestdeset odstotkov: RCA navaja šest ugotovitev, in ugotovitev šest je celoten stavek: Primerki predlog bi morali imeti stopenjsko implementacijo. Zasnova jedrnega načina, petindvajset: CrowdStrike pravi, da Windows ne more še gostiti varnosti zunaj jedra, Microsoft pravi, da to ni Microsoftov incident, in napaka Page Fault to ne zanima.
2:05 Petek, deset. Sporočilo ob zavezi pravi, da ni koda. Obseg vpliva: osem in pol milijona naprav, manj kot en odstotek sistemov Windows. Delta odpove sedem tisoč letov in toži za petsto milijonov, vključno z Microsoftom. Zavarovalnice ocenjujejo račun za Fortune 500 blizu pet milijard. Hacker News: štiri tisoč petsto točk. Ironija: posodobitev, namenjena odkrivanju novih napadalnih tehnik, je eno tudi povzročila. Razsodba, postmortem: SHIP IT, tesno.
2:27 Preverjanje meja v šestih dneh, stopenjski obroči, nadzor strank nad posodobitvami vsebine, dva zunanja pregleda. Tesno, ker je bilo vse to že standardna praksa. Ponedeljek: kar koli vaš agent povleče iz oblaka, dobi kanarski obroč. Konfiguracija je koda v trenutku, ko jo nekaj razčleni tam, kjer ne more sprožiti napake. Pošljite mi incident, o katerem še vedno ne smete govoriti, v komentarjih ali na daily diff dot dev. In to je razlika za danes.
2:48 Sem Niko iz Axrisi. Združujte odgovorno.
Viri
- CrowdStrike, Root Cause Analysis — Channel File 291 (Aug 6, 2024, 12 pp.)www.crowdstrike.com
- CrowdStrike, Executive Summary of the RCA (Aug 6, 2024)www.crowdstrike.com
- CrowdStrike, Preliminary Post Incident Review (Jul 24, 2024)www.crowdstrike.com
- CrowdStrike, Remediation and Guidance Hub — Channel File 291 (the workaround steps)www.crowdstrike.com
- CrowdStrike, tech alert of Jul 19, 2024 (archived: Safe Mode → delete C-00000291*.sys → BitLocker key)web.archive.org
- Microsoft, David Weston, "Helping our customers through the CrowdStrike outage" (Jul 20, 2024; the 8.5 million figure)blogs.microsoft.com
- Delta Air Lines, Form 8-K (Aug 8, 2024; ~7,000 cancellations, at least $500 million)www.sec.gov
- Adam Meyers (CrowdStrike SVP), written testimony, House Homeland Security Subcommittee (Sep 24, 2024)homeland.house.gov
- George Kurtz on X, Jul 19, 2024, 09:45 UTCx.com
- Patrick Wardle on X, Jul 19, 2024 (the crash-dump index 0x14)x.com
- Hacker News, Jul 19, 2024 — "CrowdStrike Update: Windows Bluescreen and Boot Loops" (4,489 points)news.ycombinator.com
- The Guardian, Jul 24, 2024 — "CrowdStrike global outage to cost US Fortune 500 companies $5.4bn" (Parametrix estimate)www.theguardian.com
- Hacker News, Jul 21, 2024 — "Initial details about why CrowdStrike's CSAgent.sys crashed" (519 points)news.ycombinator.com
- Wikipedia — 2024 CrowdStrike-related IT outagesen.wikipedia.org



