+− THE DAILY DIFFdev & AI news
SHIP IT

Un champ supplémentaire a planté 8,5 millions de PC. 78 minutes.

19 juillet 2024, 04:09 UTC : CrowdStrike déploie le fichier de canal 291 — une mise à jour de contenu de Réponse Rapide — sur chaque capteur Windows Falcon en ligne.

19 juillet 2024, 04:09 UTC : CrowdStrike déploie le fichier de canal 291 — une mise à jour de contenu de Réponse Rapide — sur chaque capteur Windows Falcon en ligne. Le modèle qu'il alimente a été déclaré avec 21 champs d'entrée en février ; le code qui fournit les entrées construit un tableau de 20. Pendant quatre mois, rien ne lit le champ 21, car chaque règle le laisse comme un caractère générique. Cette mise à jour y place un véritable motif. Le validateur de contenu côté cloud en compte 21 par rapport à la déclaration et le valide ; l'interprète de contenu du capteur, sans vérification des limites, lit l'emplacement 21 en mode noyau et Windows provoque des erreurs de page : PAGE_FAULT_IN_NONPAGED_AREA, csagent.sys. Le pilote se charge tôt au démarrage intentionnellement, lit le même fichier, plante à nouveau — boucle de démarrage. Annulé à 05:27 UTC, 78 minutes plus tard, mais 8,5 millions de machines (estimation de Microsoft, moins de 1 % de Windows) ont déjà le fichier, et la solution est un humain à chaque clavier : Mode sans échec, supprimer C-00000291*.sys, clé de récupération BitLocker. Les compagnies aériennes, les hôpitaux, les banques et les centres 911 s'arrêtent ; Delta annule environ 7 000 vols et réclame au moins 500 millions de dollars à CrowdStrike et Microsoft ; Parametrix estime la facture pour le Fortune 500 à près de 5,4 milliards de dollars. Postmortem de l'Analyse des Causes Fondamentales de CrowdStrike, de la Revue Préliminaire Post-Incident, du blog de Microsoft, du rapport 8-K de Delta et du témoignage de la Chambre. Attribution Git : 65 CrowdStrike / 25 la conception en mode noyau / 10 le vendredi. Verdict sur la correction : SHIP IT, de justesse.

Lire l'édition écrite (anglais) ↗

Ce que cette vidéo couvre

  • 28 février – 24 avril 2024 : le capteur 7.11 livre le Type de Modèle IPC (21 champs déclarés, 20 fournis) ; le test de stress passe le 5 mars ; quatre instances fonctionnent car le champ 21 est un caractère générique
  • 19 juillet, 04:09 UTC : deux nouvelles Instances de Modèle ; l'erreur logique du Validateur de Contenu laisse passer celle sans caractère générique ; lecture hors limites dans le noyau ; 05:27 UTC annulé
  • 19-29 juillet : remédiation manuelle (Mode sans échec, suppression du fichier, clé BitLocker) ; environ 97 % des capteurs rétablis au 24 juillet, environ 99 % au 29 juillet
  • 25 juillet – 19 août : vérification des limites à l'exécution, validation du nombre de champs à la compilation, vérifications du Validateur, anneaux canaris + de déploiement, contrôle client sur le Contenu de Réponse Rapide, deux revues indépendantes ; RCA complet avec dump de crash le 6 août

Transcription traduite

Traduit de la narration originale en anglais. L'audio et les sous-titres disponibles sont contrôlés par YouTube.

0:00 Une mise à jour de sécurité transmet vingt et un champs à un pilote conçu pour vingt, et huit millions et demi de machines Windows affichent un écran bleu avant le petit-déjeuner. 19 juillet 2024, 04:09 UTC. CrowdStrike pousse le fichier de canal 291 vers chaque capteur Falcon. Soixante-dix-huit minutes plus tard, ils le retirent ; d'ici là, les compagnies aériennes, les hôpitaux et les banques fixent le même rectangle bleu. Le premier message du PDG dit qu'il ne s'agit pas d'une cyberattaque, c'est vrai, et ce n'est pas le propos. Comment cela se passe, pourquoi c'est possible, et qui en est responsable.

0:27 C'est The Daily Diff, postmortem. 28 février. Le capteur 7.11 livre un nouveau détecteur pour les tubes nommés. Il déclare vingt et un champs d'entrée ; le code qui l'alimente construit un tableau de vingt. Personne ne le remarque : pendant quatre mois, chaque règle laisse le champ vingt et un comme un caractère générique, et personne ne lit un caractère générique. Un test de stress passe, quatre règles sont livrées, tout va bien. 19 juillet, 04:09. Deux nouvelles règles ; l'une place un véritable motif dans le champ vingt et un.

0:51 Le validateur cloud compte vingt et un par rapport à la déclaration et dit que c'est bon. Chaque hôte Windows en ligne le télécharge immédiatement, car il n'y a pas d'anneau canari. Le capteur lit l'emplacement vingt et un, qui n'est pas sa mémoire, et le noyau fait ce que les noyaux font. 05:27, annulé. Trop tard pour quiconque a redémarré : le pilote se charge tôt au démarrage, lit le même fichier, et plante à nouveau. Boucle de démarrage. Pourquoi est-ce possible ? Les règles sont une configuration poussée depuis le cloud, donc le code ne contourne pas le pipeline

1:16 de code. L'interprète n'a pas de vérification des limites ; il fait confiance au validateur, et le validateur fait confiance à la déclaration. Et tout cela s'exécute en mode noyau, où un mauvais pointeur n'est pas une exception mais une erreur de page que Windows déclare ne pas pouvoir être protégée par try-except. Patrick Wardle le lit à partir d'un dump de crash cet après-midi-là : index zéro x quatorze, emplacement vingt et un. La correction est manuelle. Mode sans échec, supprimer C-00000291, redémarrer. Avec BitLocker, tapez d'abord une clé de récupération

1:43 à quarante-huit chiffres qui se trouve sur un serveur qui est aussi bleu. Attribution Git. CrowdStrike, soixante-cinq pour cent : le RCA répertorie six constatations, et la constatation six est une phrase complète : Les Instances de Modèle devraient avoir un déploiement étagé. La conception en mode noyau, vingt-cinq : CrowdStrike dit que Windows ne peut pas encore héberger la sécurité en dehors du noyau, Microsoft dit que ce n'est pas un incident Microsoft, et l'erreur de page s'en moque.

2:05 Le vendredi, dix. Le message de commit dit que ce n'est pas du code. Rayon d'action : huit millions et demi d'appareils, moins d'un pour cent de Windows. Delta annule sept mille vols et poursuit pour cinq cents millions, Microsoft inclus. Les assureurs estiment la facture pour le Fortune 500 à près de cinq milliards. Hacker News : quarante-cinq cents points. L'ironie : une mise à jour destinée à détecter de nouvelles techniques d'attaque en a livré une. Verdict, postmortem : SHIP IT, de justesse.

2:27 Vérification des limites en six jours, anneaux étagés, contrôle client sur les mises à jour de contenu, deux revues externes. De justesse, car tout cela était déjà une pratique courante. Lundi : tout ce que votre agent tire du cloud passe par un anneau canari. La configuration est du code dès l'instant où quelque chose l'analyse là où il ne peut pas échouer. Envoyez-moi l'incident dont vous n'avez toujours pas le droit de parler, dans les commentaires, ou à the daily diff dot dev. Et c'est le diff pour aujourd'hui.

2:48 Je suis Niko d'Axrisi. Fusionnez de manière responsable.

Sources

  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

Vidéos similaires