Ein zusätzliches Feld hat 8,5 Millionen PCs zum Absturz gebracht. 78 Minuten.
19.
19. Juli 2024, 04:09 UTC: CrowdStrike liefert Channel File 291 – ein Rapid Response Content Update – an jeden online verfügbaren Windows Falcon Sensor aus. Die Vorlage, die es füttert, wurde im Februar mit 21 Eingabefeldern deklariert; der Code, der die Eingaben liefert, erstellt ein Array von 20. Vier Monate lang liest nichts Feld 21, weil jede Regel es als Wildcard belässt. Dieses Update fügt dort ein echtes Muster ein. Der serverseitige Content Validator zählt 21 gegen die Deklaration und lässt es passieren; der Content Interpreter des Sensors, ohne Bereichsprüfung, liest Slot 21 im Kernel-Modus und Windows erzeugt einen Seitenfehler: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Der Treiber wird absichtlich früh beim Booten geladen, liest dieselbe Datei, stürzt erneut ab – Boot-Schleife. Um 05:27 UTC, 78 Minuten später, rückgängig gemacht, aber 8,5 Millionen Maschinen (Microsofts Zählung, unter 1 % aller Windows-Systeme) haben die Datei bereits, und die Lösung ist ein Mensch an jeder Tastatur: Abgesicherter Modus, C-00000291*.sys löschen, BitLocker-Wiederherstellungsschlüssel. Fluggesellschaften, Krankenhäuser, Banken und Notrufzentralen stellen den Betrieb ein; Delta streicht etwa 7.000 Flüge und fordert mindestens 500 Millionen Dollar von CrowdStrike und Microsoft; Parametrix schätzt die Kosten für die Fortune 500 auf fast 5,4 Milliarden Dollar. Postmortem-Analyse von CrowdStrike's eigener Root Cause Analysis, dem Preliminary Post Incident Review, Microsofts Blog, Deltas 8-K-Bericht und der Aussage vor dem Repräsentantenhaus. Git blame: 65 CrowdStrike / 25 das Kernel-Modus-Design / 10 der Freitag. Urteil zur Behebung: SHIP IT, knapp.
Die schriftliche Ausgabe lesen (Englisch) ↗
Was dieses Video behandelt
- 28. Feb. – 24. Apr. 2024: Sensor 7.11 liefert den IPC-Vorlagentyp (21 Felder deklariert, 20 bereitgestellt); Stresstest besteht am 5. März; vier Instanzen funktionieren, weil Feld 21 ein Wildcard ist
- 19. Juli, 04:09 UTC: zwei neue Vorlageninstanzen; der Logikfehler des Content Validators lässt die Nicht-Wildcard-Instanz passieren; Out-of-Bounds-Lesen im Kernel; 05:27 UTC rückgängig gemacht
- 19.–29. Juli: manuelle Behebung (Abgesicherter Modus, Datei löschen, BitLocker-Schlüssel); ~97 % der Sensoren bis 24. Juli wieder online, ~99 % bis 29. Juli
- 25. Juli – 19. Aug.: Laufzeit-Grenzwertprüfung, Kompilierungszeit-Feldzählungsvalidierung, Validator-Prüfungen, Canary + Deployment Rings, Kundenkontrolle über Rapid Response Content, zwei unabhängige Überprüfungen; vollständige RCA mit Crash Dump am 6. Aug.
Übersetztes Transkript
Aus der englischen Originalerzählung übersetzt. Verfügbare Audio- und Untertitel werden von YouTube gesteuert.
0:00 Ein Sicherheitsupdate bringt einundzwanzig Felder in einen Treiber, der für zwanzig gebaut wurde, und achteinhalb Millionen Windows-Maschinen zeigen einen Bluescreen vor dem Frühstück. 19. Juli 2024, 04:09 UTC. CrowdStrike liefert Channel File 291 an jeden Falcon Sensor aus. Siebenundsiebzig Minuten später ziehen sie es zurück; bis dahin starren Fluggesellschaften, Krankenhäuser und Banken auf das gleiche blaue Rechteck. Der erste Beitrag des CEOs besagt, dass es kein Cyberangriff war, das stimmt, und darum geht es nicht. Wie es passiert, warum es möglich ist und wer die Schuld trägt.
0:27 Dies ist The Daily Diff, Postmortem. 28. Februar. Sensor 7.11 liefert einen neuen Detektor für benannte Pipes. Er deklariert einundzwanzig Eingabefelder; der Code, der ihn füttert, erstellt ein Array von zwanzig. Niemand bemerkt es: vier Monate lang belässt jede Regel Feld einundzwanzig als Wildcard, und niemand liest eine Wildcard. Ein Stresstest besteht, vier Regeln werden ausgeliefert, alles in Ordnung. 19. Juli, 04:09. Zwei neue Regeln; eine setzt ein echtes Muster in Feld einundzwanzig.
0:51 Der Cloud-Validator zählt einundzwanzig gegen die Deklaration und sagt in Ordnung. Jeder online verfügbare Windows-Host lädt es sofort herunter, weil es keinen Canary Ring gibt. Der Sensor liest Slot einundzwanzig, der nicht sein Speicher ist, und der Kernel tut, was Kernel tun. 05:27, rückgängig gemacht. Zu spät für jeden, der neu gestartet hat: Der Treiber lädt früh beim Start, liest dieselbe Datei und stürzt erneut ab. Boot-Schleife. Warum ist das möglich? Die Regeln sind eine Konfiguration, die aus der Cloud gepusht wird, so dass kein Code die Code-
1:16 Pipeline umgeht. Der Interpreter hat keine Bereichsprüfung; er vertraut dem Validator, und der Validator vertraut der Deklaration. Und alles läuft im Kernel-Modus, wo ein schlechter Zeiger keine Ausnahme, sondern ein Seitenfehler ist, der laut Windows nicht durch Try-Except geschützt werden kann. Patrick Wardle liest es an diesem Nachmittag aus einem Crash-Dump ab: Index Null x vierzehn, Slot einundzwanzig. Die Behebung ist manuell. Abgesicherter Modus, C-00000291 löschen, Neustart. Mit BitLocker zuerst einen achtundvierzigstelligen
1:43 Wiederherstellungsschlüssel eingeben, der auf einem Server lebt, der ebenfalls blau ist. Git blame. CrowdStrike, fünfundsechzig Prozent: Die RCA listet sechs Feststellungen auf, und Feststellung sechs ist ein vollständiger Satz: Vorlageninstanzen sollten eine gestaffelte Bereitstellung haben. Das Kernel-Modus-Design, fünfundzwanzig: CrowdStrike sagt, Windows kann Sicherheit noch nicht außerhalb des Kernels hosten, Microsoft sagt, kein Microsoft-Vorfall, und der Seitenfehler kümmert sich nicht.
2:05 Der Freitag, zehn. Die Commit-Nachricht sagt, kein Code. Explosionsradius: achteinhalb Millionen Geräte, unter einem Prozent von Windows. Delta streicht siebentausend Flüge und verklagt auf fünfhundert Millionen, Microsoft eingeschlossen. Versicherer schätzen die Rechnung der Fortune 500 auf fast fünf Milliarden. Hacker News: fünfundvierzigtausend Punkte. Die Ironie: Ein Update, das neuartige Angriffstechniken erkennen sollte, lieferte selbst eine. Urteil, Postmortem: SHIP IT, knapp.
2:27 Grenzwertprüfung in sechs Tagen, gestaffelte Ringe, Kundenkontrolle über Inhaltsaktualisierungen, zwei externe Überprüfungen. Knapp, weil all das bereits Standardpraxis war. Montag: Was auch immer Ihr Agent aus der Cloud zieht, erhält einen Canary Ring. Konfiguration ist Code in dem Moment, in dem etwas es dort parst, wo es keine Ausnahme werfen kann. Schicken Sie mir den Vorfall, über den Sie immer noch nicht sprechen dürfen, in den Kommentaren oder unter the daily diff dot dev. Und das ist der Diff für heute.
2:48 Ich bin Niko von Axrisi. Verantwortungsbewusst zusammenführen.
Quellen
- 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



