+− THE DAILY DIFFdev & AI news
SHIP IT

Ét ekstra felt fik 8,5 millioner pc'er til at crashe. 78 minutter.

19.

19. juli 2024, 04:09 UTC: CrowdStrike sender Kanalfildato 291 — en Rapid Response Content-opdatering — til hver Windows Falcon-sensor online. Skabelonen, den føder, blev erklæret med 21 inputfelter i februar; koden, der leverer input, bygger en række af 20. I fire måneder læser intet felt 21, fordi hver regel lader det stå som et jokertegn. Denne opdatering indsætter et reelt mønster der. Cloud-sidens Content Validator tæller 21 mod erklæringen og passerer den; sensorens Content Interpreter, uden grænsekontrol, læser slot 21 i kernel-tilstand og Windows page-fejl: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Driveren indlæses tidligt under opstart med vilje, læser den samme fil, går ned igen — boot-loop. Gendannet kl. 05:27 UTC, 78 minutter senere, men 8,5 millioner maskiner (Microsofts tælling, under 1% af Windows) har allerede filen, og rettelsen er et menneske ved hvert tastatur: Fejlsikker tilstand, slet C-00000291*.sys, BitLocker-gendannelsesnøgle. Flyselskaber, hospitaler, banker og alarmcentraler stopper; Delta aflyser omkring 7.000 flyvninger og kræver mindst 500 millioner dollars fra CrowdStrike og Microsoft; Parametrix anslår regningen for Fortune 500 til nær 5,4 milliarder dollars. Postmortem fra CrowdStrikes egen Rodårsagsanalyse, den foreløbige gennemgang efter hændelsen, Microsofts blog, Deltas 8-K og husets vidneudsagn. Git blame: 65 CrowdStrike / 25 kernel-tilstandens design / 10 fredagen. Dom over rettelsen: SHIP IT, snævert.

Læs den skriftlige udgave (engelsk) ↗

Hvad denne video dækker

  • 28. februar – 24. april 2024: sensor 7.11 sender IPC Template Type (21 felter erklæret, 20 leveret); stresstest passerer 5. marts; fire instanser virker, fordi felt 21 er et jokertegn
  • 19. juli, 04:09 UTC: to nye Skabeloninstanser; Content Validators logiske fejl lader den ikke-jokertegnede passere; out-of-bounds læsning i kernen; 05:27 UTC gendannet
  • 19.-29. juli: manuel udbedring (Fejlsikker tilstand, slet filen, BitLocker-nøgle); ~97% af sensorer tilbage inden 24. juli, ~99% inden 29. juli
  • 25. juli – 19. august: grænsekontrol under kørsel, validering af feltantal ved kompilering, Validator-kontrol, kanarie + udrulningsringe, kundekontrol over Rapid Response Content, to uafhængige anmeldelser; fuld RCA med crash dump den 6. august

Oversat udskrift

Oversat fra den originale engelske fortælling. Tilgængelig lyd og undertekster styres af YouTube.

0:00 En sikkerhedsopdatering overfører enogtyve felter til en driver bygget til tyve, og otte en halv million Windows-maskiner får en blå skærm inden morgenmaden. 19. juli 2024, 04:09 UTC. CrowdStrike sender kanaldato 291 til hver Falcon-sensor. Syvoghalvfjerds minutter senere trækker de den tilbage; da er flyselskaber, hospitaler og banker stirrer på den samme blå rektangel. CEO'ens første indlæg siger, ikke et cyberangreb, sandt, og ikke pointen. Hvordan det sker, hvorfor det er muligt, og hvem der får skylden.

0:27 Dette er The Daily Diff, postmortem. 28. februar. Sensor 7.11 leverer en ny detektor for navngivne pipes. Den erklærer enogtyve inputfelter; koden, der føder den, bygger en array af tyve. Ingen bemærker: i fire måneder lader hver regel felt enogtyve være et jokertegn, og ingen læser et jokertegn. En stresstest passerer, fire regler leveres, alt fint. 19. juli, 04:09. To nye regler; den ene indsætter et reelt mønster i felt enogtyve.

0:51 Cloud-validatoren tæller enogtyve mod erklæringen og siger fint. Hver online Windows-vært downloader den med det samme, fordi der ikke er en kanarie-ring. Sensoren læser slot enogtyve, hvilket ikke er dens hukommelse, og kernen gør, hvad kerner gør. 05:27, gendannet. For sent for enhver, der genstartede: driveren indlæses tidligt under opstart, læser den samme fil og går ned igen. Boot-loop. Hvorfor er dette muligt? Reglerne er konfiguration, der skubbes fra skyen, så ingen kode springer kode-

1:16 pipelinen over. Fortolkeren har ingen grænsekontrol; den stoler på validatoren, og validatoren stoler på erklæringen. Og det hele kører i kernel-tilstand, hvor en dårlig pointer ikke er en undtagelse, men en page-fejl, som Windows siger ikke kan beskyttes af try-except. Patrick Wardle læser det fra en crash dump den eftermiddag: indeks nul x fjorten, slot enogtyve. Rettelsen er manuel. Fejlsikker tilstand, slet C-00000291, genstart. Med BitLocker skal du først taste en otteogfyrre-cifret

1:43 gendannelsesnøgle, der findes på en server, som også er blå. git blame. CrowdStrike, femogtres procent: RCA'en lister seks fund, og fund seks er en hel sætning: Skabeloninstanser skulle have trinvis udrulning. Kernel-tilstandens design, femogtyve: CrowdStrike siger, at Windows ikke endnu kan hoste sikkerhed uden for kernen, Microsoft siger ikke en Microsoft-hændelse, og page-fejlen er ligeglad.

2:05 Fredagen, ti. Commit-beskeden siger ikke kode. Blast radius: otte en halv million enheder, under én procent af Windows. Delta aflyser syv tusind flyvninger og sagsøger for fem hundrede millioner, Microsoft inkluderet. Forsikringsselskaber anslår Fortune 500-regningen til nær fem milliarder. Hacker News: femogfyrre hundrede point. Ironien: en opdatering, der skulle opdage nye angrebsteknikker, leverede en. Dom, postmortem: SHIP IT, snævert.

2:27 Grænsekontrol om seks dage, trinvise ringe, kundekontrol over indholdsopdateringer, to eksterne anmeldelser. Snævert, fordi alt dette allerede var standardpraksis. Mandag: hvad end din agent trækker fra skyen, får en kanarie-ring. Konfiguration er kode i det øjeblik, noget parser det, hvor det ikke kan kaste en undtagelse. Send mig den hændelse, du stadig ikke har lov til at tale om, i kommentarerne, eller på the daily diff dot dev. Og det er diff'en for i dag.

2:48 Jeg er Niko fra Axrisi. Flet ansvarligt.

Kilder

  1. CrowdStrike, Root Cause Analysis — Channel File 291 (Aug 6, 2024, 12 pp.)www.crowdstrike.com
  2. CrowdStrike, Executive Summary of the RCA (Aug 6, 2024)www.crowdstrike.com
  3. CrowdStrike, Preliminary Post Incident Review (Jul 24, 2024)www.crowdstrike.com
  4. CrowdStrike, Remediation and Guidance Hub — Channel File 291 (the workaround steps)www.crowdstrike.com
  5. CrowdStrike, tech alert of Jul 19, 2024 (archived: Safe Mode → delete C-00000291*.sys → BitLocker key)web.archive.org
  6. Microsoft, David Weston, "Helping our customers through the CrowdStrike outage" (Jul 20, 2024; the 8.5 million figure)blogs.microsoft.com
  7. Delta Air Lines, Form 8-K (Aug 8, 2024; ~7,000 cancellations, at least $500 million)www.sec.gov
  8. Adam Meyers (CrowdStrike SVP), written testimony, House Homeland Security Subcommittee (Sep 24, 2024)homeland.house.gov
  9. George Kurtz on X, Jul 19, 2024, 09:45 UTCx.com
  10. Patrick Wardle on X, Jul 19, 2024 (the crash-dump index 0x14)x.com
  11. Hacker News, Jul 19, 2024 — "CrowdStrike Update: Windows Bluescreen and Boot Loops" (4,489 points)news.ycombinator.com
  12. The Guardian, Jul 24, 2024 — "CrowdStrike global outage to cost US Fortune 500 companies $5.4bn" (Parametrix estimate)www.theguardian.com
  13. Hacker News, Jul 21, 2024 — "Initial details about why CrowdStrike's CSAgent.sys crashed" (519 points)news.ycombinator.com
  14. Wikipedia — 2024 CrowdStrike-related IT outagesen.wikipedia.org

Relaterede videoer