+− THE DAILY DIFFdev & AI news
SHIP IT

Едно допълнително поле срина 8,5 милиона компютри. 78 минути.

19 юли 2024 г., 04:09 UTC: CrowdStrike изпраща Channel File 291 — актуализация на съдържанието за бърз отговор — до всеки онлайн сензор на Windows Falcon.

19 юли 2024 г., 04:09 UTC: CrowdStrike изпраща Channel File 291 — актуализация на съдържанието за бърз отговор — до всеки онлайн сензор на Windows Falcon. Шаблонът, който захранва, е деклариран с 21 входни полета през февруари; кодът, който подава входовете, изгражда масив от 20. В продължение на четири месеца нищо не прочита поле 21, защото всяко правило го оставя като заместващ символ. Тази актуализация поставя истински модел там. Cloud-базираният Content Validator брои 21 спрямо декларацията и го пропуска; Content Interpreter на сензора, без проверка на границите, прочита слот 21 в режим на ядрото и Windows генерира грешки в страниците: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Драйверът се зарежда рано при стартиране нарочно, прочита същия файл, срива се отново — цикъл на зареждане. Отменен в 05:27 UTC, 78 минути по-късно, но 8,5 милиона машини (по данни на Microsoft, под 1% от Windows) вече имат файла, а поправката е човек на всяка клавиатура: Safe Mode, изтриване на C-00000291*.sys, ключ за възстановяване на BitLocker. Авиокомпании, болници, банки и центрове за спешни повиквания спират; Delta отменя около 7000 полета и претендира за поне 500 милиона долара от CrowdStrike и Microsoft; Parametrix оценява сметката за Fortune 500 на близо 5,4 милиарда долара. Постмортем от собствения Root Cause Analysis на CrowdStrike, Preliminary Post Incident Review, блога на Microsoft, 8-K на Delta и свидетелските показания в Камарата. Git blame: 65 CrowdStrike / 25 дизайна на режима на ядрото / 10 петъкът. Присъда за поправката: SHIP IT, на косъм.

Прочетете писменото издание (английски) ↗

Какво обхваща този видеоклип

  • 28 февруари – 24 април 2024 г.: сензор 7.11 доставя IPC Template Type (21 декларирани полета, 20 доставени); стрес тестът преминава на 5 март; четири инстанции работят, защото поле 21 е заместващ символ
  • 19 юли, 04:09 UTC: две нови Template Instances; логическата грешка на Content Validator пропуска тази без заместващ символ; излизане извън границите на паметта в ядрото; 05:27 UTC отменено
  • 19–29 юли: ръчно отстраняване (Safe Mode, изтриване на файла, BitLocker ключ); ~97% от сензорите се връщат до 24 юли, ~99% до 29 юли
  • 25 юли – 19 август: проверка на границите по време на изпълнение, валидиране на броя на полетата по време на компилация, проверки на Validator, канарче + пръстени за разгръщане, клиентски контрол върху Rapid Response Content, две независими проверки; пълен RCA с данни за срив на 6 август

Преведен препис

Преведено от оригиналния английски разказ. Наличните аудио и субтитри се контролират от YouTube.

0:00 Една актуализация за сигурност носи двадесет и едно полета в драйвер, създаден за двадесет, и осем и половина милиона Windows машини показват син екран преди закуска. 19 юли 2024 г., 04:09 UTC. CrowdStrike изпраща Channel File 291 до всеки Falcon сензор. Седемдесет и осем минути по-късно го премахват; дотогава авиокомпании, болници и банки гледат същия син правоъгълник. Първият пост на изпълнителния директор казва, че не е кибератака, вярно е, но не е това същественото. Как се случва, защо е възможно и кой е виновен.

0:27 Това е The Daily Diff, постмортем. 28 февруари. Сензор 7.11 доставя нов детектор за именувани канали. Той декларира двадесет и едно входни полета; кодът, който го захранва, изгражда масив от двадесет. Никой не забелязва: в продължение на четири месеца всяко правило оставя поле двадесет и едно като заместващ символ и никой не чете заместващ символ. Стрес тестът преминава, четири правила се доставят, всичко е наред. 19 юли, 04:09. Две нови правила; едното поставя истински модел в поле двадесет и едно.

0:51 Cloud валидаторът брои двадесет и едно спрямо декларацията и казва, че е наред. Всеки онлайн Windows хост го изтегля наведнъж, защото няма „канарски пръстен“. Сензорът прочита слот двадесет и едно, което не е негова памет, и ядрото прави това, което правят ядрата. 05:27, отменено. Твърде късно за всеки, който е рестартирал: драйверът се зарежда рано при стартиране, прочита същия файл и се срива отново. Цикъл на зареждане. Защо е възможно това? Правилата са конфигурация, изпратена от облака, така че не е код, който пропуска кодовия

1:16 поток. Интерпретаторът няма проверка на границите; той се доверява на валидатора, а валидаторът се доверява на декларацията. И всичко това работи в режим на ядрото, където лош показалец не е изключение, а грешка в страница, която Windows казва, че не може да бъде защитена чрез try-except. Патрик Уордъл го прочита от данни за срив същия следобед: индекс нула x четиринадесет, слот двадесет и едно. Поправката е ръчна. Safe Mode, изтриване на C-00000291, рестартиране. С BitLocker, първо въведете четиридесет и осем цифрен

1:43 ключ за възстановяване, който се намира на сървър, който също е син. git blame. CrowdStrike, шестдесет и пет процента: RCA изброява шест констатации, и констатация шест е цяло изречение: Template Instances трябва да имат поетапно разгръщане. Дизайнът на режима на ядрото, двадесет и пет: CrowdStrike казва, че Windows не може все още да хоства сигурност извън ядрото, Microsoft казва, че не е инцидент на Microsoft, и грешката в страницата не се интересува.

2:05 Петък, десет. Съобщението за commit казва, че не е код. Радиус на взрива: осем и половина милиона устройства, под един процент от Windows. Delta отменя седем хиляди полета и съди за петстотин милиона, включително Microsoft. Застрахователите оценяват сметката за Fortune 500 на близо пет милиарда. Hacker News: четири хиляди и петстотин точки. Иронията: актуализация, предназначена да открива нови техники за атака, достави такава. Присъда, постмортем: SHIP IT, на косъм.

2:27 Проверка на границите след шест дни, поетапни пръстени, клиентски контрол върху актуализациите на съдържанието, две външни проверки. На косъм, защото всичко това вече беше стандартна практика. Понеделник: каквото и да изтегли вашият агент от облака, получава „канарски пръстен“. Конфигурацията е код в момента, в който нещо я анализира там, където не може да генерира грешка. Изпратете ми инцидента, за който все още не ви е позволено да говорите, в коментарите или на daily diff dot dev. И това е The Daily Diff за днес.

2:48 Аз съм Нико от Axrisi. Сливайте отговорно.

Източници

  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

Свързани видеоклипове

postmortem · bg · 25.09.2026 г.

Една милисекунда бъг спря въздушния трафик в Обединеното кралство. За шест часа.

В 10:00 ч. във вторник, 8 септември, едно рутинно искане за squawk-код в Националната система за въздушно пространство (NAS) на NATS е прекъснато от съобщение с по-висок приоритет, докато е в процес н

3:06 ↗