Ένα επιπλέον πεδίο "κρασάρισε" 8,5 εκατομμύρια υπολογιστές. 78 λεπτά.
19 Ιουλίου 2024, 04:09 UTC: Η CrowdStrike προωθεί το Channel File 291 — μια ενημέρωση Rapid Response Content — σε κάθε ενεργό αισθητήρα Windows Falcon.
19 Ιουλίου 2024, 04:09 UTC: Η CrowdStrike προωθεί το Channel File 291 — μια ενημέρωση Rapid Response Content — σε κάθε ενεργό αισθητήρα Windows Falcon. Το πρότυπο που τροφοδοτεί δηλώθηκε με 21 πεδία εισόδου τον Φεβρουάριο· ο κώδικας που παρέχει τις εισόδους δημιουργεί ένα πίνακα 20. Για τέσσερις μήνες τίποτα δεν διαβάζει το πεδίο 21, επειδή κάθε κανόνας το αφήνει ως "wildcard". Αυτή η ενημέρωση βάζει ένα πραγματικό μοτίβο εκεί. Ο cloud-side Content Validator μετρά 21 έναντι της δήλωσης και το περνά· ο Content Interpreter του αισθητήρα, χωρίς έλεγχο ορίων, διαβάζει τη θύρα 21 σε λειτουργία πυρήνα και τα Windows προκαλούν σφάλματα σελίδας: PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Ο οδηγός φορτώνεται νωρίς στην εκκίνηση επίτηδες, διαβάζει το ίδιο αρχείο, "κρασάρει" ξανά — boot loop. Αναστράφηκε στις 05:27 UTC, 78 λεπτά αργότερα, αλλά 8,5 εκατομμύρια μηχανήματα (κατά την καταμέτρηση της Microsoft, κάτω από 1% των Windows) έχουν ήδη το αρχείο, και η επιδιόρθωση είναι ένας άνθρωπος σε κάθε πληκτρολόγιο: Ασφαλής λειτουργία, διαγραφή C-00000291*.sys, κλειδί ανάκτησης BitLocker. Αεροπορικές εταιρείες, νοσοκομεία, τράπεζες και κέντρα 911 σταματούν· η Delta ακυρώνει περίπου 7.000 πτήσεις και διεκδικεί τουλάχιστον 500 εκατομμύρια δολάρια από την CrowdStrike και τη Microsoft· η Parametrix υπολογίζει το κόστος για τις Fortune 500 κοντά στα 5,4 δισεκατομμύρια δολάρια. Μετά θάνατον από την Root Cause Analysis της CrowdStrike, το Preliminary Post Incident Review, το blog της Microsoft, το 8-K της Delta και την κατάθεση στη Βουλή. Git blame: 65 CrowdStrike / 25 ο σχεδιασμός λειτουργίας πυρήνα / 10 η Παρασκευή. Ετυμηγορία για την επιδιόρθωση: SHIP IT, οριακά.
Διαβάστε την γραπτή έκδοση (Αγγλικά) ↗
Τι καλύπτει αυτό το βίντεο
- 28 Φεβρουαρίου – 24 Απριλίου 2024: ο αισθητήρας 7.11 αποστέλλει το IPC Template Type (21 πεδία δηλωμένα, 20 παρέχονται)· το stress test περνά στις 5 Μαρτίου· τέσσερις περιπτώσεις λειτουργούν επειδή το πεδίο 21 είναι "wildcard"
- 19 Ιουλίου, 04:09 UTC: δύο νέες Template Instances· το λογικό σφάλμα του Content Validator αφήνει να περάσει αυτό που δεν είναι "wildcard"· ανάγνωση εκτός ορίων στον πυρήνα· 05:27 UTC αναστράφηκε
- 19–29 Ιουλίου: χειροκίνητη αποκατάσταση (Ασφαλής λειτουργία, διαγραφή αρχείου, κλειδί BitLocker)· ~97% των αισθητήρων επανήλθαν έως τις 24 Ιουλίου, ~99% έως τις 29 Ιουλίου
- 25 Ιουλίου – 19 Αυγούστου: έλεγχος ορίων κατά την εκτέλεση, επικύρωση πλήθους πεδίων κατά τη μεταγλώττιση, έλεγχοι Validator, canary + δακτύλιοι ανάπτυξης, έλεγχος πελάτη για το Rapid Response Content, δύο ανεξάρτητες αναθεωρήσεις· πλήρης RCA με crash dump στις 6 Αυγούστου
Μεταφρασμένη μεταγραφή
Μεταφράστηκε από την πρωτότυπη αγγλική αφήγηση. Ο διαθέσιμος ήχος και οι υπότιτλοι ελέγχονται από το YouTube.
0:00 Μια ενημέρωση ασφαλείας μεταφέρει είκοσι ένα πεδία σε έναν οδηγό χτισμένο για είκοσι, και οκτώμιση εκατομμύρια μηχανές Windows "μπλε-οθονιάζουν" πριν το πρωινό. 19 Ιουλίου 2024, 04:09 UTC. Η CrowdStrike προωθεί το Channel File 291 σε κάθε αισθητήρα Falcon. Εβδομήντα οκτώ λεπτά αργότερα το αποσύρουν· μέχρι τότε αεροπορικές εταιρείες, νοσοκομεία και τράπεζες κοιτάζουν το ίδιο μπλε ορθογώνιο. Η πρώτη ανάρτηση του CEO λέει ότι δεν είναι κυβερνοεπίθεση, αλήθεια, και δεν είναι το ζήτημα. Πώς συμβαίνει, γιατί είναι δυνατό, και ποιος φταίει.
0:27 Αυτό είναι το The Daily Diff, postmortem. 28 Φεβρουαρίου. Ο αισθητήρας 7.11 αποστέλλει έναν νέο ανιχνευτή για ονομαστικούς αγωγούς. Δηλώνει είκοσι ένα πεδία εισόδου· ο κώδικας που το τροφοδοτεί δημιουργεί έναν πίνακα είκοσι. Κανείς δεν παρατηρεί: για τέσσερις μήνες κάθε κανόνας αφήνει το πεδίο είκοσι ένα ως "wildcard", και κανείς δεν διαβάζει ένα "wildcard". Ένα stress test περνάει, τέσσερις κανόνες αποστέλλονται, όλα καλά. 19 Ιουλίου, 04:09. Δύο νέοι κανόνες· ο ένας βάζει ένα πραγματικό μοτίβο στο πεδίο είκοσι ένα.
0:51 Ο cloud validator μετρά είκοσι ένα έναντι της δήλωσης και λέει εντάξει. Κάθε ενεργός κεντρικός υπολογιστής Windows το κατεβάζει αμέσως, επειδή δεν υπάρχει δακτύλιος canary. Ο αισθητήρας διαβάζει τη θύρα είκοσι ένα, η οποία δεν είναι η μνήμη του, και ο πυρήνας κάνει ό,τι κάνουν οι πυρήνες. 05:27, αναστράφηκε. Πολύ αργά για όποιον επανεκκίνησε: ο οδηγός φορτώνεται νωρίς στην εκκίνηση, διαβάζει το ίδιο αρχείο, και "κρασάρει" ξανά. Boot loop. Γιατί είναι αυτό δυνατό; Οι κανόνες είναι διαμόρφωση που προωθείται από το cloud, οπότε ο κώδικας δεν παρακάμπτει την κωδική
1:16 διαδικασία. Ο διερμηνέας δεν έχει έλεγχο ορίων· εμπιστεύεται τον επικυρωτή, και ο επικυρωτής εμπιστεύεται τη δήλωση. Και όλα αυτά τρέχουν σε λειτουργία πυρήνα, όπου ένας κακός δείκτης δεν είναι εξαίρεση αλλά ένα σφάλμα σελίδας που τα Windows λένε ότι δεν μπορεί να προστατευθεί με try-except. Ο Patrick Wardle το διαβάζει από ένα crash dump εκείνο το απόγευμα: δείκτης μηδέν x δεκατέσσερα, θύρα είκοσι ένα. Η επιδιόρθωση είναι χειροκίνητη. Ασφαλής λειτουργία, διαγραφή 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: τεσσερισήμισι χιλιάδες πόντους. Η ειρωνεία: μια ενημέρωση που προοριζόταν να ανιχνεύσει νέες τεχνικές επίθεσης δημιούργησε μία. Ετυμηγορία, postmortem: SHIP IT, οριακά.
2:27 Έλεγχος ορίων σε έξι ημέρες, σταδιακοί δακτύλιοι, έλεγχος πελάτη για ενημερώσεις περιεχομένου, δύο εξωτερικές αναθεωρήσεις. Οριακά, γιατί όλα αυτά ήταν ήδη κοινή πρακτική. Δευτέρα: ό,τι τραβάει ο πράκτοράς σας από το cloud παίρνει έναν δακτύλιο canary. Η διαμόρφωση είναι κώδικας τη στιγμή που κάτι την αναλύει εκεί που δεν μπορεί να "πετάξει" εξαίρεση. Στείλτε μου το περιστατικό για το οποίο ακόμα δεν σας επιτρέπεται να μιλήσετε, στα σχόλια, ή στο 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



