Jedno pole navíc shodilo 8,5 milionu PC. 78 minut.
19.
19. července 2024, 04:09 UTC: CrowdStrike tlačí Channel File 291 – aktualizaci Rapid Response Content – na každý online senzor Windows Falcon. Šablona, kterou krmí, byla v únoru deklarována s 21 vstupními poli; kód, který dodává vstupy, vytváří pole o 20. Po čtyři měsíce nic nečte pole 21, protože každé pravidlo ho ponechává jako zástupný znak. Tato aktualizace tam vloží skutečný vzor. Cloudový Content Validator počítá 21 proti deklaraci a projde ji; Content Interpreter senzoru, bez kontroly hranic, čte slot 21 v režimu jádra a Windows způsobí chybu stránky: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Ovladač se načítá záměrně brzy při spouštění, čte stejný soubor, znovu spadne – boot loop. Vráceno v 05:27 UTC, o 78 minut později, ale 8,5 milionu strojů (podle Microsoftu, méně než 1 % Windows) již soubor má a oprava vyžaduje člověka u každé klávesnice: Nouzový režim, smazat C-00000291*.sys, obnovovací klíč BitLockeru. Letecké společnosti, nemocnice, banky a centra tísňové linky 911 se zastaví; Delta ruší asi 7 000 letů a požaduje alespoň 500 milionů dolarů od CrowdStrike a Microsoftu; Parametrix odhaduje účet pro Fortune 500 na téměř 5,4 miliardy dolarů. Postmortem z vlastní analýzy CrowdStrike Root Cause Analysis, Preliminary Post Incident Review, blogu Microsoftu, Delta 8-K a svědectví Sněmovny. Git blame: 65 CrowdStrike / 25 design režimu jádra / 10 pátek. Verdikt o opravě: SHIP IT, těsně.
Přečtěte si psané vydání (anglicky) ↗
Co toto video pokrývá
- 28. únor – 24. duben 2024: senzor 7.11 dodává typ šablony IPC (deklarováno 21 polí, dodáno 20); zátěžový test projde 5. března; čtyři instance fungují, protože pole 21 je zástupný znak
- 19. červenec, 04:09 UTC: dvě nové instance šablony; logická chyba Content Validatoru propustí instanci bez zástupného znaku; čtení mimo hranice v jádře; 05:27 UTC vráceno
- 19.–29. červenec: manuální náprava (Nouzový režim, smazat soubor, klíč BitLockeru); ~97 % senzorů zpět do 24. července, ~99 % do 29. července
- 25. červenec – 19. srpen: kontrola hranic za běhu, validace počtu polí při kompilaci, kontroly validátoru, canary + nasazovací kruhy, zákaznická kontrola nad obsahem Rapid Response, dvě nezávislé revize; plná RCA s výpisem pádu 6. srpna
Přeložený přepis
Přeloženo z původního anglického vyprávění. Dostupné audio a titulky jsou řízeny YouTube.
0:00 Jedna bezpečnostní aktualizace nese dvacet jedna polí do ovladače vytvořeného pro dvacet, a osm a půl milionu Windows strojů zobrazí modrou obrazovku před snídaní. 19. července 2024, 04:09 UTC. CrowdStrike tlačí Channel File 291 na každý senzor Falcon. O sedmdesát osm minut později ho stáhnou; do té doby letecké společnosti, nemocnice a banky zírají na stejný modrý obdélník. První příspěvek CEO říká, že nejde o kybernetický útok, pravda, a to není pointa. Jak se to stane, proč je to možné a kdo nese vinu.
0:27 Toto je The Daily Diff, postmortem. 28. února. Senzor 7.11 dodává nový detektor pro pojmenované roury. Deklaruje dvacet jedna vstupních polí; kód, který ho krmí, vytváří pole o dvaceti. Nikdo si nevšimne: po čtyři měsíce každé pravidlo ponechává pole dvacet jedna jako zástupný znak a nikdo nečte zástupný znak. Zátěžový test projde, čtyři pravidla se vydají, vše v pořádku. 19. července, 04:09. Dvě nová pravidla; jedno vloží skutečný vzor do pole dvacet jedna.
0:51 Cloudový validátor počítá dvacet jedna proti deklaraci a říká, že je to v pořádku. Každý online hostitel Windows si to stáhne najednou, protože neexistuje žádný "canary ring". Senzor čte slot dvacet jedna, což není jeho paměť, a jádro dělá to, co dělají jádra. 05:27, vráceno. Příliš pozdě pro každého, kdo restartoval: ovladač se načítá brzy při spouštění, čte stejný soubor a znovu spadne. Boot loop. Proč je to možné? Pravidla jsou konfigurace tlačená z cloudu, takže ne kód přeskočí kódovou
1:16 pipeline. Interpreter nemá kontrolu hranic; důvěřuje validátoru, a validátor důvěřuje deklaraci. A vše běží v režimu jádra, kde špatný ukazatel není výjimka, ale chyba stránky, o které Windows říká, že nemůže být chráněna try-except. Patrick Wardle to odpoledne přečte z výpisu pádu: index nula x čtrnáct, slot dvacet jedna. Oprava je manuální. Nouzový režim, smazat C-00000291, restartovat. S BitLockerem nejprve zadejte čtyřiceti osmi místný
1:43 obnovovací klíč, který žije na serveru, který je také modrý. git blame. CrowdStrike, šedesát pět procent: RCA uvádí šest zjištění, a zjištění šest je celá věta: Instance šablon by měly mít fázované nasazení. Design režimu jádra, dvacet pět: CrowdStrike říká, že Windows nemůže zatím hostovat zabezpečení mimo jádro, Microsoft říká, že to není incident Microsoftu, a chyba stránky se nestará.
2:05 Pátek, deset. Zpráva o commitu říká, že to není kód. Poloměr exploze: osm a půl milionu zařízení, méně než jedno procento Windows. Delta ruší sedm tisíc letů a žaluje za pět set milionů, včetně Microsoftu. Pojišťovny odhadují účet pro Fortune 500 na téměř pět miliard. Hacker News: čtyřicet pět set bodů. Ironie: aktualizace určená k detekci nových útočných technik jednu dodala. Verdikt, postmortem: SHIP IT, těsně.
2:27 Kontrola hranic do šesti dnů, fázované kruhy, zákaznická kontrola nad aktualizacemi obsahu, dvě externí recenze. Těsně, protože to všechno už byla standardní praxe. Pondělí: cokoli, co váš agent stáhne z cloudu, dostane canary ring. Konfigurace je kód v okamžiku, kdy ji něco parsuje tam, kde nemůže vyhodit chybu. Pošlete mi incident, o kterém stále nesmíte mluvit, v komentářích nebo na the daily diff dot dev. A to je dnešní rozdíl.
2:48 Jsem Niko z Axrisi. Spojujte zodpovědně.
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



