La ‘page bleue de la mort’ indique un échec catastrophique de Windows, un problème rencontré par de nombreux utilisateurs le 19 juillet 2024. Quelles en sont les raisons ?
David William Plummer, ancien ingénieur logiciel chez Microsoft et créateur du Gestionnaire de tâches Windows, a partagé une vidéo expliquant comment une mise à jour de CrowdStrike aurait pu provoquer l’arrêt de Windows.
Il a décrit CrowdStrike Falcon comme un logiciel anti-malware pour serveurs Windows, capable de « détecter proactivement de nouvelles attaques » et d’analyser le comportement des applications. Pour cela, CrowdStrike doit fonctionner en tant que pilote de périphérique au niveau du noyau.
Les pilotes de périphérique au niveau du noyau permettent généralement d’abstraire le matériel, comme les cartes graphiques, des applications. Lorsqu’ils s’exécutent, ils ont un accès complet à l’ordinateur et au système d’exploitation, fonctionnant à ce qu’on appelle le « Ring Zero ». Cela diffère du code d’application, qui s’exécute dans l’espace utilisateur du système d’exploitation, connu sous le nom de « Ring One ».
Comme l’indique Plummer, la différence réside dans le fait que lorsqu’une application utilisateur plante, cela ne devrait pas affecter le reste de l’ordinateur. En revanche, une erreur dans le code s’exécutant au niveau du Ring Zero est considérée comme si grave que le système d’exploitation s’arrête immédiatement, ce qui, dans le cas de Windows, entraîne la fameuse page bleue de la mort.
Plummer a déclaré : « Bien qu’il n’y ait pas de périphérique matériel avec lequel il communique réellement, en écrivant le code en tant que pilote de périphérique, CrowdStrike opère dans le Ring Zero du noyau et a un accès complet et sans restriction aux structures de données du système et aux services que CrowdStrike estime nécessaires pour accomplir sa tâche. »
Pilotes de périphérique certifiés
Plummer a souligné que Microsoft, tout comme CrowdStrike, est conscient des enjeux lorsque des logiciels exécutent du code en mode noyau, ajoutant : « C’est pourquoi Microsoft propose la certification WHQL [Windows Hardware Quality Labs]. »
Selon Plummer, cette certification oblige les fournisseurs de logiciels de pilotes de périphériques à tester leur code sur différentes plateformes et configurations système. Le code est ensuite signé numériquement par Microsoft, garantissant sa compatibilité avec le système d’exploitation Windows. Plummer a précisé que ce processus de certification permet aux utilisateurs de Windows d’avoir une confiance raisonnable dans la robustesse et la fiabilité du logiciel de pilote.
Cependant, la certification est trop lente pour garantir que des protections anti-malware comme CrowdStrike soient mises à jour chaque fois qu’une nouvelle menace apparaît. Plummer pense qu’il est plus probable que CrowdStrike publie fréquemment un fichier de définition traité par son pilote de noyau Windows. Cela contourne le processus de certification WHQL et permet aux utilisateurs d’accéder à la protection la plus récente.
Il a ajouté : « On peut déjà entrevoir le problème. Supposons un instant que le fichier de définition dynamique de CrowdStrike ne soit pas simplement une définition de malware, mais un programme complet écrit en pseudocode que le pilote peut ensuite exécuter. »
Il a expliqué que cela permettrait au pilote de CrowdStrike d’exécuter le fichier de définition comme du code s’exécutant dans le noyau Windows au Ring Zero, même si la mise à jour elle-même n’a jamais été signée. « Exécuter du p-code [pseudocode] dans le noyau est risqué au mieux et, au pire, cela demande des ennuis », a déclaré Plummer.
En examinant les rapports de crash publiés sur X (anciennement Twitter), Plummer a indiqué qu’une « référence de pointeur nul » avait entraîné le téléchargement d’un fichier vide contenant des zéros par le pilote de CrowdStrike, au lieu du pseudocode réel.
Il a ajouté : « Nous ne savons pas comment ni pourquoi cela s’est produit, mais ce que nous savons, c’est que le pilote CrowdStrike qui gère et traite ces mises à jour n’est pas très résilient et semble avoir une validation des erreurs et des paramètres insuffisante. »
Ces validations sont nécessaires pour garantir que les valeurs de données requises par le logiciel sont valides. Si ce n’est pas le cas, l’erreur ne devrait pas entraîner un crash complet du système, a précisé Plummer.
Bien qu’il soit souvent possible de redémarrer Windows à partir du dernier « état connu » fonctionnel, ce qui peut éliminer les pilotes de noyau indésirables empêchant le système d’exploitation de démarrer, Plummer a noté que la situation était aggravée par le fait que CrowdStrike est marqué comme un pilote de démarrage, ce qui signifie qu’il est nécessaire pour que Windows démarre correctement.
Bien qu’il soit encore trop tôt pour déterminer comment éviter que cela ne se reproduise, il est clair qu’il existe des limitations sérieuses dans la certification WHQL de Microsoft qui ont permis à CrowdStrike d’installer une mise à jour anti-malware ayant eu un impact dévastateur sur la communauté Windows.
En savoir plus sur les logiciels Microsoft Windows
-
Explication de l’interruption de CrowdStrike : Qu’est-ce qui a causé cela et quelles sont les prochaines étapes ?
-
Une mise à jour défectueuse de CrowdStrike déclenche une panne massive des systèmes informatiques
-
Chaos de la mise à jour de CrowdStrike : Ce que vous devez savoir
-
Okta : 4 clients compromis lors d’attaques d’ingénierie sociale