Une mise à jour défectueuse du logiciel Falcon de CrowdStrike a provoqué une panne mondiale touchant plus de 8,5 millions d’utilisateurs de Microsoft. Cet incident a mis en lumière des problèmes fondamentaux dans la gestion de la qualité et la communication entre les équipes de développement et d’exploitation. Pour un développeur, avec un logiciel d'une telle criticité, un tel problème ne devrait pas être possible; la technologie permettant de le garantir existant déjà depuis des décennies.
Le 19 juillet 2024, une panne informatique mondiale a touché des entreprises, des aéroports et des médias à travers le monde. Environ 8,5 millions de systèmes Windows dans le monde se sont retrouvés en panne à la suite d'une mise à jour défectueuse de Falcon Sensor de CrowdStrike.
CrowdStrike propose des produits de sécurité contre les ransomwares, les malwares et l'internet presque exclusivement aux entreprises et aux grandes organisations. La panne généralisée a été liée à son logiciel de détection Falcon, qui est installé pour détecter les menaces et aider à les bloquer.
Sigi Goode, professeur de systèmes d'information à l'Australian National University, a déclaré que Falcon disposait d'un accès très privilégié. Il se situe au niveau du noyau de Windows. « Il est aussi proche que possible du moteur qui alimente le système d'exploitation », a déclaré le professeur Goode. « Le mode kernel observe en permanence ce que vous faites et écoute les requêtes des applications que vous utilisez, et les traite de manière transparente. »
CrowdStrike met constamment Falcon à jour. Le 19 juillet, l'entreprise a envoyé une mise à jour Rapid Response Content à certains hôtes Windows. Dans le RCA, CrowdStrike a parlé d'un « incident du canal 291 », au cours duquel une nouvelle capacité a été introduite dans les capteurs de Falcon.
Les capteurs sont comme « une voie d'accès aux preuves », qui indique le type d'activité suspecte à rechercher, a déclaré le professeur Goode. « Falcon examine une série de capteurs - une série d'indicateurs - pour voir si quelque chose ne va pas. »
Lorsque des mises à jour sont envoyées, il modifie l'emplacement ou le nombre de capteurs pour vérifier s'il y a une attaque potentielle.
Dans le cas présent, Falcon s'attendait à ce que la mise à jour comporte 20 champs de saisie, mais elle en comportait 21. Selon CrowdStrike, c'est cette « discordance de comptage » qui a provoqué la panne générale. « L'interpréteur de contenu ne s'attendait qu'à 20 valeurs », indique le rapport RCA. « Par conséquent, la tentative d'accès à la 21e valeur a produit une lecture de la mémoire hors limites au-delà de la fin du tableau de données d'entrée et a entraîné un plantage du système. »
Falcon étant étroitement intégré au cœur de Windows, sa défaillance a entraîné l'arrêt de l'ensemble du système et la survenue d'une panne de système (BSOD).
Le professeur Goode a déclaré que l'une des façons les plus courantes de compromettre un système consistait à inonder la mémoire. Il s'agit essentiellement de dire à l'ordinateur de chercher quelque chose « hors limites ».
En clair, selon le RCA, l'essentiel de ce qui s'est passé est un index hors limites, ce qui est un cas spécial de dépassement de mémoire tampon et considéré comme un comportement non défini en C++, le langage qui semble avoir été utilisé pour développer le système de Crowdstrike. Il s'agirait d'une erreur que les étudiants en programmation de première année apprennent à éviter.
Une situation qui n'aurait pas dû arriver, selon un développeur
Eduardo Bellani y va de son argumentation.
Selon lui, pour un logiciel d'une telle criticité, un tel problème ne devrait pas être possible. La technologie permettant de le garantir existe déjà depuis des décennies, comme le montre cette citation :
« ... nous pouvons continuer à ajouter des contrats au code jusqu'à ce que chaque sous-programme ait une spécification entièrement fonctionnelle. Nous entendons par là que chaque sous-programme possède une postcondition qui spécifie la valeur de chacune de ses sorties et une précondition nécessaire pour contraindre l'espace d'entrée. D'autres invariants de type peuvent également être ajoutés en plus de ceux déjà présents au niveau Gold. Une fois que l'implémentation a été complétée par rapport à cette spécification complète et que toutes les VCs générées par l'analyseur ont été prouvées, nous avons atteint le niveau Platine de l'assurance SPARK.
« En raison de l'effort supplémentaire qu'implique le développement de la spécification et de la preuve à ce niveau, le niveau Platine ne sera approprié que pour les applications les plus critiques. Cependant, il vaut la peine d'envisager une réduction des tests unitaires pour la vérification fonctionnelle si la preuve de niveau Platine a été atteinte, puisque nous savons que le programme retournera le résultat correct pour toutes les entrées, et pas seulement pour celles que nous avons pu tester. (Chapman et al. 2024) »
En outre, toutes les mesures techniques d'atténuation proposées se résument à boucher les trous. Mais la sécurité ne peut être obtenue de cette manière, elle doit être intégrée dans la conception, les outils et les langages utilisés dès le début d'une telle entreprise.
Annexe 1 : L'impact
Une panne informatique majeure a touché les services et les infrastructures du monde entier, notamment les secteurs de l'aviation, de la banque, des soins de santé et des services financiers.
La panne de CrowdStrike n'a pas seulement retardé les vols et rendu plus difficile la commande d'un café. Elle a également touché les cabinets médicaux et les hôpitaux, les services d'urgence 911, les systèmes d'enregistrement et de cartes-clés des hôtels, ainsi que les ordinateurs professionnels qui étaient en ligne et saisissaient les mises à jour au moment où la mise à jour défectueuse a été envoyée. En plus de fournir des correctifs pour les PC clients et les machines virtuelles hébergées dans son cloud Azure, Microsoft déclare travailler avec Google Cloud Platform, Amazon Web Services et « d'autres fournisseurs de nuages et parties prenantes » pour fournir des correctifs aux machines virtuelles Windows fonctionnant dans les clouds de ses concurrents.
Si les mises à jour de logiciels peuvent occasionnellement provoquer des perturbations, les incidents importants tels que l'événement CrowdStrike sont peu fréquents. Nous estimons actuellement que la mise à jour de CrowdStrike a affecté 8,5 millions d'appareils Windows, soit moins d'un pour cent de toutes les machines Windows. Bien que le pourcentage soit faible, les impacts économiques et sociétaux importants reflètent l'utilisation de CrowdStrike par des entreprises qui gèrent de nombreux services critiques.
Conclusion
CrowdStrike a rapidement déployé un correctif pour résoudre le problème, mais l’incident aurait pu être évité. Plusieurs experts qualifient cette erreur « d'embarrassante », car elle aurait pu être évitée avec des pratiques de programmation de base. Pour une entreprise de cybersécurité, c’est un rappel important : même les meilleures peuvent commettre des erreurs. La panne mondiale causée par un simple capteur non détecté souligne l’importance de la vigilance et de la rigueur dans le développement logiciel.
Source : Eduardo Bellani
Et vous ?
Que pensez-vous de l'argumentation d'Eduardo Bellani ?
Quelle est votre opinion sur la manière dont CrowdStrike a géré cette panne mondiale ? Certains soutiennent que l’entreprise aurait dû être plus proactive dans la détection et la résolution du problème. D’autres estiment que ces incidents sont inévitables et que CrowdStrike a réagi de manière appropriée.
Pensez-vous que les entreprises de cybersécurité devraient être tenues responsables de leurs erreurs ? Certains affirment que la confiance des utilisateurs est en jeu et que les entreprises doivent être plus transparentes. D’autres estiment que les erreurs font partie du processus de développement et que la responsabilité ne devrait pas être exagérée.
Comment pouvons-nous éviter de futures pannes similaires à l’avenir ? Quelles mesures devraient être prises pour renforcer la fiabilité des logiciels de sécurité ? Certains suggèrent des audits plus fréquents, tandis que d’autres mettent l’accent sur la formation et les meilleures pratiques.
Quel rôle joue la dépendance croissante à l’égard des technologies de sécurité tierces dans notre société ? L’incident de CrowdStrike soulève des questions sur notre dépendance à l’égard de ces solutions. Devrions-nous réduire cette dépendance ou investir davantage dans la recherche et le développement de solutions internes ?
« Avec un logiciel d'une telle importance, la panne de CrowdStrike n'aurait pas dû se produire » :
Un développeur note que la technologie permettant d'éviter ce type d'erreur existe depuis des décennies
« Avec un logiciel d'une telle importance, la panne de CrowdStrike n'aurait pas dû se produire » :
Un développeur note que la technologie permettant d'éviter ce type d'erreur existe depuis des décennies
Le , par Stéphane le calme
Une erreur dans cette actualité ? Signalez-nous-la !