Jedno extra pole spôsobilo pád 8,5 milióna PC. 78 minút.
19.
19. júla 2024, 04:09 UTC: CrowdStrike tlačí Channel File 291 – aktualizáciu obsahu Rapid Response – na každý online senzor Windows Falcon. Šablóna, ktorú dodáva, bola vo februári deklarovaná s 21 vstupnými poľami; kód, ktorý dodáva vstupy, vytvára pole s 20 prvkami. Štyri mesiace nikto nečíta pole 21, pretože každé pravidlo ho ponecháva ako zástupný znak. Táto aktualizácia tam vloží skutočný vzor. Cloudový Content Validator napočíta 21 oproti deklarácii a prejde; Content Interpreter senzora, bez kontroly rozsahu, číta slot 21 v režime jadra a Windows vyvoláva chybu stránky: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Ovládač sa zámerne načíta skoro počas bootovania, prečíta ten istý súbor, znova spadne – bootovacia slučka. Vrátené späť o 05:27 UTC, o 78 minút neskôr, ale 8,5 milióna počítačov (podľa počtu Microsoftu, menej ako 1% Windows) už má súbor a oprava vyžaduje človeka pri každej klávesnici: Núdzový režim, odstránenie C-00000291*.sys, obnovovací kľúč BitLocker. Letecké spoločnosti, nemocnice, banky a 911 centrá sa zastavia; Delta ruší asi 7 000 letov a nárokuje si minimálne 500 miliónov dolárov od CrowdStrike a Microsoftu; Parametrix odhaduje účet Fortune 500 na takmer 5,4 miliardy dolárov. Postmortem z vlastnej analýzy hlavných príčin CrowdStrike (Root Cause Analysis), predbežnej revízie po incidente (Preliminary Post Incident Review), blogu Microsoftu, 8-K správy Delta a svedectiev Snemovne reprezentantov. Git blame: 65 CrowdStrike / 25 návrh režimu jadra / 10 piatok. Verdikt k oprave: SHIP IT, tesne.
Prečítajte si písanú edíciu (anglicky) ↗
Čo toto video pokrýva
- 28. feb – 24. apr 2024: senzor 7.11 dodáva typ šablóny IPC (21 deklarovaných polí, 20 dodaných); záťažový test prešiel 5. marca; štyri inštancie fungujú, pretože pole 21 je zástupný znak
- 19. júl, 04:09 UTC: dve nové inštancie šablóny; logická chyba Content Validátora prepustí tú, ktorá nie je zástupným znakom; čítanie mimo rozsahu v jadre; 05:27 UTC vrátené späť
- 19. – 29. júl: manuálna náprava (Núdzový režim, odstránenie súboru, kľúč BitLocker); ~97% senzorov späť do 24. júla, ~99% do 29. júla
- 25. júl – 19. aug: kontrola rozsahu za behu, validácia počtu polí pri kompilácii, kontroly Validátora, canary + nasadzovacie krúžky, zákaznícka kontrola nad obsahom Rapid Response, dve nezávislé recenzie; úplná RCA s výpisom pádu 6. augusta
Preložený prepis
Preložené z pôvodného anglického rozprávania. Dostupný zvuk a titulky sú kontrolované službou YouTube.
0:00 Jedna bezpečnostná aktualizácia nesie dvadsaťjeden polí do ovládača určeného pre dvadsať, a osem a pol milióna počítačov Windows zobrazí modrú obrazovku pred raňajkami. 19. júla 2024, 04:09 UTC. CrowdStrike tlačí Channel File 291 na každý senzor Falcon. O sedemdesiatosem minút neskôr ho stiahnu; dovtedy letecké spoločnosti, nemocnice a banky hľadia na ten istý modrý obdĺžnik. Prvý príspevok CEO hovorí, že nejde o kybernetický útok, pravda, a to nie je podstatné. Ako sa to stalo, prečo je to možné a kto za to môže.
0:27 Toto je The Daily Diff, postmortem. 28. februára. Senzor 7.11 dodáva nový detektor pre pomenované rúry. Deklaruje dvadsaťjeden vstupných polí; kód, ktorý ho dodáva, vytvára pole z dvadsiatich. Nikto si nevšimne: štyri mesiace každé pravidlo ponecháva pole dvadsaťjeden ako zástupný znak a nikto nečíta zástupný znak. Záťažový test prejde, štyri pravidlá sa dodajú, všetko v poriadku. 19. júla, 04:09. Dve nové pravidlá; jedno vloží skutočný vzor do poľa dvadsaťjeden.
0:51 Cloudový validátor napočíta dvadsaťjeden oproti deklarácii a povie, že je to v poriadku. Každý online hostiteľ Windows si ho stiahne naraz, pretože neexistuje žiadny kanárikový kruh. Senzor číta slot dvadsaťjeden, čo nie je jeho pamäť, a jadro robí to, čo robia jadrá. 05:27, vrátené. Príliš neskoro pre každého, kto reštartoval: ovládač sa načíta skoro počas bootovania, prečíta ten istý súbor a znova spadne. Bootovacia slučka. Prečo je to možné? Pravidlá sú konfigurácia pushovaná z cloudu, takže kód nepreskočí kódo
1:16 pipeline. Interpreter nemá kontrolu rozsahu; dôveruje validátoru, a validátor dôveruje deklarácii. A všetko to beží v režime jadra, kde zlý ukazovateľ nie je výnimkou, ale chybou stránky, ktorú Windows podľa neho nemôže chrániť pomocou try-except. Patrick Wardle to popoludní prečíta z výpisu pádu: index nula x štrnásť, slot dvadsaťjeden. Oprava je manuálna. Núdzový režim, odstrániť C-00000291, reštartovať. S BitLockerom najprv zadajte štyridsaťosemmiestny
1:43 obnovovací kľúč, ktorý žije na serveri, ktorý je tiež modrý. Git blame. CrowdStrike, šesťdesiatpäť percent: RCA uvádza šesť zistení, a zistenie šesť je celá veta: Inštancie šablóny by mali mať fázované nasadenie. Návrh režimu jadra, dvadsaťpäť: CrowdStrike hovorí, že Windows nemôže ešte hostiť bezpečnosť mimo jadra, Microsoft hovorí, že to nie je incident Microsoftu, a chybu stránky to nezaujíma.
2:05 Piatok, desať. Správa o commite hovorí, že nejde o kód. Dosah výbuchu: osem a pol milióna zariadení, menej ako jedno percento Windows. Delta ruší sedemtisíc letov a žaluje o päťsto miliónov, vrátane Microsoftu. Poisťovatelia odhadujú účet Fortune 500 na takmer päť miliárd. Hacker News: štyri a pol tisíc bodov. Irónia: aktualizácia, ktorá mala odhaliť nové útočné techniky, jednu sama priniesla. Verdikt, postmortem: SHIP IT, tesne.
2:27 Kontrola rozsahu za šesť dní, fázované kruhy, kontrola zákazníka nad aktualizáciami obsahu, dve externé recenzie. Tesne, pretože to všetko už bola štandardná prax. Pondelok: čokoľvek, čo váš agent stiahne z cloudu, dostane kanárikový kruh. Konfigurácia je kód v momente, keď ju niečo parsuje tam, kde nemôže hodiť výnimku. Pošlite mi incident, o ktorom ešte stále nemôžete hovoriť, v komentároch, alebo na the daily diff dot dev. A to je dnešný diff.
2:48 Som Niko z Axrisi. Spojte zodpovedne.
Zdroje
- 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



