Нэг нэмэлт талбар 8.5 сая компьютерийг "унагаажээ". 78 минут.
2024 оны 7-р сарын 19, 04:09 UTC: CrowdStrike нь Channel File 291 буюу Rapid Response Content шинэчлэлтийг онлайнаар холбогдсон бүх Windows Falcon мэдрэгч рүү илгээв.
2024 оны 7-р сарын 19, 04:09 UTC: CrowdStrike нь Channel File 291 буюу Rapid Response Content шинэчлэлтийг онлайнаар холбогдсон бүх Windows Falcon мэдрэгч рүү илгээв. Үүнд тэжээгдсэн загварыг 2-р сард 21 оролтын талбартайгаар зарласан; оролтыг нийлүүлдэг код нь 20 элементийн массив үүсгэдэг. Дөрвөн сарын турш юу ч 21-р талбарыг уншаагүй, учир нь дүрэм болгон үүнийг вайлдкард болгож орхисон. Энэхүү шинэчлэлт нь бодит загварыг тэнд оруулсан. Үүлэн талын Агуулгын Валидатор нь зарласан 21-ийг тоолж, зөвшөөрсөн; мэдрэгчийн Агуулгын Интерпретер нь хязгаарыг шалгахгүйгээр 21-р слотыг кернел горимд уншиж, Windows-ийн хуудас алдаа (page-faults): PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys-ээр алдаа заасан. Драйвер нь зориудаар ачаалах үед эрт ачаалагдаж, мөн файлыг уншиж, дахин "унадаг" – ачаалах давталт үүсгэсэн. 05:27 UTC буюу 78 минутын дараа буцаагдсан боловч 8.5 сая машин (Microsoft-ийн тоогоор, Windows-ийн 1%-иас бага) аль хэдийн файлыг авсан байсан бөгөөд засвар нь гар аргаар хийгдэх ёстой байв: Аюулгүй горимд оруулах, C-00000291*.sys-ийг устгах, BitLocker сэргээх түлхүүр ашиглах. Агаарын тээвэр, эмнэлэг, банкууд болон 911-ийн төвүүд зогссон; Delta ойролцоогоор 7,000 нислэгийг цуцалж, CrowdStrike болон Microsoft-оос наад зах нь 500 сая долларын нөхөн төлбөр шаардсан; Parametrix Fortune 500-ийн хохирлыг 5.4 тэрбум долларт дөхөж байна гэж тооцоолсон. Postmortem нь CrowdStrike-ийн Root Cause Analysis, Preliminary Post Incident Review, Microsoft-ийн блог, Delta-ийн 8-K болон Конгрессын гэрчлэлээс авсан. Git blame: 65 CrowdStrike / 25 кернел горимын дизайн / 10 Баасан гараг. Засварын талаарх шийдвэр: SHIP IT, арай гэж.
Бичмэл хувилбарыг унших (Англи) ↗
Энэ видео юуг хамардаг
- 2024 оны 2-р сарын 28 – 4-р сарын 24: мэдрэгч 7.11 нь IPC Template Type-ийг (21 талбарыг зарласан, 20-ийг нийлүүлсэн) гаргасан; стресс тест 3-р сарын 5-нд амжилттай болсон; 21-р талбар нь вайлдкард байсан тул дөрвөн жишээ ажилласан.
- 7-р сарын 19, 04:09 UTC: хоёр шинэ Template Instance; Content Validator-ийн логикийн алдаа нь вайлдкард биш нэгийг нь нэвтрүүлсэн; кернелд хязгаараас хэтэрсэн уншилт; 05:27 UTC-д буцаагдсан.
- 7-р сарын 19–29: гар аргаар засварлах (Аюулгүй горим, файлыг устгах, BitLocker түлхүүр); 7-р сарын 24-нд мэдрэгчүүдийн ~97%, 7-р сарын 29-нд ~99% нь хэвийн болсон.
- 7-р сарын 25 – 8-р сарын 19: ажиллуулах үеийн хязгаарыг шалгах, эмхэтгэх үеийн талбарын тоог баталгаажуулах, Валидаторын шалгалт, канарын + байршуулах давтамж, Rapid Response Content-ийг хэрэглэгчийн хяналт, хоёр бие даасан хяналт; 8-р сарын 6-нд "унасан" дампуудыг ашигласан бүрэн RCA.
Орчуулсан бичлэг
Англи хэл дээрх эх хувилбараас орчуулсан. Боломжтой дуу болон хадмал орчуулгыг YouTube хянадаг.
0:00 Нэг аюулгүй байдлын шинэчлэлт хорин нэгэн талбарыг хорин талбарт зориулсан драйверт дамжуулдаг, мөн найман хагас сая Windows машин өглөөний цайнаас өмнө "цэнхэр дэлгэц" заажээ. 2024 оны 7-р сарын 19, 04:09 UTC. CrowdStrike нь Channel File 291-ийг бүх Falcon мэдрэгч рүү түлхэв. Далан найман минутын дараа тэд үүнийг буцаажээ; тэр үед агаарын тээвэр, эмнэлэг, банкууд ижилхэн цэнхэр дөрвөлжинг ширтэж байлаа. Гүйцэтгэх захирлын анхны пост нь кибер халдлага биш гэсэн нь үнэн, бас гол асуудал биш. Энэ хэрхэн болсон, яагаад боломжтой болсон, хэн буруутай вэ.
0:27 Энэ бол The Daily Diff, postmortem. Хоёрдугаар сарын 28. Мэдрэгч 7.11 нэрлэгдсэн хоолойн шинэ илрүүлэгчийг гаргасан. Энэ нь хорин нэгэн оролтын талбарыг зарладаг; үүнийг тэжээдэг код нь хорин элементийн массив үүсгэдэг. Хэн ч анзаараагүй: дөрвөн сарын турш дүрэм болгон хорин нэгэн талбарыг вайлдкард болгож орхисон, хэн ч вайлдкардыг уншдаггүй. Стресс тест амжилттай болж, дөрвөн дүрэм гарч, бүх зүйл хэвийн байсан. 7-р сарын 19, 04:09. Хоёр шинэ дүрэм; нэг нь бодит загварыг хорин нэгэн талбарт оруулсан.
0:51 Үүлэн валидатор нь зарласан 21-ийг тоолж, зөв гэсэн. Бүх онлайн Windows хост үүнийг нэг дор татаж авсан, учир нь канарын цагираг байгаагүй. Мэдрэгч хорин нэгэн слотыг уншсан, энэ нь түүний санах ой биш, мөн кернел кернелийн хийдгийг хийсэн. 05:27, буцаагдсан. Дахин ачаалсан хүмүүст хэтэрхий оройтсон: драйвер нь ачаалах үед эрт ачаалагдаж, ижил файлыг уншиж, дахин "унажээ". Ачаалах давталт. Энэ яагаад боломжтой вэ? Дүрмүүд нь үүлнээс түлхэгдсэн тохиргоо тул код нь кодын шугамыг алгасахгүй.
1:16 Интерпретерт хязгаарыг шалгах зүйл байхгүй; энэ нь валидаторт итгэдэг, мөн валидатор зарлагдсанд итгэдэг. Мөн энэ бүхэн кернел горимд ажилладаг, энд буруу заагч нь үл хамаарах зүйл биш харин Windows-ийн хуудас алдаа (page fault) бөгөөд үүнийг try-except-ээр хамгаалах боломжгүй гэсэн. Патрик Вардл тэр үдээс хойш "унасан" дампуудаас уншсан: индекс тэг икс арван дөрөв, хорин нэгэн слот. Засвар нь гар аргаар хийгддэг. Аюулгүй горим, C-00000291-ийг устгах, дахин ачаалах. BitLocker-ийн хувьд эхлээд дөчин найман оронтой
1:43 сэргээх түлхүүрийг бичнэ, энэ нь бас "цэнхэр" сервер дээр байрладаг. git blame. CrowdStrike, жаран таван хувь: RCA нь зургаан дүгнэлтийг жагсаасан, мөн зургаа дахь дүгнэлт нь бүрэн өгүүлбэр: Template Instance-ууд нь үе шаттайгаар байршуулалттай байх ёстой. Кернел горимын дизайн, хорин тав: CrowdStrike нь Windows-ийг кернелийн гадна аюулгүй байдлыг хангах боломжгүй гэж хэлсэн, Microsoft нь Microsoft-ийн асуудал биш гэсэн, мөн хуудас алдаа (page fault) хамаагүй.
2:05 Баасан гараг, арван. Коммит мессеж нь код биш гэсэн. Халдлагын цар хүрээ: найман хагас сая төхөөрөмж, Windows-ийн нэг хувиас бага. Delta долоон мянган нислэгийг цуцалж, таван зуун саяын нэхэмжлэл гаргасан, үүнд Microsoft багтсан. Даатгалын компаниуд Fortune 500-ийн хохирлыг таван тэрбумд дөхөж байна гэсэн. Hacker News: дөчин таван зуун оноо. Эгзэгтэй байдал: шинэ халдлагын аргуудыг илрүүлэх зорилготой шинэчлэлт өөрөө нэгийг нь үүсгэсэн. Шийдвэр, postmortem: SHIP IT, арай гэж.
2:27 Зургаан өдрийн дотор хязгаарыг шалгах, үе шаттай давтамж, агуулгын шинэчлэлтийг хэрэглэгчийн хяналт, хоёр гадны хяналт. Арай гэж, учир нь энэ бүхэн аль хэдийн стандарт практик байсан. Даваа гараг: таны агент үүлнээс юу татаж авснаас үл хамааран канарын цагираг авна. Тохиргоо бол ямар нэгэн зүйл үүнийг задалж, алдаа гаргах боломжгүй үед код болдог. Надад таны ярихыг зөвшөөрөөгүй байгаа үйл явдлыг илгээгээрэй, коммент хэсэгт, эсвэл daily diff dot dev хаягаар. Мөн энэ бол өнөөдрийн diff.
2:48 Би бол Axrisi-ийн Нико. Хариуцлагатай нэгтгээрэй.
Эх сурвалжууд
- 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



