La société de cybersécurité CrowdStrike a publié son analyse des causes profondes détaillant le crash de la mise à jour du logiciel Falcon Sensor qui a paralysé des millions d’appareils Windows dans le monde.
L’incident « Channel File 291 », tel que souligné à l’origine dans son examen préliminaire après incident (PIR), a été attribué à un problème de validation de contenu survenu après l’introduction d’un nouveau type de modèle pour permettre la visibilité et la détection de nouvelles techniques d’attaque qui abusent des canaux nommés et d’autres mécanismes de communication interprocessus Windows (IPC).
Plus précisément, il s’agit d’une mise à jour de contenu problématique déployée sur le cloud, la société la décrivant comme une « confluence » de plusieurs lacunes qui ont conduit à un crash – la plus importante d’entre elles est une incompatibilité entre les 21 entrées transmises au validateur de contenu via le type de modèle IPC par opposition aux 20 fournies à l’interpréteur de contenu.
CrowdStrike a déclaré que l’incompatibilité des paramètres n’a pas été découverte au cours de « plusieurs couches » du processus de test, en partie en raison de l’utilisation de critères de correspondance génériques pour la 21e entrée pendant les tests et dans les instances de modèle IPC initiales qui ont été livrées entre mars et avril 2024.
En d’autres termes, la nouvelle version du fichier de canal 291, publiée le 19 juillet 2024, a été la première instance de modèle IPC à utiliser le 21e champ de paramètre d’entrée. L’absence d’un cas de test spécifique pour les critères de correspondance non génériques dans le 21e champ signifiait que cela n’était signalé qu’après l’envoi du contenu de réponse rapide aux capteurs.
« Les capteurs qui ont reçu la nouvelle version du fichier de canal 291 contenant le contenu problématique ont été exposés à un problème de lecture hors limites latent dans l’interpréteur de contenu », a déclaré la société.
« Lors de la notification IPC suivante du système d’exploitation, les nouvelles instances de modèle IPC ont été évaluées, en spécifiant une comparaison avec la 21e valeur d’entrée. L’interpréteur de contenu n’attendait que 20 valeurs. Par conséquent, la tentative d’accès à la 21e valeur a produit une lecture de mémoire hors limites au-delà de la fin du tableau de données d’entrée et a entraîné un blocage du système. »
Outre la validation du nombre de champs d’entrée dans le type de modèle au moment de la compilation du capteur pour résoudre le problème, CrowdStrike a déclaré avoir également ajouté des vérifications des limites du tableau d’entrée d’exécution à l’interpréteur de contenu pour empêcher les lectures de mémoire hors limites et corrigé le nombre d’entrées fournies par le type de modèle IPC.
« La vérification des limites ajoutée empêche l’interpréteur de contenu d’effectuer un accès hors limites au tableau d’entrée et de faire planter le système », a-t-il noté. « La vérification supplémentaire ajoute une couche supplémentaire de validation d’exécution pour garantir que la taille du tableau d’entrée correspond au nombre d’entrées attendues par le contenu de réponse rapide. »
De plus, CrowdStrike a déclaré qu’il prévoyait d’augmenter la couverture des tests pendant le développement du type de modèle afin d’inclure des cas de test pour les critères de correspondance non génériques pour chaque champ dans tous les (futurs) types de modèles.
Certaines mises à jour des capteurs devraient également combler les lacunes suivantes :
- Le validateur de contenu est en cours de modification pour ajouter de nouvelles vérifications afin de garantir que le contenu des instances de modèle n’inclut pas de critères de correspondance qui correspondent à plus de champs que ceux fournis en entrée à l’interpréteur de contenu
- Le validateur de contenu est en cours de modification pour autoriser uniquement les critères de correspondance génériques dans le 21e champ, ce qui empêche l’accès hors limites dans les capteurs qui ne fournissent que 20 entrées
- Le système de configuration de contenu a été mis à jour avec de nouvelles procédures de test pour garantir que chaque nouvelle instance de modèle est testée, indépendamment du fait que l’instance de modèle initiale est testée avec le type de modèle lors de la création
- Le système de configuration de contenu a été mis à jour avec des couches de déploiement supplémentaires et des contrôles d’acceptation
- La plateforme Falcon a été mise à jour pour offrir aux clients un contrôle accru sur la diffusion du contenu de réponse rapide
Enfin, CrowdStrike a indiqué avoir engagé deux fournisseurs de logiciels de sécurité indépendants pour procéder à un examen plus approfondi du code du capteur Falcon, tant pour la sécurité que pour l’assurance qualité. Il procède également à un examen indépendant du processus de qualité de bout en bout, du développement au déploiement.
L’entreprise s’est également engagée à travailler avec Microsoft alors que Windows introduit de nouvelles façons d’exécuter des fonctions de sécurité dans l’espace utilisateur au lieu de s’appuyer sur un pilote de noyau.
« Le pilote du noyau de CrowdStrike est chargé dès le début du démarrage du système pour permettre au capteur d’observer et de se défendre contre les logiciels malveillants qui se lancent avant le démarrage des processus en mode utilisateur », a-t-il déclaré.
« En fournissant un contenu de sécurité à jour (par exemple, le contenu de réponse rapide de CrowdStrike) à ces capacités du noyau, le capteur peut défendre les systèmes contre un paysage de menaces en évolution rapide sans apporter de modifications au code du noyau. Le contenu de réponse rapide est une donnée de configuration ; ce n’est pas du code ou un pilote de noyau. »
La publication de l’analyse des causes profondes intervient alors que Delta Air Lines dit elle n’a « pas d’autre choix » que de demander des dommages et intérêts à CrowdStrike et Microsoft pour avoir causé des perturbations massives et lui avoir coûté environ 500 millions de dollars en pertes de revenus et en coûts supplémentaires liés à des milliers de vols annulés.
CrowdStrike et Microsoft ont tous deux depuis a répondu aux critiques, affirmant qu’ils n’étaient pas responsables de la panne qui a duré plusieurs jours et que Delta avait décliné leurs offres d’assistance sur site, indiquant que les problèmes du transporteur pourraient être bien plus profonds que la panne de ses machines Windows en raison de la mise à jour de sécurité défectueuse.