Isang labis na field ang nag-crash ng 8.5 milyong PC. 78 minuto.
Hulyo 19, 2024, 04:09 UTC: Nagtulak ang CrowdStrike ng Channel File 291 — isang Rapid Response Content update — sa bawat Windows Falcon sensor na online.
Hulyo 19, 2024, 04:09 UTC: Nagtulak ang CrowdStrike ng Channel File 291 — isang Rapid Response Content update — sa bawat Windows Falcon sensor na online. Ang template na pinapakain nito ay idineklara na may 21 input fields noong Pebrero; ang code na nagbibigay ng mga input ay bumubuo ng isang array ng 20. Sa loob ng apat na buwan walang nagbabasa ng field 21, dahil bawat panuntunan ay iniiwan ito bilang isang wildcard. Naglagay ang update na ito ng totoong pattern doon. Ang cloud-side Content Validator ay bumibilang ng 21 laban sa deklarasyon at ipinapasa ito; ang Content Interpreter ng sensor, na walang bounds check, ay nagbabasa ng slot 21 sa kernel mode at Windows page-faults: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Ang driver ay naglo-load nang maaga sa boot sa layunin, nagbabasa ng parehong file, nag-crash muli — boot loop. Naibalik noong 05:27 UTC, 78 minuto pagkatapos, ngunit 8.5 milyong makina (bilang ng Microsoft, mas mababa sa 1% ng Windows) ay mayroon na ang file, at ang ayos ay isang tao sa bawat keyboard: Safe Mode, tanggalin ang C-00000291*.sys, BitLocker recovery key. Tumigil ang mga airline, ospital, bangko at 911 center; kinansela ng Delta ang halos 7,000 flight at naghahabol ng hindi bababa sa $500 milyon mula sa CrowdStrike at Microsoft; inilagay ng Parametrix ang bill ng Fortune 500 malapit sa $5.4 bilyon. Postmortem mula sa sariling Root Cause Analysis ng CrowdStrike, ang Preliminary Post Incident Review, blog ng Microsoft, 8-K ng Delta at ang House testimony. Git blame: 65 CrowdStrike / 25 ang disenyo ng kernel-mode / 10 ang Biyernes. Hatol sa ayos: SHIP IT, bahagya.
Basahin ang nakasulat na edisyon (English) ↗
Ang sakop ng video na ito
- Peb 28 – Abr 24, 2024: ipinapadala ng sensor 7.11 ang IPC Template Type (21 field na idineklara, 20 ang ibinigay); ang stress test ay pumasa Mar 5; apat na instance ang gumagana dahil ang field 21 ay isang wildcard
- Hul 19, 04:09 UTC: dalawang bagong Template Instances; pinapayagan ng logic error ng Content Validator ang non-wildcard; out-of-bounds read sa kernel; 05:27 UTC ibinalik
- Hul 19–29: manual na pagwawasto (Safe Mode, tanggalin ang file, BitLocker key); ~97% ng mga sensor ay bumalik sa Hul 24, ~99% sa Hul 29
- Hul 25 – Ago 19: runtime bounds check, compile-time field-count validation, Validator checks, canary + deployment rings, kontrol ng customer sa Rapid Response Content, dalawang independenteng pagsusuri; buong RCA na may crash dump sa Ago 6
Isinaling transcript
Isinalin mula sa orihinal na salaysay sa English. Ang available na audio at mga caption ay kinokontrol ng YouTube.
0:00 Isang security update ang nagdadala ng dalawampu't isang field sa isang driver na binuo para sa dalawampu, at walong milyong Windows machine ang nag-blue-screen bago mag-almusal. Hulyo 19, 2024, 04:09 UTC. Itinulak ng CrowdStrike ang Channel File 291 sa bawat Falcon sensor. Pitumpu't walong minuto pagkatapos ay binawi nila ito; sa panahong iyon, ang mga airline, mga ospital at bangko ay nakatingin sa parehong asul na rektanggulo. Ang unang post ng CEO ay nagsasabing hindi ito cyberattack, totoo, at hindi iyon ang punto. Paano ito nangyari, bakit posible ito, at sino ang sisisihin.
0:27 Ito ang The Daily Diff, postmortem. Pebrero 28. Nagpapadala ang Sensor 7.11 ng bagong detector para sa mga pinangalanang pipe. Nagdeklara ito ng dalawampu't isang input field; ang code na nagpapakain dito ay bumubuo ng isang array ng dalawampu. Walang nakakapansin: sa loob ng apat na buwan ang bawat panuntunan ay iniiwan ang field dalawampu't isa bilang isang wildcard, at walang nagbabasa ng wildcard. Isang stress test ang pumasa, apat na panuntunan ang naipadala, lahat ay maayos. Hulyo 19, 04:09. Dalawang bagong panuntunan; ang isa ay naglalagay ng totoong pattern sa field dalawampu't isa.
0:51 Ang cloud validator ay bumibilang ng dalawampu't isa laban sa deklarasyon at nagsasabing maayos. Ang bawat online na Windows host ay nagda-download nito nang sabay-sabay, dahil walang canary ring. Binabasa ng sensor ang slot dalawampu't isa, na hindi nito memorya, at ginagawa ng kernel ang ginagawa ng mga kernel. 05:27, ibinalik. Huli na para sa sinumang nag-reboot: ang driver ay naglo-load nang maaga sa boot, binabasa ang parehong file, at nag-crash muli. Boot loop. Bakit posible ito? Ang mga panuntunan ay configuration na itinulak mula sa cloud, kaya hindi code ang lumalampas sa code
1:16 pipeline. Walang bounds check ang interpreter; nagtitiwala ito sa validator, at nagtitiwala ang validator sa deklarasyon. At lahat ito ay tumatakbo sa kernel mode, kung saan ang isang masamang pointer ay hindi isang exception kundi isang page fault na sinasabi ng Windows na hindi mapoprotektahan ng try-except. Binasa ito ni Patrick Wardle mula sa isang crash dump nang hapon na iyon: index zero x labing-apat, slot dalawampu't isa. Manual ang ayos. Safe Mode, tanggalin ang C-00000291, reboot. Sa BitLocker, unang i-type ang apatnapu't walong-digit na
1:43 recovery key na nakatira sa isang server na asul din. git blame. CrowdStrike, animnapu't limang porsyento: inilista ng RCA ang anim na natuklasan, at ang natuklasan anim ay isang buong pangungusap: Ang Template Instances ay dapat na may staged deployment. Ang disenyo ng kernel-mode, dalawampu't lima: Sabi ng CrowdStrike hindi kaya ng Windows pa mag-host ng seguridad sa labas ng kernel, sabi ng Microsoft hindi ito insidente ng Microsoft, at walang pakialam ang page fault.
2:05 Ang Biyernes, sampu. Sabi ng commit message hindi code. Blast radius: walong milyong device, mas mababa sa isang porsyento ng Windows. Kinansela ng Delta ang pitong libong flight at nagdemanda ng limang daang milyon, kasama ang Microsoft. Inilagay ng mga insurer ang bill ng Fortune 500 malapit sa limang bilyon. Hacker News: apat na libo't limang daang puntos. Ang kabalintunaan: isang update na inilaan upang makita ang mga bagong teknik ng pag-atake ang naghatid ng isa. Hatol, postmortem: SHIP IT, bahagya.
2:27 Bounds check sa loob ng anim na araw, staged rings, kontrol ng customer sa content updates, dalawang labas na pagsusuri. Bahagya, dahil lahat ng iyon ay karaniwan nang practice. Lunes: anuman ang hilahin ng iyong agent mula sa cloud ay makakakuha ng canary ring. Ang configuration ay code sa sandaling may nag-parse nito kung saan hindi ito maaaring magtapon. Ipadala sa akin ang insidente na hindi mo pa rin pinapayagan na pag-usapan, sa mga komento, o sa the daily diff dot dev. At iyon ang diff para ngayon.
2:48 Ako si Niko mula sa Axrisi. Merge nang responsable.
Mga Pinagmulan
- 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



