ช่องพิเศษช่องเดียวทำให้พีซี 8.5 ล้านเครื่องล่ม ใช้เวลา 78 นาที
19 กรกฎาคม 2024, 04:09 UTC: CrowdStrike ผลัก Channel File 291 — ซึ่งเป็นการอัปเดต Rapid Response Content — ไปยังเซ็นเซอร์ Windows Falcon ทุกเครื่องที่ออนไลน์ เทมเพลตที่ใช้ได้ประกาศไว้ว่ามี 21 ช่องข้อมูลในเดือนกุมภาพันธ์; รหัสที่ให้ข้อมูลจะสร้างอาร์เรย์ที่มี 20 ช่อง เป็นเวลาสี่เดือนที่ไม่มีอะไรอ่านช่อง 21 เนื่องจากทุกกฎปล่อยให้เป็นไวด์การ์ด การอัปเดตนี้ใส่รูปแบบจริงลงไป Content Validator ฝั่งคลาวด์นับได้ 21 ช่องเทียบกับการประกาศและส่งผ่านไปได้; Content Interpreter ของเซ็นเซอร์ ซึ่งไม่มีการตรวจสอบขอบเขต จะอ่านช่อง 21 ในโหมดเคอร์เนลและ Windows จะเกิด page-faults: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys ไดรเวอร์จะโหลดตั้งแต่ช่วงต้นของการบูตโดยเจตนา อ่านไฟล์เดิม แล้วล่มอีกครั้ง — เกิด boot loop การแก้ไขถูกย้อนกลับเมื่อ 05:27 UTC, 78 นาทีต่อมา แต่เครื่อง 8.5 ล้านเครื่อง (จำนวนของ Microsoft, น้อยกว่า 1% ของ Windows) มีไฟล์ดังกล่าวอยู่แล้ว และการแก้ไขคือให้คนมาแก้ที่คีย์บอร์ดทุกเครื่อง: Safe Mode, ลบ C-00000291*.sys, คีย์กู้คืน BitLocker สายการบิน, โรงพยาบาล, ธนาคาร และศูนย์ 911 หยุดชะงัก; Delta ยกเลิกเที่ยวบินประมาณ 7,000 เที่ยว และเรียกร้องค่าเสียหายอย่างน้อย 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, อย่างฉิวเฉียด
19 กรกฎาคม 2024, 04:09 UTC: CrowdStrike ผลัก Channel File 291 — ซึ่งเป็นการอัปเดต Rapid Response Content — ไปยังเซ็นเซอร์ Windows Falcon ทุกเครื่องที่ออนไลน์ เทมเพลตที่ใช้ได้ประกาศไว้ว่ามี 21 ช่องข้อมูลในเดือนกุมภาพันธ์; รหัสที่ให้ข้อมูลจะสร้างอาร์เรย์ที่มี 20 ช่อง เป็นเวลาสี่เดือนที่ไม่มีอะไรอ่านช่อง 21 เนื่องจากทุกกฎปล่อยให้เป็นไวด์การ์ด การอัปเดตนี้ใส่รูปแบบจริงลงไป Content Validator ฝั่งคลาวด์นับได้ 21 ช่องเทียบกับการประกาศและส่งผ่านไปได้; Content Interpreter ของเซ็นเซอร์ ซึ่งไม่มีการตรวจสอบขอบเขต จะอ่านช่อง 21 ในโหมดเคอร์เนลและ Windows จะเกิด page-faults: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys ไดรเวอร์จะโหลดตั้งแต่ช่วงต้นของการบูตโดยเจตนา อ่านไฟล์เดิม แล้วล่มอีกครั้ง — เกิด boot loop การแก้ไขถูกย้อนกลับเมื่อ 05:27 UTC, 78 นาทีต่อมา แต่เครื่อง 8.5 ล้านเครื่อง (จำนวนของ Microsoft, น้อยกว่า 1% ของ Windows) มีไฟล์ดังกล่าวอยู่แล้ว และการแก้ไขคือให้คนมาแก้ที่คีย์บอร์ดทุกเครื่อง: Safe Mode, ลบ C-00000291*.sys, คีย์กู้คืน BitLocker สายการบิน, โรงพยาบาล, ธนาคาร และศูนย์ 911 หยุดชะงัก; Delta ยกเลิกเที่ยวบินประมาณ 7,000 เที่ยว และเรียกร้องค่าเสียหายอย่างน้อย 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, Canary + Deployment Rings, การควบคุมเนื้อหา Rapid Response โดยลูกค้า, การตรวจสอบอิสระสองครั้ง; RCA ฉบับเต็มพร้อม crash dump เมื่อ 6 ส.ค.
บทถอดเสียงที่แปลแล้ว
แปลจากการบรรยายภาษาอังกฤษต้นฉบับ เสียงและคำบรรยายที่มีให้จะควบคุมโดย YouTube
0:00 การอัปเดตความปลอดภัยครั้งหนึ่งมีช่องข้อมูล 21 ช่องในไดรเวอร์ที่สร้างขึ้นสำหรับ 20 ช่อง และเครื่อง Windows 8.5 ล้านเครื่องเกิด blue-screen ก่อนอาหารเช้า 19 กรกฎาคม 2024, 04:09 UTC CrowdStrike ผลัก Channel File 291 ไปยังเซ็นเซอร์ Falcon ทุกเครื่อง เจ็ดสิบแปดนาทีต่อมาพวกเขาถอนมันออก; ถึงตอนนั้นสายการบิน โรงพยาบาลและธนาคารก็จ้องมองสี่เหลี่ยมสีน้ำเงินเดียวกัน โพสต์แรกของ CEO บอกว่าไม่ใช่การโจมตีทางไซเบอร์ ซึ่งจริง แต่ไม่ใช่ประเด็น มันเกิดขึ้นได้อย่างไร ทำไมเป็นไปได้ และใครเป็นผู้รับผิดชอบ
0:27 นี่คือ The Daily Diff, ภายหลังเกิดเหตุ 28 กุมภาพันธ์ เซ็นเซอร์ 7.11 ส่งตัวตรวจจับใหม่สำหรับ named pipes มันประกาศช่องข้อมูลอินพุต 21 ช่อง; โค้ดที่ป้อนข้อมูลสร้างอาร์เรย์ของ 20 ช่อง ไม่มีใครสังเกตเห็น: เป็นเวลาสี่เดือนที่ทุกกฎปล่อยช่อง 21 เป็น ไวด์การ์ด และไม่มีใครอ่านไวด์การ์ด การทดสอบความเครียดผ่าน สี่กฎถูกส่งออกไป ทุกอย่างเรียบร้อย 19 กรกฎาคม, 04:09 กฎใหม่สองข้อ; หนึ่งในนั้นใส่รูปแบบจริงในช่อง 21
0:51 ตัวตรวจสอบความถูกต้องบนคลาวด์นับ 21 ช่องเทียบกับการประกาศและบอกว่าเรียบร้อย โฮสต์ Windows ออนไลน์ทุกเครื่องดาวน์โหลดมันพร้อมกัน เพราะไม่มี canary ring เซ็นเซอร์อ่านช่อง 21 ซึ่งไม่ใช้หน่วยความจำของมัน และเคอร์เนลก็ทำในสิ่งที่เคอร์เนลทำ 05:27, ถูกย้อนกลับ สายเกินไปสำหรับใครก็ตามที่รีบูต: ไดรเวอร์โหลดตั้งแต่ต้นของ การบูต, อ่านไฟล์เดิม, และล่มอีกครั้ง Boot loop ทำไมถึงเป็นไปได้? กฎคือการกำหนดค่าที่ผลักจากคลาวด์ ดังนั้นโค้ดจึงไม่ได้ข้ามโค้ด
1:16 pipeline ตัวแปลภาษาไม่มีการตรวจสอบขอบเขต; มันเชื่อมั่นตัวตรวจสอบความถูกต้อง และตัวตรวจสอบความถูกต้องเชื่อมั่นการประกาศ และทั้งหมดรันในโหมดเคอร์เนล ซึ่งตัวชี้ที่ผิดไม่ใช่ข้อยกเว้น แต่เป็น page fault ที่ Windows บอกว่าไม่สามารถป้องกันได้ด้วย try-except Patrick Wardle อ่านมันจาก crash dump ในบ่ายวันนั้น: ดัชนีศูนย์ x สิบสี่ ช่อง 21 การแก้ไขเป็นแบบแมนนวล Safe Mode, ลบ C-00000291, รีบูต สำหรับ BitLocker ให้พิมพ์รหัส
1:43 กู้คืน 48 หลัก ที่อยู่บน เซิร์ฟเวอร์ซึ่งเป็นสีน้ำเงินเช่นกัน git blame CrowdStrike, หกสิบห้าเปอร์เซ็นต์: RCA ระบุข้อค้นพบหกประการ และข้อค้นพบที่หกคือประโยคเต็ม: Template Instances ควรมี staged deployment การออกแบบโหมดเคอร์เนล ยี่สิบห้า: CrowdStrike บอกว่า Windows ไม่สามารถ โฮสต์ความปลอดภัยนอกเคอร์เนลได้ Microsoft บอกว่าไม่ใช่เหตุการณ์ของ Microsoft และ page fault ไม่สนใจ
2:05 วันศุกร์, สิบ ข้อความ commit บอกว่าไม่ใช่โค้ด รัศมีการระเบิด: อุปกรณ์ 8.5 ล้านเครื่อง, น้อยกว่าหนึ่งเปอร์เซ็นต์ของ Windows Delta ยกเลิกเที่ยวบินเจ็ดพันเที่ยวและฟ้องร้องเรียกค่าเสียหายห้าร้อยล้าน รวมถึง Microsoft บริษัทประกันภัยประมาณการค่าใช้จ่ายของ Fortune 500 ใกล้ห้าพันล้าน Hacker News: สี่พันห้าร้อยคะแนน ความย้อนแย้ง: การอัปเดตที่ตั้งใจจะตรวจจับเทคนิคการโจมตีแบบใหม่ กลับเป็นสาเหตุของการโจมตีเสียเอง คำตัดสิน, ภายหลังเกิดเหตุ: SHIP IT, อย่างฉิวเฉียด
2:27 ตรวจสอบขอบเขตภายในหกวัน, staged rings, การควบคุมการอัปเดตเนื้อหาโดยลูกค้า การตรวจสอบภายนอกสองครั้ง อย่างฉิวเฉียด เพราะทั้งหมดนั้นเป็นแนวปฏิบัติมาตรฐานอยู่แล้ว วันจันทร์: ไม่ว่าเอเจนต์ของคุณจะดึงอะไรจากคลาวด์ ก็จะได้ canary ring การกำหนดค่าคือโค้ด ณ ขณะที่บางอย่างแยกวิเคราะห์มันในที่ที่ไม่สามารถเกิดข้อผิดพลาดได้ ส่งเหตุการณ์ที่คุณยังไม่ได้รับอนุญาตให้พูดถึงให้ฉัน ในความคิดเห็น หรือที่ daily diff dot dev และนั่นคือ diff สำหรับวันนี้
2:48 ผม Niko จาก 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



