Un campo extra "crasheou" 8,5 millóns de PCs. 78 minutos.
19 de xullo de 2024, 04:09 UTC: CrowdStrike envía o ficheiro de canle 291 — unha actualización de contido de "Rapid Response" — a cada sensor de Windows Falcon en liña.
19 de xullo de 2024, 04:09 UTC: CrowdStrike envía o ficheiro de canle 291 — unha actualización de contido de "Rapid Response" — a cada sensor de Windows Falcon en liña. O modelo que alimenta foi declarado con 21 campos de entrada en febreiro; o código que fornece as entradas constrúe un array de 20. Durante catro meses, nada le o campo 21, porque cada regra o deixa como un comodín. Esta actualización pon un patrón real alí. O validador de contido da nube conta 21 contra a declaración e pásao; o intérprete de contido do sensor, sen verificación de límites, le o slot 21 en modo kernel e Windows ten fallos de páxina: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. O controlador carga cedo no arranque a propósito, le o mesmo ficheiro, "crashea" de novo — "boot loop". Revertido ás 05:27 UTC, 78 minutos despois, pero 8,5 millóns de máquinas (reconto de Microsoft, menos do 1% de Windows) xa teñen o ficheiro, e a solución é un humano en cada teclado: Modo seguro, eliminar C-00000291*.sys, chave de recuperación de BitLocker. Aerolíneas, hospitais, bancos e centros de emerxencias paran; Delta cancela uns 7.000 voos e reclama polo menos 500 millóns de dólares a CrowdStrike e Microsoft; Parametrix sitúa a factura da Fortune 500 preto dos 5.400 millóns de dólares. Postmortem da propia Análise de Causa Raíz de CrowdStrike, a Revisión Preliminar Post-Incidente, o blog de Microsoft, o 8-K de Delta e o testemuño da Cámara. Git blame: 65 CrowdStrike / 25 o deseño en modo kernel / 10 o venres. Veredicto sobre a corrección: SHIP IT, por pouco.
Ler a edición escrita (inglés) ↗
Que abrangue este vídeo
- 28 de febreiro – 24 de abril de 2024: o sensor 7.11 envía o Tipo de Modelo IPC (21 campos declarados, 20 fornecidos); a proba de estrés pasa o 5 de marzo; catro instancias funcionan porque o campo 21 é un comodín
- 19 de xullo, 04:09 UTC: dúas novas Instancias de Modelo; o erro lóxico do Validador de Contido permite o paso do non-comodín; lectura fóra de límites no kernel; 05:27 UTC revertido
- 19–29 de xullo: remediación manual (Modo seguro, eliminar o ficheiro, chave de BitLocker); ~97% dos sensores de volta para o 24 de xullo, ~99% para o 29 de xullo
- 25 de xullo – 19 de agosto: verificación de límites en tempo de execución, validación de conta de campos en tempo de compilación, verificacións do validador, aneis de "canary" + despregamento, control do cliente sobre o Contido de Resposta Rápida, dúas revisións independentes; RCA completa con "crash dump" o 6 de agosto
Transcrición traducida
Traducido da narración orixinal en inglés. O audio e os subtítulos dispoñibles son controlados por YouTube.
0:00 Unha actualización de seguridade leva vinte e un campos a un controlador construído para vinte, e oito millóns e medio de máquinas Windows teñen a pantalla azul antes do almorzo. 19 de xullo de 2024, 04:09 UTC. CrowdStrike envía o ficheiro de canle 291 a cada sensor Falcon. Setenta e oito minutos despois retírano; para entón as aerolíneas, hospitais e bancos miran o mesmo rectángulo azul. A primeira publicación do CEO di que non é un ciberataque, certo, e non é o punto. Como ocorre, por que é posible e quen ten a culpa.
0:27 Isto é The Daily Diff, "postmortem". 28 de febreiro. O sensor 7.11 envía un novo detector para "named pipes". Declara vinte e un campos de entrada; o código que o alimenta constrúe un array de vinte. Ninguén se decata: durante catro meses cada regra deixa o campo vinte e un como un comodín, e ninguén le un comodín. Unha proba de estrés pasa, catro regras envíanse, todo ben. 19 de xullo, 04:09. Dúas novas regras; unha pon un patrón real no campo vinte e un.
0:51 O validador na nube conta vinte e un contra a declaración e di que está ben. Cada host de Windows en liña descárgao de inmediato, porque non hai anel "canary". O sensor le o slot vinte e un, que non é a súa memoria, e o kernel fai o que fan os kernels. 05:27, revertido. Demasiado tarde para calquera que reiniciou: o controlador carga cedo no arranque, le o mesmo ficheiro e "crashea" de novo. "Boot loop". Por que é posible isto? As regras son configuracións enviadas desde a nube, polo que non é código que salta a
1:16 liña de "pipeline" do código. O intérprete non ten verificación de límites; confía no validador, e o validador confía na declaración. E todo execútase en modo kernel, onde un punteiro erróneo non é unha excepción senón un fallo de páxina que Windows di que non pode ser protexido por "try-except". Patrick Wardle leuno dun "crash dump" esa tarde: índice cero "x" catorce, slot vinte e un. A solución é manual. Modo seguro, eliminar C-00000291, reiniciar. Con BitLocker, primeiro teclee unha chave de recuperación de
1:43 cuarenta e oito díxitos que vive nun servidor que tamén está azul. git blame. CrowdStrike, sesenta e cinco por cento: a RCA lista seis achados, e o achado seis é unha frase completa: As instancias de modelo deberían ter un despregamento escalonado. O deseño en modo kernel, vinte e cinco: CrowdStrike di que Windows non pode aínda aloxar seguridade fóra do kernel, Microsoft di que non é un incidente de Microsoft, e ao fallo de páxina non lle importa.
2:05 O venres, dez. A mensaxe do commit di que non é código. Radio de explosión: oito millóns e medio de dispositivos, menos do un por cento de Windows. Delta cancela sete mil voos e demanda por cincocentos millóns, Microsoft incluído. As aseguradoras sitúan a factura da Fortune 500 preto dos cinco mil millóns. Hacker News: corenta e cinco mil puntos. A ironía: unha actualización destinada a detectar novas técnicas de ataque entregou unha. Veredicto, "postmortem": SHIP IT, por pouco.
2:27 Verificación de límites en seis días, aneis escalonados, control do cliente sobre as actualizacións de contido, dúas revisións externas. Por pouco, porque todo iso xa era práctica estándar. Luns: calquera cousa que o seu axente "pullee" da nube obtén un anel "canary". A configuración é código no momento en que algo o analiza onde non pode lanzar unha excepción. Envíeme o incidente do que aínda non se lle permite falar, nos comentarios, ou en "the daily diff dot dev". E esa é a diferenza por hoxe.
2:48 Son Niko de Axrisi. Fusione con responsabilidade.
Fontes
- 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



