Un câmp în plus a "crăpat" 8,5 milioane de PC-uri. 78 de minute.
19 iulie 2024, 04:09 UTC: CrowdStrike trimite fișierul de canal 291 — o actualizare de conținut cu răspuns rapid — către fiecare senzor Windows Falcon online.
19 iulie 2024, 04:09 UTC: CrowdStrike trimite fișierul de canal 291 — o actualizare de conținut cu răspuns rapid — către fiecare senzor Windows Falcon online. Șablonul pe care îl alimentează a fost declarat cu 21 de câmpuri de intrare în februarie; codul care furnizează intrările construiește un array de 20. Timp de patru luni, nimic nu citește câmpul 21, deoarece fiecare regulă îl lasă ca un "wildcard". Această actualizare pune un model real acolo. Validatorul de conținut din cloud numără 21 în raport cu declarația și îl validează; interpretul de conținut al senzorului, fără verificare a limitelor, citește slotul 21 în modul kernel și Windows generează erori de pagină: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Driverul se încarcă devreme în timpul pornirii în mod intenționat, citește același fișier, se "blochează" din nou — "boot loop". Revocat la 05:27 UTC, 78 de minute mai târziu, dar 8,5 milioane de mașini (numărul Microsoft, sub 1% din Windows) au deja fișierul, iar remedierea este o persoană la fiecare tastatură: Mod de siguranță, șterge C-00000291*.sys, cheia de recuperare BitLocker. Linii aeriene, spitale, bănci și centre 911 se opresc; Delta anulează aproximativ 7.000 de zboruri și cere cel puțin 500 de milioane de dolari de la CrowdStrike și Microsoft; Parametrix estimează factura Fortune 500 la aproximativ 5,4 miliarde de dolari. Postmortem din analiza cauzelor principale a CrowdStrike, revizuirea preliminară post-incident, blogul Microsoft, 8-K al Delta și mărturia Camerei. Git blame: 65 CrowdStrike / 25 designul modului kernel / 10 ziua de vineri. Verdict privind remedierea: SHIP IT, la limită.
Citiți ediția scrisă (engleză) ↗
Ce acoperă acest videoclip
- 28 feb – 24 apr 2024: senzorul 7.11 livrează Tipul de șablon IPC (21 de câmpuri declarate, 20 furnizate); testul de stres trece pe 5 mar; patru instanțe funcționează deoarece câmpul 21 este un "wildcard"
- 19 iul, 04:09 UTC: două noi instanțe de șablon; eroarea logică a Validatorului de conținut o permite pe cea non-"wildcard" să treacă; citire în afara limitelor în kernel; 05:27 UTC, revocată
- 19–29 iul: remediere manuală (Mod de siguranță, ștergerea fișierului, cheia BitLocker); ~97% dintre senzori revin până pe 24 iul, ~99% până pe 29 iul
- 25 iul – 19 aug: verificare a limitelor în timpul execuției, validare a numărului de câmpuri în timpul compilării, verificări ale Validatorului, inele de "canary" + implementare, controlul clientului asupra Conținutului de Răspuns Rapid, două revizuiri independente; RCA completă cu "crash dump" pe 6 aug
Transcrierea tradusă
Tradus din narațiunea originală în engleză. Audio-ul și subtitrările disponibile sunt controlate de YouTube.
0:00 O actualizare de securitate poartă douăzeci și unu de câmpuri într-un driver construit pentru douăzeci, și opt milioane și jumătate de mașini Windows afișează ecranul albastru înainte de micul dejun. 19 iulie 2024, 04:09 UTC. CrowdStrike trimite fișierul de canal 291 către fiecare senzor Falcon. Șaptezeci și opt de minute mai târziu îl retrag; până atunci liniile aeriene, spitalele și băncile se uită la același dreptunghi albastru. Prima postare a CEO-ului spune că nu este un atac cibernetic, adevărat, și nu acesta este punctul. Cum se întâmplă, de ce este posibil și cine este de vină.
0:27 Acesta este The Daily Diff, postmortem. 28 februarie. Senzorul 7.11 livrează un nou detector pentru "named pipes". Acesta declară douăzeci și unu de câmpuri de intrare; codul care îl alimentează construiește un array de douăzeci. Nimeni nu observă: timp de patru luni, fiecare regulă lasă câmpul douăzeci și unu ca un "wildcard", și nimeni nu citește un "wildcard". Un test de stres trece, patru reguli sunt implementate, totul bine. 19 iulie, 04:09. Două reguli noi; una pune un model real în câmpul douăzeci și unu.
0:51 Validatorul cloud numără douăzeci și unu față de declarație și spune că este în regulă. Fiecare gazdă Windows online îl descarcă imediat, deoarece nu există un inel de "canary". Senzorul citește slotul douăzeci și unu, care nu este memoria sa, și kernelul face ceea ce fac kernelurile. 05:27, revocată. Prea târziu pentru oricine a repornit: driverul se încarcă devreme în timpul pornirii, citește același fișier și se "blochează" din nou. Buclă de pornire. De ce este posibil acest lucru? Regulile sunt configurație împinsă din cloud, așa că nu codul sare peste "pipeline-ul" de cod.
1:16 Interpretul nu are verificare a limitelor; are încredere în validator, și validatorul are încredere în declarație. Și totul rulează în modul kernel, unde un pointer greșit nu este o excepție, ci o eroare de pagină despre care Windows spune că nu poate fi protejată prin "try-except". Patrick Wardle o citește dintr-un "crash dump" în acea după-amiază: index zero x paisprezece, slot douăzeci și unu. Remedierea este manuală. Mod de siguranță, șterge C-00000291, repornește. Cu BitLocker, mai întâi tastați o cheie de
1:43 recuperare de patruzeci și opt de cifre care se află pe un server care este, de asemenea, albastru. git blame. CrowdStrike, șaizeci și cinci la sută: RCA listează șase constatări, și constatările șase este o propoziție completă: Instanțele de șablon ar trebui să aibă implementare eșalonată. Designul modului kernel, douăzeci și cinci: CrowdStrike spune că Windows nu poate încă să găzduiască securitatea în afara kernelului, Microsoft spune că nu este un incident Microsoft, și eroarea de pagină nu îi pasă.
2:05 Vinerea, zece. Mesajul de "commit" spune că nu este cod. Raza de impact: opt milioane și jumătate de dispozitive, sub un procent din Windows. Delta anulează șapte mii de zboruri și dă în judecată pentru cinci sute de milioane, inclusiv Microsoft. Asigurătorii estimează factura Fortune 500 la aproape cinci miliarde. Hacker News: patru mii cinci sute de puncte. Ironia: o actualizare menită să detecteze noi tehnici de atac a livrat una. Verdict, postmortem: SHIP IT, la limită.
2:27 Verificare a limitelor în șase zile, inele eșalonate, controlul clientului asupra actualizărilor de conținut, două revizuiri externe. La limită, deoarece toate acestea erau deja practici standard. Luni: orice agentul tău trage din cloud primește un inel "canary". Configurația este cod în momentul în care ceva o "parsează" acolo unde nu poate arunca o eroare. Trimite-mi incidentul despre care încă nu ai voie să vorbești, în comentarii sau la daily diff dot dev. Și asta este "diff"-ul pentru astăzi.
2:48 Sunt Niko de la Axrisi. Fuzionați responsabil.
Surse
- 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



