+− THE DAILY DIFFdev & AI news
SHIP IT

Viens papildu lauks izraisīja 8,5 miljonu datoru avāriju. 78 minūtes.

2024.

2024. gada 19. jūlijs, 04:09 UTC: CrowdStrike izplata Channel File 291 — Rapid Response Content atjauninājumu — katram tiešsaistes Windows Falcon sensoram. Tā barotā veidne tika deklarēta ar 21 ievades lauku februārī; kods, kas nodrošina ievades, veido 20 elementu masīvu. Četrus mēnešus nekas nelasīja 21. lauku, jo katrs noteikums to atstāja kā "wildcard". Šis atjauninājums tur ievieto reālu modeli. Mākoņa puses Satura Validētājs (Content Validator) saskaita 21 pret deklarāciju un apstiprina to; sensora Satura Interpretators (Content Interpreter), bez robežu pārbaudes, lasa 21. slotu kodola režīmā un Windows lapas kļūdas: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Draiveris apzināti ielādējas agri palaišanas laikā, lasa to pašu failu, atkal avarē — palaišanas cilpa. Atjauninājums tika atcelts plkst. 05:27 UTC, 78 minūtes vēlāk, bet 8,5 miljoniem mašīnu (Microsoft skaits, mazāk par 1% no Windows) fails jau ir, un labojums ir cilvēks pie katras klaviatūras: Safe Mode, dzēst C-00000291*.sys, BitLocker atjaunošanas atslēga. Aviokompānijas, slimnīcas, bankas un 911 centri apstājas; Delta atceļ aptuveni 7000 lidojumus un pieprasa vismaz 500 miljonus USD no CrowdStrike un Microsoft; Parametrix novērtē Fortune 500 rēķinu tuvu 5,4 miljardiem USD. Pēcnāves analīze no CrowdStrike pašu Saknes Cēloņu Analīzes (Root Cause Analysis), Sākotnējā Pēcincedentu Pārskata (Preliminary Post Incident Review), Microsoft bloga, Delta 8-K un Pārstāvju palātas liecībām. Git blame: 65 CrowdStrike / 25 kodola režīma dizains / 10 piektdiena. Spriedums par labojumu: SHIP IT, ar nelielu pārsvaru.

Lasiet rakstisko izdevumu (angļu valodā) ↗

Ko aptver šis video

  • 2024. gada 28. februāris – 24. aprīlis: sensors 7.11 piegādā IPC veidnes tipu (deklarēti 21 lauki, piegādāti 20); stresa tests iziet 5. martā; četras instances darbojas, jo 21. lauks ir "wildcard"
  • 19. jūlijs, 04:09 UTC: divas jaunas veidnes instances; satura validatora loģiskā kļūda ļauj iziet "non-wildcard" instancei; piekļuve ārpus robežām kodolā; 05:27 UTC atcelts
  • 19.–29. jūlijs: manuāla novēršana (Safe Mode, faila dzēšana, BitLocker atslēga); ~97% sensoru atjaunoti līdz 24. jūlijam, ~99% līdz 29. jūlijam
  • 25. jūlijs – 19. augusts: robežu pārbaude izpildes laikā, lauku skaita validācija kompilēšanas laikā, validācijas pārbaudes, kanārijputniņi + izvietošanas gredzeni, klientu kontrole pār Rapid Response Content, divas neatkarīgas pārskatīšanas; pilna RCA ar avārijas izgāztuvi 6. augustā

Tulkotais transkripts

Tulkojums no oriģinālā angļu stāstījuma. Pieejamais audio un subtitri tiek kontrolēti no YouTube.

0:00 Viens drošības atjauninājums ievieto divdesmit vienu lauku draiverī, kas paredzēts divdesmit laukiem, un astoņi ar pusi miljoni Windows mašīnu parāda zilo ekrānu pirms brokastīm. 2024. gada 19. jūlijs, 04:09 UTC. CrowdStrike izplata Channel File 291 katram Falcon sensoram. Septiņdesmit astoņas minūtes vēlāk viņi to atceļ; līdz tam aviokompānijas, slimnīcas un bankas skatās uz to pašu zilo taisnstūri. Izpilddirektora pirmais ziņojums saka, ka tas nav kiberuzbrukums, kas ir patiesība, bet nav galvenais. Kā tas notiek, kāpēc tas ir iespējams, un kas ir vainīgs.

0:27 Šis ir The Daily Diff, pēcnāves analīze. 28. februāris. Sensors 7.11 piegādā jaunu nosauktu cauruļu detektoru. Tas deklarē divdesmit vienu ievades lauku; kods, kas to baro, veido masīvu ar divdesmit laukiem. Neviens nepamana: četrus mēnešus katrs noteikums atstāj divdesmit pirmo lauku kā "wildcard", un neviens nelasa "wildcard". Stresa tests iziet, četras kārtulas tiek izplatītas, viss kārtībā. 19. jūlijs, 04:09. Divas jaunas kārtulas; viena ievieto reālu modeli divdesmit pirmajā laukā.

0:51 Mākoņa validētājs saskaita divdesmit vienu pret deklarāciju un saka, ka ir kārtībā. Katrs tiešsaistes Windows resursdators to lejupielādē uzreiz, jo nav "canary ring". Sensors lasa divdesmit pirmo slotu, kas nav tā atmiņa, un kodols dara to, ko kodoli dara. 05:27, atcelts. Pārāk vēlu tiem, kas pārstartēja: draiveris ielādējas agri palaišanas laikā, lasa to pašu failu un atkal avarē. Palaišanas cilpa. Kāpēc tas ir iespējams? Kārtulas ir konfigurācija, kas tiek pārsūtīta no mākoņa, tāpēc tas nav kods, kas izlaiž koda

1:16 cauruļvadu. Interpretatoram nav robežu pārbaudes; tas uzticas validatoram, un validators uzticas deklarācijai. Un tas viss darbojas kodola režīmā, kur slikts rādītājs nav izņēmums, bet gan lapas kļūda, ko Windows saka, nevar aizsargāt ar "try-except". Patriks Vardls to nolasīja no avārijas izgāztuves tajā pēcpusdienā: indekss nulle x četrpadsmit, slots divdesmit viens. Labojums ir manuāls. Safe Mode, dzēst C-00000291, pārstartēt. Ar BitLocker vispirms jāievada četrdesmit astoņu ciparu

1:43 atkopšanas atslēga, kas atrodas serverī, kas arī ir zils. git blame. CrowdStrike, sešdesmit pieci procenti: RCA uzskaita sešus konstatējumus, un sestais konstatējums ir pilns teikums: Veidnes instancēm vajadzēja pakāpeniski izvietošanu. Kodola režīma dizains, divdesmit pieci: CrowdStrike saka, ka Windows nevar vēl mitināt drošību ārpus kodola, Microsoft saka, ka tas nav Microsoft incidents, un lapas kļūdai tas nerūp.

2:05 Piektdiena, desmit. Apstiprinājuma ziņojums saka, ka tas nav kods. Sprādziena rādiuss: astoņi ar pusi miljoni ierīču, mazāk par vienu procentu no Windows. Delta atceļ septiņus tūkstošus lidojumu un iesūdz tiesā par piecsimt miljoniem, ieskaitot Microsoft. Apdrošinātāji novērtē Fortune 500 rēķinu tuvu pieciem miljardiem. Hacker News: četrdesmit pieci simti punktu. Ironija: atjauninājums, kura mērķis bija atklāt jaunus uzbrukuma veidus, pats tādu piegādāja. Spriedums, pēcnāves analīze: SHIP IT, ar nelielu pārsvaru.

2:27 Robežu pārbaude sešu dienu laikā, pakāpeniski gredzeni, klientu kontrole pār satura atjauninājumiem, divas ārējas pārskatīšanas. Ar nelielu pārsvaru, jo tas viss jau bija standarta prakse. Pirmdiena: lai ko jūsu aģents vilktu no mākoņa, tam ir "canary ring". Konfigurācija ir kods brīdī, kad kaut kas to analizē, kur tas nevar izmest kļūdu. Sūtiet man incidentu, par kuru jums joprojām nav atļauts runāt, komentāros vai vietnē the daily diff dot dev. Un tas ir šodienas diff.

2:48 Esmu Niko no Axrisi. Apvienojiet atbildīgi.

Avoti

  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

Saistītie video