Vienas papildomas laukas sugadino 8,5 milijono kompiuterių. 78 minutės.
2024 m.
2024 m. liepos 19 d., 04:09 UTC: „CrowdStrike“ išsiunčia „Channel File 291“ – „Rapid Response Content“ atnaujinimą – kiekvienam prisijungusiam „Windows Falcon“ jutikliui. Šablone, kurį jis maitina, vasarį buvo deklaruotas 21 įvesties laukas; kodas, kuris tiekia įvestis, sukuria 20 elementų masyvą. Keturis mėnesius niekas neskaito 21-ojo lauko, nes kiekviena taisyklę palieka jį kaip pakaitos simbolį. Šis atnaujinimas įterpia tikrą šabloną. Debesies pusės „Content Validator“ skaičiuoja 21 pagal deklaraciją ir praleidžia jį; jutiklio „Content Interpreter“, be ribų patikrinimo, skaito 21-ąją vietą branduolio režimu ir „Windows“ puslapio klaidas: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Tvarkyklė tyčia įkeliama anksti paleidimo metu, nuskaito tą patį failą, vėl sugenda – paleidimo ciklas. Atšaukta 05:27 UTC, po 78 minučių, tačiau 8,5 milijono mašinų („Microsoft“ skaičiavimu, mažiau nei 1 % „Windows“) jau turi failą, o taisymas yra žmogaus darbas prie kiekvienos klaviatūros: saugusis režimas, ištrinti C-00000291*.sys, „BitLocker“ atkūrimo raktas. Oro linijos, ligoninės, bankai ir 911 centrai sustoja; „Delta“ atšaukia apie 7 000 skrydžių ir reikalauja bent 500 milijonų dolerių iš „CrowdStrike“ ir „Microsoft“; „Parametrix“ apskaičiuoja, kad „Fortune 500“ sąskaita siekia beveik 5,4 milijardo dolerių. Pomirtinė analizė iš „CrowdStrike“ pačios „Root Cause Analysis“, „Preliminary Post Incident Review“, „Microsoft“ tinklaraščio, „Delta“ 8-K ir Atstovų Rūmų parodymų. Git kaltė: 65 „CrowdStrike“ / 25 branduolio režimo dizainas / 10 penktadienis. Išvada dėl pataisos: SHIP IT, vos.
Skaityti rašytinę versiją (anglų k.) ↗
Kas aptariama šiame vaizdo įraše
- 2024 m. vasario 28 d. – balandžio 24 d.: jutiklis 7.11 pristato IPC šablono tipą (deklaruoti 21 laukai, pateikti 20); streso testas išlaikytas kovo 5 d.; keturi atvejai veikia, nes 21-as laukas yra pakaitos simbolis
- Liepos 19 d., 04:09 UTC: dvi naujos šablono instancijos; „Content Validator“ logikos klaida praleidžia nepakaitos simbolio instanciją; už ribų esantis skaitymas branduolyje; 05:27 UTC atšaukta
- Liepos 19–29 d.: rankinis taisymas (saugusis režimas, failo ištrynimas, „BitLocker“ raktas); iki liepos 24 d. atkurta ~97 % jutiklių, iki liepos 29 d. ~99 %
- Liepos 25 d. – rugpjūčio 19 d.: vykdymo laiko ribų patikrinimas, kompiliavimo laiko laukų skaičiaus patvirtinimas, Validatoriaus patikrinimai, kanarėlė + diegimo žiedai, klientų kontrolė „Rapid Response Content“, dvi nepriklausomos apžvalgos; pilna RCA su avarijos išrašu rugpjūčio 6 d.
Išverstas transkriptas
Išversta iš originalo anglų kalbos. Galimas garso ir subtitrų valdymas per YouTube.
0:00 Vienas saugumo atnaujinimas perduoda dvidešimt vieną lauką į tvarkyklę, sukurtą dvidešimčiai, ir aštuoni su puse milijono „Windows“ kompiuterių sugenda prieš pusryčius. 2024 m. liepos 19 d., 04:09 UTC. „CrowdStrike“ išsiunčia „Channel File 291“ kiekvienam „Falcon“ jutikliui. Po septyniasdešimt aštuonių minučių jie jį pašalina; tuo metu oro linijos, ligoninės ir bankai žiūri į tą patį mėlyną stačiakampį. CEO pirmasis pranešimas sako, kad tai ne kibernetinė ataka, tiesa, ir ne esmė. Kaip tai atsitinka, kodėl tai įmanoma ir kas kaltas.
0:27 Tai yra „The Daily Diff“, pomirtinė analizė. Vasario 28 d. Jutiklis 7.11 pristato naują pavadintų vamzdžių detektorių. Jis deklaruoja dvidešimt vieną įvesties lauką; kodas, kuris jį maitina, sukuria dvidešimties elementų masyvą. Niekas nepastebi: keturis mėnesius kiekviena taisyklė palieka dvidešimt pirmo lauko kaip pakaitos simbolį, ir niekas neskaito pakaitos simbolio. Streso testas išlaikytas, keturios taisyklės išsiųstos, viskas gerai. Liepos 19 d., 04:09. Dvi naujos taisyklės; viena įdeda tikrą šabloną į dvidešimt pirmą lauką.
0:51 Debesų validatorius suskaičiuoja dvidešimt vieną pagal deklaraciją ir sako, kad gerai. Kiekvienas prisijungęs „Windows“ hostas atsisiunčia jį iš karto, nes nėra kanarėlės žiedo. Jutiklis nuskaito dvidešimt pirmą vietą, kuri nėra jo atmintis, ir branduolys daro tai, ką daro branduoliai. 05:27, atšaukta. Per vėlu visiems, kas perkrovė: tvarkyklė įkeliama anksti paleidimo metu, nuskaito tą patį failą ir vėl sugenda. Paleidimo ciklas. Kodėl tai įmanoma? Taisyklės yra konfigūracija, stumiama iš debesies, todėl kodas nepraleidžia kodo
1:16 dujotiekio. Interpretuotojas neturi ribų patikrinimo; jis pasitiki validatoriumi, o validatorius pasitiki deklaracija. Ir visa tai veikia branduolio režimu, kur blogas rodyklė nėra išimtis, o puslapio klaida, kuri, pasak „Windows“, negali būti apsaugota „try-except“. Patrick Wardle tą popietę nuskaito tai iš avarijos išrašo: indeksas nulis x keturiolika, dvidešimt pirma vieta. Taisymas yra rankinis. Saugusis režimas, ištrinti C-00000291, perkrauti. Su „BitLocker“, pirmiausia įveskite keturiasdešimt aštuonių skaitmenų
1:43 atkūrimo raktą, kuris yra serveryje, kuris taip pat yra mėlynas. git kaltė. „CrowdStrike“, šešiasdešimt penki procentai: RCA pateikia šešis radinius, ir šeštas radinys yra visas sakinys: Šablono instancijos turėjo būti diegiamos etapais. Branduolio režimo dizainas, dvidešimt penki: „CrowdStrike“ sako, kad „Windows“ negali dar talpinti saugumo už branduolio ribų, „Microsoft“ sako, kad tai ne „Microsoft“ incidentas, ir puslapio klaida nerūpi.
2:05 Penktadienis, dešimt. Įrašo pranešime sakoma, kad ne kodas. Poveikio spindulys: aštuoni su puse milijono įrenginių, mažiau nei vienas procentas „Windows“. „Delta“ atšaukia septynis tūkstančius skrydžių ir paduoda į teismą dėl penkių šimtų milijonų, įskaitant „Microsoft“. Draudikai apskaičiuoja, kad „Fortune 500“ sąskaita siekia beveik penkis milijardus. Hacker News: keturi su puse tūkstančio taškų. Ironija: atnaujinimas, skirtas aptikti naujas atakos technikas, pats jas pristatė. Nuosprendis, pomirtinė analizė: SHIP IT, vos.
2:27 Ribų patikrinimas per šešias dienas, etapiniai žiedai, klientų kontrolė atnaujinant turinį, dvi išorinės apžvalgos. Vos, nes visa tai jau buvo standartinė praktika. Pirmadienis: viskas, ką jūsų agentas ištraukia iš debesies, patenka į kanarėlės žiedą. Konfigūracija yra kodas, kai tik kažkas ją analizuoja ten, kur ji negali mesti. Atsiųskite man incidentą, apie kurį dar negalite kalbėti, komentaruose arba the daily diff dot dev. Ir tai yra šiandienos skirtumas.
2:48 Aš esu Niko iš Axrisi. Sujunkite atsakingai.
Šaltiniai
- 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



