Connexion
Abonnez-vous

Panne CrowdStrike : comment une simple mise à jour a-t-elle entrainé une telle pagaille ?

« C’est le stagiaire qui… »

Panne CrowdStrike : comment une simple mise à jour a-t-elle entrainé une telle pagaille ?

Photo de Igor Omilaev sur Unsplash

L’incident survenu chez CrowdStrike a entrainé un plantage d’un très grand nombre d’ordinateurs Windows. Comment en est-on arrivés là ? Il s’agit très probablement de la convergence de plusieurs facteurs techniques, que nous allons exposer.

Le 19 juillet à 17h59

Dans notre article, nous relations comment une mise à jour du logiciel Falcon Sensor de CrowdStrike avait provoqué une épidémie d’écrans bleus à travers le monde. La panne engendrée a touché de nombreux aéroports et autres structures.

Comment le déploiement d’une telle mise à jour a-t-elle été possible ? Pourquoi la mise à jour d’un produit de sécurité peut-elle aboutir à un plantage complet du système ?

Une question de privilèges

Sous Windows, comme sur n’importe quel autre système d’exploitation, il existe des niveaux de privilèges, basés sur un système d’anneaux concentriques (les fameux rings). Le ring 0 constitue l’espace noyau (ou kernel). Les privilèges y sont maximaux, de même que les performances. Dans son infrastructure, Microsoft a simplifié les autres niveaux depuis longtemps et n’en laisse aujourd’hui qu’un autre : le ring 3, l’espace utilisateur.

Dans les vieilles versions de Windows, de nombreux pilotes étaient en espace noyau. Aujourd’hui, le paysage a changé. L’évolution du framework de développement des pilotes a repoussé un nombre croissant de catégories vers le ring 3. Sous les actuels Windows 10 et 11, les pilotes en espace noyau sont beaucoup plus rares. Le cas le plus connu est le pilote graphique, pour des questions de performances.

L’autre exception est pour les logiciels de sécurité. On parle ici des antivirus et plus généralement des suites de sécurité. Ce type de produit surveille un certain nombre de processus. Pour le faire, ils utilisent le plus souvent un pilote en espace noyau, lui octroyant les privilèges nécessaires à une telle surveillance.

Mais puisqu’un grand pouvoir implique de grandes responsabilités, le plantage d’un pilote en espace noyau peut avoir des conséquences bien plus importantes que, disons, le pilote de votre souris USB. Vous avez déjà peut-être rencontré un clignotement soudain de l’écran sous Windows, le système vous avertissant qu’une panne du pilote graphique a été détectée. Le message indique que le pilote a été relancé. Parfois, le système n’y parvient pas et un écran bleu se produit.

Comme l’explique l’ingénieur Aurélien Chalot chez Orange Cyberdéfense, le fonctionnement est le même pour les EDR (Endpoint Detection and Response), auxquelles appartiennent les suites de sécurité. La proximité du pilote avec le noyau lui octroie privilèges et performances. Mais, en cas de plantage, c’est le noyau lui-même qui risque de partir avec l’eau du bain.

Un simple fichier de définition

Falcon Sensor de CrowdStrike possède bien un pilote en espace noyau, csagent.sys. C’est un agent responsable du cœur des fonctionnalités de surveillance. Il est alimenté très régulièrement par des fichiers de définition. Ceux-ci permettent de mettre à jour les capacités de détection des malwares de l’agent en lui donnant les moyens de les repérer par leur empreinte.

Falcon Sensor, comme toutes les autres solutions de sécurité, reçoit donc plusieurs types de mises à jour. Certaines concernent l’agent, d’autres, beaucoup plus fréquentes, les définitions. Or, c’est un fichier de définition qui a provoqué la vaste panne. Comment est-ce possible ?

Selon l’expert en cybersécurité Kevin Beaumont, qui a récupéré des fichiers incriminés, tout vient d’un problème de formatage. Le fichier de définition, lorsqu’il est interprété par le pilote, entraine un plantage de ce dernier qui, à son tour, entraine le noyau Windows avec lui. Les machines sous Linux et MacOS ne sont pas affectées.

Pour lui, une chose est sûre : « Il s'agira de l'incident "cyber" le plus important de tous les temps en termes d'impact, c’est juste un spoiler, tant la récupération est difficile ».

La question du processus de validation

Plus on en apprend sur les raisons techniques de l’incident, plus la question de la validation s’impose : comment une telle mise à jour a pu passer les tests de qualité (QA) et être validée pour déploiement ?

Car il faut constater l’ampleur de la panne. Au vu du nombre de machines concernées (au strict minimum des dizaines de milliers, partout dans le monde), on peut se demander comment un problème aussi important n’a pas été détecté durant la phase de test. À moins que celle-ci ait été particulièrement légère, voire inexistante.

C’est la question que se pose notamment l’ingénieur Maiko Bossuyt (MaikoB sur X). Il n’est pas le seul, le sujet revient régulièrement sur les réseaux sociaux. CrowdStrike n’a pour le moment rien dit.

Redémarrez 15 fois…

La question de la réparation, en revanche, pose toujours un gros problème. Microsoft, sur sa page de statut pour Azure, indique avoir reçu des retours de clients sur le plantage CrowdStrike qui touchait des machines virtuelles Windows ou Windows Server.

Dans le cas des machines virtuelles, les tâches peuvent être automatisées. Selon des clients, redémarrer les machines plusieurs fois (jusqu’à quinze !) donne de bons résultats.

Selon Maiko Bossuyt, avec qui nous nous sommes entretenus, l’explication est simple : le BSOD n’est pas forcément immédiat. Avec un peu de chance, Windows a le temps de se charger et Falcon Sensor de trouver la dernière mise à jour, qui corrige le tir. S’il parvient à la récupérer et l’installer, la machine est tirée d’affaire. « Ça se joue vraiment à quelques secondes », ajoute-t-il. L’opération est donc loin de réussir dans tous les cas

Malheureusement, les machines virtuelles ne sont pas les seules : les machines physiques (ordinateur et serveurs) sont également concernées. D’après les retours obtenus par Next, les PC Windows où le système est installé nativement sont aussi impactés.

… ou déplacez-vous (y compris en datacenter)

La réparation prend beaucoup plus de temps, car il faut intervenir physiquement sur chaque ordinateur et se déplacer dans les datacenters pour les serveurs Windows sans accès IPMI (ou autre). Dans le cadre d’organisations possédant des milliers de machines, l’opération risque de virer au cauchemar. Si BitLocker est actif, il faut en plus avoir la clé de restauration de chaque machine sous la main.

Enfin, précisons que ce n’est pas la première fois que le pilote de Falcon Sensor entraine des problèmes, même si aucun de cette ampleur. Sous Windows, on trouve des cas de plantage similaires en décembre dernier. En avril, on relevait des kernel panics sur Linux.

Commentaires (46)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar
Notre serveur d'identification est tombé, ben heureusement qu'on a le Support sur une plateforme cloud pour répondre aux clients. Par contre faire quoi que soit avec les outils internes c'était mort tout ce matin.

Crowdstrike est au début d'un sacré bordel...
votre avatar
J'ai déjà vu le cas où le support lui même était bloqué dehors à cause d'un serveur d'authentification tombé en panne en dehors des horaires de travail.
votre avatar
Sur des applications critiques les fichiers de définition passent sans contrôle à priori ?
votre avatar
Ce qui est encore plus drôle, c'est que le fichier impacté est juste... une suite de zéros: 42k d'octets nuls.

edit: après avoir vu plus de messages, il semble que c'est plutôt aléatoire en fait (mais le coup du "full zéro" est très drôle quand même)
votre avatar
Dans 4 ans, nous saurons si ce n'est pas un ingénieur de CrowdStrike payé par Wagner pour pousser un fichier foireux et fait à la vas-vite à la MEP.
votre avatar
free/net/openBSD, grands oubliés de ce nouveau jour ferié..
votre avatar
Bsoday !
votre avatar
ça n'a jamais été drôle CommitStrip, c'est du niveau des BD blagues de blondes. Vivement le strip de Flock qu'on se marre !
votre avatar
T'as vu ton pseudo et tu critiques commit strip :-D
votre avatar
roh, basse attaque, j'ai trouvé ce pseudo en utilisant ChatGPT4 avec le prompt "crée moi un pseudo super rigolo qui fasse consensus et politiquement correct".
votre avatar
j'ai trouvé ce pseudo en utilisant ChatGPT4
"est avec nous depuis le 6 décembre 2004"

Salut à toi, voyageur temporel
votre avatar
ou il a juste changé son pseudo (et oui, on peut :p)
votre avatar
Data Analyse :
4 smileys pour mon message / 20 pour cette réponse.
Il y a eu 5x plus de personnes qui n'ont pas compris la teneur de mon message (le prompt étant pourtant suffisamment révélateur) que de personnes d'une infinie intelligence ayant discerné toute la subtilité de mon prompt.
votre avatar
Oui, hâte d'avoir un Nième dessin de gros patron chauve tréméchan avec des billets qui sortent des poches et bien sûr des banquiers aux nez et doigts crochus
votre avatar
lo po compris (ou j'espère pas). C'est une accusation très discrète d'antisémitisme ?
votre avatar
Le fichier de définition, lorsqu’il est interprété par le pilote, entraine un plantage de ce dernier qui, à son tour, entraine le noyau Windows avec lui.
Ah... Le driver en mode noyau, vs le driver en mode utilisateur, vs les API/Hook du système.

Comme dit notre expert en cybersécurité, a trop vouloir durcir les protections on finit par mettre en péril la triade "Confidentialité, Intégrité et Disponibilité". C'est un équilibre subtil.

Ca va p-e inciter Ms a fournir un vrai "failsafe mode" sur windows, avec FS Read-Only pour le système et A/B.
Soyons fous.
votre avatar
Le hook noyau / eBPF est sensé être sûr (code exécuté dans une sandbox, et passé par un vérificateur), et d'ailleurs crowdstrike sur linux semble fonctionner ainsi. Donc a priori, plus safe que sous windows... sauf que même comme ça, ils parviennent à déclencher un kernel panic :ooo: (en théorie ça devrait pas)
cf red hat qui a eu un problème similaire en juin https://access.redhat.com/solutions/7068083 - un patch côté kernel a corrigé le vérificateur eBPF pour ça.
votre avatar
Parce que la partie montée peut être vérifiée/signée et tout c qu'on veut, les fichiers de paramétrage ne le sont pas.
Ce n'est pas "plus safe" que Windows: Windows vérifie des signatures - Linux vérifie au kernel et Windows externalise, c'est tout.
votre avatar
Non non, je maintiens, en théorie un programme eBPF ne peut pas kernel panic. Là, il l'a fait à cause d'un bug (désormais fixé) dans le vérificateur. [Edit: en réalité c'est le vérificateur qui a crashé à cause du programme, le programme lui-même n'ayant même pas été exécuté, si je suis bien] . Le programme eBPF peut éventuellement crasher, être buggé, etc. mais ça ne devrait pas affecter le noyau, ou du moins pas jusqu'au crash.

cf https://www.brendangregg.com/blog/2024-07-22/no-more-blue-fridays.html
The worst thing an eBPF program can do is to merely consume more resources than is desirable, such as CPU cycles and memory. eBPF cannot prevent developers writing poor code -- wasteful code -- but it will prevent serious issues that cause a system to crash.
votre avatar
Ca c'est vrai. Il est passé où le mode wimboot qui nous permettait de booter directement sur l'image ISO, en dur dans le disque, tout en chargeant "dynamiquement" les modifs passées dans le FS, un peu comme un fichier de modifs?
Ceci dit, avec le boot from VHD, c'est possible depuis Windows Vista: un Windows, un VHD, un disque de différence - et on peut charger plusieurs environnements, revenir à la config d'origine (le VHD), distribuer nue second VHD avec les dernières updates ... Hyper pratique sur des postes "invités"

Ceci dit, en général le mode récup de Windows se débrouille pas mal, mais dans ce cas précis, il ne détecte pas un problème de boot ou un pilote qui fait planter trop souvent, c'est bizarre.
votre avatar
Pourquoi la tâche de parsing du fichier de définition se fait-elle en mode noyau ?
Ne devraient être en ring 0 que les opérations qui requièrent absolument un ring 0, tout le reste des tâches devraient s'effectuer en ring 3. La base quoi ....
votre avatar
Pourquoi la tâche de parsing n'est pas capable de gérer correctement des données pourries ? C'est juste la moindre des choses de ne faire aucune confiance aux contenus des fichiers, particulièrement en mode noyau.
Le code noyau, c'est comme l'embarqué, pas le droit à l'erreur donc il faut tout blinder
votre avatar
Clairement.
Du mal à comprendre comment ça peut passer.
votre avatar
On va dire qu'on est sur de la sécu. Que ne pas avoir la conf correspond peut-être à une brèche. Sur ce sujet je leur laisse le bénéfice du doute.
votre avatar
Merci de détailler un peu ce qu'il s'est passé de manière claire et précise, car on lit vraiment pas mal de bêtises sur les sites grand public :/
votre avatar
J’avoue également avoir du mal à comprendre comment ça à passé la QA, et s’il y n’y en a pas comment c’est possible pour une si grosse boîte de se permettre de prendre autant de risque.

Une possibilité c’est que le processus QA soit plus léger avec les définitions qu’avec le code de l’agent, et qu’il y ai une faille dans la CD qui produit une défaillance après l’étape de contrôle qualité. Typiquement, la QA teste très peux les bugs issuent de la CD en tant que tel et donc une altération de fin de process pourrait passer sous les radars.
votre avatar
L’agent devrait être capable d’ignorer des fichiers mal fichus. C’est une source classique de vulnérabilités et un éditeur dans le domaine le sait forcément. On peut par exemple faire du fuzzing pour tester ça (en envoyant des données qui ressemblent à n’importe quoi).
votre avatar
C'est sur que disposer d'un labo offline qui dispose de sans des version système pris en charge, même lors des début de VirtualBox on pouvais le faire avec des CD gravés...

Il n'empêche que les cahiers des charges ne sont pas toujours très fournis ou à coté de la plaque.

Mais bon, toujours facile a dire après coup hein ?
votre avatar
La grande question est :
Est-ce vraiment bon de se fournir en solution de sécurité chez des acteurs uniquement B2B ?
Cela aurait pu arriver à un Avast, et consort.

Y'a de la méditation à faire de ce coté là.
votre avatar
Cela aurait pu arriver à un Avast
La nana d'Avast a trop fait faire d'arrêts cardiaques aux gentils geeks qui avaient laissé leurs HP à donf :D
votre avatar
Je me souviendrais toujours d'une fois où j'ai littéralement failli me pisser dessus à cause de ça.

C'était début des années 2000, je jouais à Silent Hill premier du nom genre à 2h du mat. Suspens à son paroxisme (c'était la première fois que j'y jouais ^^). J'étais dans l'école, le son à fond pour épier le moindre bruit.

Quand soudain...

VOTRE BASE DE DONNEES VIRALE A BIEN ETE MISE A JOUR
votre avatar
Moins d’un mois après https://www.thestack.technology/crowdstrike-bug-maxes-out-100-of-cpu-requires-windows-reboots/ (Ça a coûté combien de MW cette petite blague ?)
Vu le tarif du produit, ils ont quelques explications à donner sur le comment ils en sont arrivés là et ce qu’ils vont faire pour blinder le process (qui aurait déjà du l’être mais ils ont pris du carton et ça ne l’a pas fait).
votre avatar
Je n'ai jamais compris pourquoi sur une ferme de serveurs en réseaux fermés (incluant ports locaux), un AV ou pire un EDR était nécessaire. Or, j'ai des cas où des RSSI l'imposent sans expliquer comment et pourquoi c'est nécessaire, sachant qu'il y a un impact plus ou moins grand sur les perfs avec un agent qui passe son temps à tout scanner y compris les logs applicatifs qu'il ne sait pas interpréter. Ca ressemble parfois à du gros BS..
Là les RSSI feront moins les gourous quand même
votre avatar
Tu as la réponse: le RSSI l'impose, et pourquoi ? Car les normes l'imposent... (27001) il n'y a aucune réflexion derrière, même l'analyse de risque qui peut dire "on tolère pas d'AV sur serveurs car isolés, surface attaque réduite, etc..." Ben ça passe pas, il faut un AV partout...(voire EDR donc).
Sachant que la plupart des auditeurs ne sont pas techniques, donc ils voient EDR sur tout le parc ils sont content...
votre avatar
Je sais surtout que la norme est une façon d'imposer des produits. Quant aux auditeurs, je vais dire poliment que c'est une blague. Je leur reconnais néanmoins une très grande expertise dans les prez Powerpoint. Ile ne savent rien mais présentent ça joliment. :D
votre avatar
Et l'impact n'est pas que performance technique. Il est aussi financier quand un EDR est mal configuré.

Pour les entreprises qui consomment du Cloud, donc payé à l'usage, un EDR qui scanne des dossiers en permanence c'est autant d'actes de lecture sur des disques managés. Et la facture peut grimper trèèèèèès vite dans le cas de stockage objet.
votre avatar
Surtout qu'il y a souvent des SLA/SLOs a tenir aussi en terme de performances avec des impacts financiers à la clef..
votre avatar
Heureusement qu’on est chez Palo Alto dans ma Cogip
votre avatar
On l'a, c'est très mauvais. Des logiciels qu'on compile nous même sont pris pour des virus.
votre avatar
En parlant de truc mal formaté, rien de neuf ici… Je me rappelle fin des années 90, sur une HP 48G (calculatrice scientifique qui coûtait environ 200€ @ 2024-inflation, utilisée surtout en prépa), remplie de fonctions mathématiques.

Certaines fonctions avaient une parenthèse "(" dans le début de la fonction de maths de pré-affiché… Si on avait le malheur de finir l’expression avec un ], là c’était blocage complet et hard/factory reset (soit en une seconde seulement des heures évaporées à rentrer à la main toutes les formules de maths/physiques de 2 années de cours).

J’avais montré le bug à un camarade de classe sur sa HP, ben il n’avait pas aimé, mais alors vraiment pas du tout… le factory reset...
:mdr2:
.
votre avatar
tout le monde se souvient : en 2011, blackberry avait subi une lourde panne aussi :
en.wikipedia.org Wikipedia
des millions d'appareils touchés, pendant des heures.
le PDG avait carrément fait des excuses publiques sur youtube à l'époque.
pas mieux que bitdefender en l'année d'avant..
votre avatar
Merci Next pour le suivi de cette histoire.

Pour ma part, cela me rappelle l'histoire de Bitdefender qui prend tous les fichiers système pour un logiciel malveillant et les met en quarantaine. C'était il y a des lustres, et à l'époque cela concernait que les systèmes 64 bits (qui n'étaient pas encore majoritaires).

McAfee a eu aussi le coup il me semble.
votre avatar
En effet, McAfee a eu le même problême, fichier système reconnu comme une menace et paf, ça fait des chocapics...

On a eu de la chance au taf que la màj a été retardée par le firewall moisi de l'époque.
votre avatar
Et surtout pourquoi a-t-on mis un antivirus sur de simples terminaux où l'utilisateur ne peut rien faire d'autre que d'exécuter le programme prévu ou même parfois ne peut rien faire d'autre que lire ?
votre avatar
Ce n'est pas un antivirus.
votre avatar
un antivirus ou un EDR ne servent pas forcément QUE à se protéger du user (l'interface chaise clavier ;)), ça peut aussi servir à se protéger d'une attaque visant le terminal depuis le réseau (genre un virus réussi à accéder au terminal (via une faille quelquonque) et tente de s'exécuter pour compromettre le terminal...

Panne CrowdStrike : comment une simple mise à jour a-t-elle entrainé une telle pagaille ?

  • Une question de privilèges

  • Un simple fichier de définition

  • La question du processus de validation

  • Redémarrez 15 fois…

  • … ou déplacez-vous (y compris en datacenter)

Fermer