یک فیلد اضافی باعث کرش 8.5 میلیون کامپیوتر شد. 78 دقیقه.
19 ژوئیه 2024، ساعت 04:09 UTC: CrowdStrike بهروزرسانی محتوای Rapid Response با عنوان Channel File 291 را به هر سنسور آنلاین Windows Falcon ارسال میکند.
19 ژوئیه 2024، ساعت 04:09 UTC: CrowdStrike بهروزرسانی محتوای Rapid Response با عنوان Channel File 291 را به هر سنسور آنلاین Windows Falcon ارسال میکند. قالب ورودی آن در ماه فوریه با 21 فیلد ورودی اعلام شده بود؛ کدی که ورودیها را فراهم میکند، یک آرایه 20 تایی میسازد. به مدت چهار ماه هیچ چیز فیلد 21 را نمیخواند، زیرا هر قانون آن را به عنوان یک wildcard (متغیر) رها میکند. این بهروزرسانی یک الگوی واقعی در آنجا قرار میدهد. اعتبارسنج محتوا (Content Validator) در سمت ابری 21 فیلد را در مقابل اعلامیه میشمارد و آن را تأیید میکند؛ مفسر محتوا (Content Interpreter) سنسور، بدون بررسی حدود، اسلات 21 را در حالت هسته (kernel mode) میخواند و Windows با خطای page-fault مواجه میشود: PAGE_FAULT_IN_NONPAGED_AREA، csagent.sys. درایور عمداً در اوایل بوت بارگذاری میشود، همان فایل را میخواند، و دوباره کرش میکند — بوت لوپ. در ساعت 05:27 UTC، 78 دقیقه بعد، برگشت داده شد، اما 8.5 میلیون دستگاه (طبق شمارش مایکروسافت، کمتر از 1% ویندوز) قبلاً فایل را دارند، و راهحل این است که یک انسان پشت هر کیبورد باشد: Safe Mode، حذف C-00000291*.sys، کلید بازیابی BitLocker. خطوط هوایی، بیمارستانها، بانکها و مراکز 911 متوقف میشوند؛ دلتا حدود 7,000 پرواز را لغو میکند و حداقل 500 میلیون دلار از CrowdStrike و مایکروسافت ادعا میکند؛ Parametrix هزینه Fortune 500 را نزدیک به 5.4 میلیارد دلار تخمین میزند. بررسی پس از حادثه (Postmortem) از تحلیل ریشهای (Root Cause Analysis) خود CrowdStrike، بررسی اولیه پس از حادثه (Preliminary Post Incident Review)، وبلاگ مایکروسافت، گزارش 8-K دلتا و شهادت کنگره. تقصیر Git: 65 CrowdStrike / 25 طراحی حالت هسته / 10 جمعه. حکم در مورد راهحل: SHIP IT، به سختی.
نسخه نوشتاری را بخوانید (انگلیسی) ↗
این ویدیو چه مواردی را پوشش میدهد
- 28 فوریه – 24 آوریل 2024: سنسور 7.11 نوع قالب IPC (با 21 فیلد اعلام شده، 20 فیلد ارائه شده) را ارسال میکند؛ تست استرس 5 مارس با موفقیت انجام میشود؛ چهار نمونه کار میکنند زیرا فیلد 21 یک wildcard است.
- 19 ژوئیه، 04:09 UTC: دو نمونه قالب جدید؛ خطای منطقی اعتبارسنج محتوا به نمونه غیر-wildcard اجازه عبور میدهد؛ خواندن خارج از محدوده در هسته؛ 05:27 UTC بازگردانده شد.
- 19-29 ژوئیه: ترمیم دستی (Safe Mode، حذف فایل، کلید BitLocker)؛ ~97% سنسورها تا 24 ژوئیه، ~99% تا 29 ژوئیه بازگشتند.
- 25 ژوئیه – 19 اوت: بررسی حدود زمان اجرا، اعتبارسنجی تعداد فیلد در زمان کامپایل، بررسیهای اعتبارسنج، حلقههای قناری و استقرار، کنترل مشتری بر محتوای Rapid Response، دو بررسی مستقل؛ RCA کامل با crash dump در 6 اوت.
رونوشت ترجمه شده
ترجمه شده از روایت اصلی انگلیسی. صوت و زیرنویسهای موجود توسط YouTube کنترل میشوند.
0:00 یک بهروزرسانی امنیتی بیست و یک فیلد را وارد یک درایور میکند که برای بیست فیلد ساخته شده است، و هشت و نیم میلیون دستگاه ویندوز قبل از صبحانه با صفحه آبی مواجه میشوند. 19 ژوئیه 2024، 04:09 UTC. CrowdStrike فایل کانال 291 را به هر سنسور Falcon ارسال میکند. هفتاد و هشت دقیقه بعد آن را برمیگردانند؛ تا آن زمان خطوط هوایی، بیمارستانها و بانکها به همان مستطیل آبی خیره شدهاند. اولین پست مدیرعامل میگوید این یک حمله سایبری نیست، درست است، و اصل موضوع هم نیست. چگونه اتفاق میافتد، چرا ممکن است، و چه کسی مقصر است.
0:27 این The Daily Diff است، پس از حادثه. 28 فوریه. سنسور 7.11 یک ردیاب جدید برای named pipes ارسال میکند. آن بیست و یک فیلد ورودی را اعلام میکند؛ کدی که آن را تغذیه میکند یک آرایه بیست تایی میسازد. کسی متوجه نمیشود: به مدت چهار ماه هر قانون فیلد بیست و یک را به عنوان یک wildcard رها میکند، و کسی یک wildcard را نمیخواند. یک تست استرس با موفقیت انجام میشود، چهار قانون ارسال میشوند، همه چیز خوب است. 19 ژوئیه، 04:09. دو قانون جدید؛ یکی یک الگوی واقعی در فیلد بیست و یک قرار میدهد.
0:51 اعتبارسنج ابری بیست و یک را در مقابل اعلامیه میشمارد و میگوید خوب است. هر میزبان ویندوز آنلاین بلافاصله آن را دانلود میکند، زیرا حلقه قناری وجود ندارد. سنسور اسلات بیست و یک را میخواند، که حافظه آن نیست، و هسته کاری را میکند که هستهها میکنند. 05:27، بازگردانده شد. برای هر کسی که ریبوت کرده بود خیلی دیر بود: درایور در اوایل بوت بارگذاری میشود، همان فایل را میخواند و دوباره کرش میکند. بوت لوپ. چرا این ممکن است؟ قوانین پیکربندی هستند که از ابر ارسال میشوند، بنابراین کد خط لوله کد را
1:16 نادیده نمیگیرد. مفسر بررسی حدود ندارد؛ به اعتبارسنج اعتماد میکند، و اعتبارسنج به اعلامیه اعتماد میکند. و همه اینها در حالت هسته (kernel mode) اجرا میشود، جایی که یک اشارهگر بد یک استثنا نیست بلکه یک page fault است که ویندوز میگوید نمیتوان با try-except محافظت کرد. پاتریک واردل بعد از ظهر آن را از یک crash dump میخواند: ایندکس صفر ایکس چهارده، اسلات بیست و یک. راهحل دستی است. Safe Mode، حذف C-00000291، ریبوت. با BitLocker، ابتدا یک کلید بازیابی چهل و هشت رقمی
1:43 را تایپ کنید که روی یک سرور قرار دارد که آن هم آبی است. مقصر git. CrowdStrike، شصت و پنج درصد: RCA شش یافته را فهرست میکند، و یافته شش یک جمله کامل است: نمونههای قالب باید استقرار مرحلهای داشته باشند. طراحی حالت هسته، بیست و پنج درصد: CrowdStrike میگوید ویندوز نمیتواند هنوز امنیت را خارج از هسته میزبانی کند، مایکروسافت میگوید این یک حادثه مایکروسافت نیست، و page fault اهمیت نمیدهد.
2:05 جمعه، ده درصد. پیام commit میگوید کد نیست. شعاع انفجار: هشت و نیم میلیون دستگاه، کمتر از یک درصد ویندوز. دلتا هفت هزار پرواز را لغو میکند و برای پانصد میلیون دلار شکایت میکند، مایکروسافت نیز شامل میشود. بیمهگران صورتحساب Fortune 500 را نزدیک به پنج میلیارد دلار تخمین میزنند. اخبار هکر: چهل و پنج هزار امتیاز. کنایه: یک بهروزرسانی که برای شناسایی تکنیکهای حمله جدید طراحی شده بود، خودش یکی را ارائه داد. حکم، پس از حادثه: SHIP IT، به سختی.
2:27 بررسی حدود در شش روز، حلقههای مرحلهبندی شده، کنترل مشتری بر بهروزرسانیهای محتوا، دو بررسی خارجی. به سختی، زیرا همه اینها قبلاً یک رویه استاندارد بود. دوشنبه: هر چیزی که نماینده شما از ابر دریافت میکند، یک حلقه قناری میگیرد. پیکربندی در لحظهای که چیزی آن را تجزیه میکند و نمیتواند خطا دهد، کد است. حادثهای را که هنوز اجازه صحبت درباره آن را ندارید، برای من بفرستید، در نظرات، یا در daily diff dot dev. و این تفاوت امروز است.
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



