Un camp addicional va "crashear" 8,5 milions de PCs. 78 minuts.
19 de juliol de 2024, 04:09 UTC: CrowdStrike envia el Fitxer de Canal 291 —una actualització de Contingut de Resposta Ràpida— a cada sensor Windows Falcon en línia.
19 de juliol de 2024, 04:09 UTC: CrowdStrike envia el Fitxer de Canal 291 —una actualització de Contingut de Resposta Ràpida— a cada sensor Windows Falcon en línia. La plantilla que alimenta va ser declarada amb 21 camps d'entrada al febrer; el codi que subministra les entrades construeix un array de 20. Durant quatre mesos res no llegeix el camp 21, perquè cada regla el deixa com a comodí. Aquesta actualització hi posa un patró real. El Validador de Contingut del costat del núvol compta 21 contra la declaració i l'aprova; l'Intèrpret de Contingut del sensor, sense comprovació de límits, llegeix la ranura 21 en mode nucli i Windows provoca errors de pàgina: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. El controlador es carrega aviat durant l'arrancada a propòsit, llegeix el mateix fitxer, torna a "crashear" —bucle d'arrancada. Revertit a les 05:27 UTC, 78 minuts més tard, però 8,5 milions de màquines (el recompte de Microsoft, menys de l'1% de Windows) ja tenen el fitxer, i la solució és un humà a cada teclat: Mode segur, esborrar C-00000291*.sys, clau de recuperació de BitLocker. Aerolínies, hospitals, bancs i centres del 911 s'aturen; Delta cancel·la uns 7.000 vols i reclama almenys 500 milions de dòlars a CrowdStrike i Microsoft; Parametrix estima la factura del Fortune 500 prop dels 5.400 milions de dòlars. Autòpsia de la pròpia anàlisi de causa arrel de CrowdStrike, la revisió preliminar d'incidents, el blog de Microsoft, l'8-K de Delta i el testimoni de la Cambra. Culpa de Git: 65 CrowdStrike / 25 el disseny en mode nucli / 10 el divendres. Veredicte sobre la solució: SHIP IT, per poc.
Llegeix l'edició escrita (anglès) ↗
Què cobreix aquest vídeo
- 28 de febrer – 24 d'abril de 2024: el sensor 7.11 envia el tipus de plantilla IPC (21 camps declarats, 20 subministrats); la prova d'estrès passa el 5 de març; quatre instàncies funcionen perquè el camp 21 és un comodí
- 19 de juliol, 04:09 UTC: dues noves instàncies de plantilla; l'error lògic del Validador de Contingut permet que la no-comodí passi; lectura fora de límits al nucli; 05:27 UTC revertit
- 19-29 de juliol: reparació manual (Mode segur, esborrar el fitxer, clau de BitLocker); ~97% dels sensors tornen el 24 de juliol, ~99% el 29 de juliol
- 25 de juliol – 19 d'agost: comprovació de límits en temps d'execució, validació del nombre de camps en temps de compilació, comprovacions del validador, anell canari + anells de desplegament, control del client sobre el contingut de resposta ràpida, dues revisions independents; RCA completa amb "crash dump" el 6 d'agost
Transcripció traduïda
Traduït de la narració original en anglès. L'àudio i els subtítols disponibles estan controlats per YouTube.
0:00 Una actualització de seguretat porta vint-i-un camps a un controlador construït per a vint, i vuit milions i mig de màquines Windows mostren la pantalla blava abans d'esmorzar. 19 de juliol de 2024, 04:09 UTC. CrowdStrike envia el Fitxer de Canal 291 a cada sensor Falcon. Setanta-vuit minuts més tard el retiren; aleshores les aerolínies, hospitals i bancs miren el mateix rectangle blau. La primera publicació del CEO diu que no és un ciberatac, cert, i no és el fons de la qüestió. Com passa, per què és possible, i qui en té la culpa.
0:27 Això és The Daily Diff, autòpsia. 28 de febrer. El sensor 7.11 envia un nou detector per a "named pipes". Declara vint-i-un camps d'entrada; el codi que l'alimenta construeix un array de vint. Ningú se n'adona: durant quatre mesos cada regla deixa el camp vint-i-un com a comodí, i ningú llegeix un comodí. Una prova d'estrès passa, quatre regles s'envien, tot bé. 19 de juliol, 04:09. Dues noves regles; una posa un patró real al camp vint-i-un.
0:51 El validador del núvol compta vint-i-un contra la declaració i diu que està bé. Cada "host" de Windows en línia el descarrega alhora, perquè no hi ha anell canari. El sensor llegeix la ranura vint-i-un, que no és la seva memòria, i el nucli fa el que fan els nuclis. 05:27, revertit. Massa tard per a qualsevol que hagi reiniciat: el controlador es carrega aviat a l' arrancada, llegeix el mateix fitxer i torna a "crashear". Bucle d'arrancada. Per què és possible? Les regles són configuracions enviades des del núvol, de manera que no hi ha codi que s'esquitlla de la "pipeline" de
1:16 codi. L'intèrpret no té comprovació de límits; confia en el validador, i el validador confia en la declaració. I tot s'executa en mode nucli, on un punter erroni no és una excepció sinó un error de pàgina que Windows diu que no pot ser protegit per "try-except". Patrick Wardle ho llegeix d'un "crash dump" aquella tarda: índex zero x catorze, ranura vint-i-un. La solució és manual. Mode segur, esborrar C-00000291, reiniciar. Amb BitLocker, primer escriure una clau de recuperació de quaranta-vuit dígits
1:43 que es troba en un servidor que també està blau. Culpa de git. CrowdStrike, seixanta-cinc per cent: l'RCA enumera sis conclusions, i la conclusió sis és una frase completa: les instàncies de plantilla haurien d'haver tingut un desplegament per etapes. El disseny en mode nucli, vint-i-cinc: CrowdStrike diu que Windows no pot encara allotjar seguretat fora del nucli, Microsoft diu que no és un incident de Microsoft, i a l'error de pàgina no li importa.
2:05 El divendres, deu. El missatge del "commit" diu que no és codi. Radi d'explosió: vuit milions i mig de dispositius, menys de l'un per cent de Windows. Delta cancel·la set mil vols i demanda per cinc-cents milions, Microsoft inclòs. Les asseguradores estimen la factura del Fortune 500 prop dels cinc mil milions. Hacker News: quaranta-cinc-cents punts. La ironia: una actualització destinada a detectar noves tècniques d'atac en va lliurar una. Veredicte, autòpsia: SHIP IT, per poc.
2:27 Comprovació de límits en sis dies, anells escalonats, control del client sobre les actualitzacions de contingut, dues revisions externes. Per poc, perquè tot això ja era una pràctica estàndard. Dilluns: qualsevol cosa que el vostre agent tregui del núvol obté un anell canari. La configuració és codi en el moment en què alguna cosa la processa on no pot llançar una excepció. Envieu-me l'incident del qual encara no podeu parlar, als comentaris, o a the daily diff dot dev. I aquesta és la diferència d'avui.
2:48 Sóc Niko d'Axrisi. Fusiona responsablement.
Fonts
- 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



