+− THE DAILY DIFFdev & AI news
SHIP IT

Yksi ylimääräinen kenttä kaatoi 8,5 miljoonaa PC:tä. 78 minuuttia.

19.

19. heinäkuuta 2024, klo 04:09 UTC: CrowdStrike työntää kanavatiedoston 291 – Rapid Response Content -päivityksen – jokaiseen online-Windows Falcon -sensoriin. Malli, jota se syöttää, oli määritelty 21 syöttökentällä helmikuussa; syöttöjä toimittava koodi rakentaa 20:n kentän taulukon. Neljän kuukauden ajan mikään ei lue kenttää 21, koska jokainen sääntö jättää sen jokeriksi. Tämä päivitys asettaa sinne todellisen kuvion. Pilvipuolen Content Validator laskee 21 ilmoitusta vastaan ja hyväksyy sen; sensorin Content Interpreter, ilman rajatarkistusta, lukee paikan 21 ydintilassa ja Windowsin sivuvirheet: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Ohjain latautuu tahallaan aikaisin käynnistyksen yhteydessä, lukee saman tiedoston, kaatuu uudelleen – käynnistyssilmukka. Kumottu klo 05:27 UTC, 78 minuuttia myöhemmin, mutta 8,5 miljoonaa konetta (Microsoftin laskujen mukaan, alle 1 % Windowsista) on jo saanut tiedoston, ja korjaus on ihminen jokaisella näppäimistöllä: vikasietotila, poista C-00000291*.sys, BitLocker-palautusavain. Lentoyhtiöt, sairaalat, pankit ja hätäkeskukset pysähtyvät; Delta peruuttaa noin 7 000 lentoa ja vaatii vähintään 500 miljoonaa dollaria CrowdStrikelta ja Microsoftilta; Parametrix arvioi Fortune 500:n laskun lähes 5,4 miljardiksi dollariksi. Kuolemanjälkeinen analyysi CrowdStriken omasta syyanalyysistä, alustavasta tapauksen jälkeisestä katsauksesta, Microsoftin blogista, Deltan 8-K:sta ja edustajainhuoneen todistuksesta. Git blame: 65 CrowdStrike / 25 ydintilan suunnittelu / 10 perjantai. Tuomio korjauksesta: SHIP IT, täpärästi.

Lue kirjoitettu versio (englanniksi) ↗

Mitä tämä video käsittelee

  • 28. helmikuuta – 24. huhtikuuta 2024: sensori 7.11 toimittaa IPC Template Typen (21 kenttää määritelty, 20 toimitettu); stressitesti läpäisty 5. maaliskuuta; neljä tapausta toimii, koska kenttä 21 on jokeri
  • 19. heinäkuuta, klo 04:09 UTC: kaksi uutta malliesiintymää; Content Validatorin logiikkavirhe sallii ei-jokerin läpäistä; muistialueen ulkopuolinen luku ytimessä; klo 05:27 UTC kumottu
  • 19.–29. heinäkuuta: manuaalinen korjaus (vikasietotila, tiedoston poisto, BitLocker-avain); ~97 % sensoreista takaisin 24. heinäkuuta mennessä, ~99 % 29. heinäkuuta mennessä
  • 25. heinäkuuta – 19. elokuuta: suorituksen aikainen rajatarkistus, käännöksen aikainen kenttien määrän validointi, validoijan tarkistukset, kanarianrengas + käyttöönottoympyrät, asiakkaan hallinta Rapid Response Content -sisältöön, kaksi riippumatonta tarkistusta; täysi RCA kaatumiskuvalla 6. elokuuta

Käännetty transkriptio

Käännetty alkuperäisestä englanninkielisestä selostuksesta. Käytettävissä olevan äänen ja tekstitysten hallinta tapahtuu YouTuben kautta.

0:00 Yksi tietoturvapäivitys tuo kaksikymmentäyksi kenttää ajuriin, joka on rakennettu kahdellekymmenelle, ja kahdeksan ja puoli miljoonaa Windows-konetta kaatuu ennen aamiaista. 19. heinäkuuta 2024, klo 04:09 UTC. CrowdStrike lähettää kanavatiedoston 291 jokaiseen Falcon-anturiin. Seitsemänkymmentäkahdeksan minuuttia myöhemmin he peruuttavat sen; siihen mennessä lentoyhtiöt, sairaalat ja pankit katsovat samaa sinistä suorakulmiota. Toimitusjohtajan ensimmäinen viesti sanoo, ettei kyseessä ole kyberhyökkäys, totta, eikä se ole pointti. Miten se tapahtuu, miksi se on mahdollista, ja kuka saa syytteen.

0:27 Tämä on The Daily Diff, postmortem. Helmikuun 28. päivä. Anturi 7.11 toimittaa uuden nimettyjen putkien detektorin. Se julistaa kaksikymmentäyksi syöttökenttää; koodi, joka syöttää sen, rakentaa taulukon, jossa on kaksikymmentä. Kukaan ei huomaa: neljään kuukauteen jokainen sääntö jättää kentän kaksikymmentäyksi jokerimerkiksi, eikä kukaan lue jokerimerkkiä. Stressitesti läpäisty, neljä sääntöä lähetetty, kaikki kunnossa. 19. heinäkuuta, klo 04:09. Kaksi uutta sääntöä; toinen asettaa todellisen kuvion kenttään kaksikymmentäyksi.

0:51 Pilvivalidoija laskee kaksikymmentäyksi ilmoitusta vastaan ja sanoo, että kaikki on kunnossa. Jokainen online-Windows-isäntä lataa sen heti, koska ei ole kanarianrengasta. Anturi lukee paikan kaksikymmentäyksi, joka ei ole sen muisti, ja ydin tekee sen, mitä ytimet tekevät. 05:27, peruutettu. Liian myöhäistä kaikille, jotka käynnistivät uudelleen: ajuri latautuu aikaisin käynnistyksen yhteydessä, lukee saman tiedoston ja kaatuu uudelleen. Käynnistyssilmukka. Miksi tämä on mahdollista? Säännöt ovat pilvestä työnnettyä konfiguraatiota, joten koodi ei ohita koodiputkea.

1:16 Tulkissa ei ole rajatarkistusta; se luottaa validoijaan, ja validoija luottaa ilmoitukseen. Ja kaikki tämä suoritetaan ydintilassa, jossa huono osoitin ei ole poikkeus, vaan sivuvirhe, jota Windowsin mukaan ei voi suojata try-except-mekanismilla. Patrick Wardle lukee sen kaatumiskuvasta samana iltapäivänä: indeksi nolla x neljätoista, paikka kaksikymmentäyksi. Korjaus on manuaalinen. Vikasietotila, poista C-00000291, käynnistä uudelleen. BitLockerin kanssa kirjoita ensin neljäkymmentäkahdeksannumeroinen

1:43 palautusavain, joka sijaitsee palvelimella, joka on myös sininen. git blame. CrowdStrike, kuusikymmentäviisi prosenttia: RCA listaa kuusi havaintoa, ja havainto kuusi on täysi lause: malliesiintymillä tulisi olla vaiheittainen käyttöönotto. Ydintilan suunnittelu, kaksikymmentäviisi: CrowdStrike sanoo, että Windows ei vielä pysty isännöimään tietoturvaa ytimen ulkopuolella, Microsoft sanoo, ettei kyseessä ole Microsoftin tapaus, ja sivuvirhe ei välitä.

2:05 Perjantai, kymmenen. Kommitointiviesti sanoo, ettei se ole koodia. Vaikutusalue: kahdeksan ja puoli miljoonaa laitetta, alle yksi prosentti Windowsista. Delta peruuttaa seitsemän tuhatta lentoa ja haastaa oikeuteen viidestäsadasta miljoonasta, Microsoft mukaan lukien. Vakuutusyhtiöt arvioivat Fortune 500:n laskun olevan lähes viisi miljardia. Hacker News: neljätuhatta viisisataa pistettä. Ironia: päivitys, jonka tarkoituksena oli havaita uusia hyökkäystekniikoita, toimitti yhden. Tuomio, postmortem: SHIP IT, täpärästi.

2:27 Rajatarkistus kuudessa päivässä, vaiheittaiset renkaat, asiakkaan hallinta sisältöpäivityksiin, kaksi ulkopuolista tarkistusta. Täpärästi, koska kaikki tämä oli jo vakiokäytäntöä. Maanantai: mitä tahansa agenttisi vetää pilvestä, saa kanarianrenkaan. Konfiguraatio on koodia heti, kun jokin jäsentää sen paikassa, jossa se ei voi heittää poikkeusta. Lähetä minulle tapaus, josta et edelleenkään saa puhua, kommenteissa tai daily diff dot dev -sivustolla. Ja siinäpä tämän päivän ero.

2:48 Olen Niko Axrisista. Yhdistä vastuullisesti.

Lähteet

  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

Aiheeseen liittyvät videot