19 juillet, jour où la Terre est devenue bleue. / Blogs / Perficient

Le 19 juillet 2024, la société de cybersécurité Grève de foule a effectué une mise à jour massive de son capteur CrowdStrike Falcon sur des millions d’ordinateurs dans le monde. Ces mises à jour sont utilisées pour aider à identifier de nouvelles menaces et à améliorer ses capacités de prévention des cyberattaques. Cette mise à niveau s’est avérée être une grave erreur, provoquant un crash majeur sur les systèmes Windows partout dans le monde.
Plongeons un peu sur le côté technique
Je ne suis pas un expert Windows mais Internet l’est plein d’eux et heureusement, il n’est pas si difficile de trouver des informations sur les raisons pour lesquelles cela s’est produit du point de vue de Windows.
Le noyau
Tous les systèmes d’exploitation ont quelque chose en commun, vous avez le espace utilisateur et espace noyau. L’espace utilisateur fait référence à tout ce qui s’exécute en dehors du noyau du système d’exploitation, essentiellement toutes les applications quotidiennes. Lorsqu’elles sont exécutées sur l’espace utilisateur, vous n’avez pas d’accès direct au matériel de l’ordinateur, y compris le processeur, la mémoire, etc. Les applications sont beaucoup plus limitées à ce qu’elles peuvent faire et à ce qu’elles peuvent accéder que tout ce qui s’exécute en mode noyau. Lorsqu’une application échoue, elle s’arrête simplement sans affecter les autres applications. Lorsque le noyau tombe en panne, tout le système tombe en panne.
Pilote de démarrage en mode noyau CrowdStrike
Le capteur CrowdStrike doit fonctionner en mode noyau pour pouvoir prévenir certaines menaces. Pour cette raison, CrowdStrike a créé un pilote signé comme étant sûr pour s’exécuter sur le noyau.
Comment le conducteur pouvait-il encore être considéré comme en sécurité alors que les changements se sont révélés si mortels ? Le conducteur lui-même n’a pas été modifié et était donc toujours signé numériquement comme étant sûr.
Signer le chauffeur signifie obtenir un Certificat Microsoft pour le conducteur. Obtenir ce certificat est une tâche non triviale qui prend du temps. Afin d’anticiper toute menace possible en mettant toujours à jour son capteur le plus rapidement possible, CrowdStrike a mis au point une stratégie permettant de mettre à jour ce que fait le pilote sans modifier le pilote lui-même.
Le pilote lit les fichiers externes contenant les informations nécessaires pour empêcher tout type de cyberattaque. Au lieu de mettre à jour le pilote, ce qui impliquerait d’obtenir un nouveau certificat, ils mettent à jour ces pilotes externes. canal des dossiers. En mettant à jour ces fichiers, ils n’ont pas besoin d’attendre un nouveau certificat et restent rapides dans leur travail pour assurer la sécurité des serveurs.
Étant donné que CrowdStrike veut s’assurer que son pilote est toujours chargé au démarrage du système, ils l’ont marqué comme pilote de démarrage. Cela signifie que le système ne peut pas démarrer sans le pilote. Que se passe-t-il si le pilote ne parvient pas à se charger ? Le système ne peut pas démarrer.
La mise à jour du 19 juillet 2024
Le 19 juillet 2024, CrowdStrike a déployé le téléchargement massif d’un nouveau canal déposer. Ce fichier provoquerait une défaillance du pilote (panique du noyau) et provoquerait un arrêt du système, avec le problème supplémentaire de ne pas pouvoir démarrer.
CrowdStrike a remarqué le problème et a envoyé une nouvelle mise à jour une heure plus tard, mais les ordinateurs déjà concernés ne recevraient pas la nouvelle version du fichier.
La solution? Accédez physiquement à l’ordinateur, démarrez en mode sans échec (cela charge un nombre très limité de pilotes) et supprimez le fichier.
Selon les personnes qui ont eu accès au fichier et l’ont examiné, le fichier ne contenait que des zéros. Ce n’est certainement pas le fichier que CrowdStrike souhaitait réellement déployer.
Tu as raison.
Plein de zéros au moins. pic.twitter.com/PJcCsUb9Vc
-christian_taillon (@christian_tail) 19 juillet 2024
Que peut-on faire pour éviter un nouveau 19 juillet ?
Tous ceux qui travaillent dans le secteur informatique savent que les bugs sont impossibles à éviter et sans connaissance interne du fonctionnement de CrowdStrike, il semble injuste de faire des commentaires sur leurs pratiques d’ingénierie ou leur qualité.
Cela ne m’empêche cependant pas de commenter comment je pense que le problème aurait pu être évité (c’est facile de parler avec le journal du lundi comme on dit en Uruguay)
- Assurez-vous de disposer d’un pipeline de déploiement comprenant des tests automatisés. Et assurez-vous que vos tests sont terminés. Le TDD est une bonne pratique pour y parvenir, ce n’est pas suffisant mais c’est un bon point de départ.
- Lorsque vous travaillez avec plusieurs systèmes, effectuez toujours les mises à jour de manière incrémentielle. C’est ce qu’on appelle le déploiement Canary et signifie d’abord déployer la mise à jour sur un petit pourcentage de systèmes. Assurez-vous que tout s’est passé comme prévu, puis continuez avec le reste. Si vous comptez mettre à jour des millions de systèmes, commencez par 1, puis 100, puis 1 000, etc…
- Évitez de faire des déploiements le vendredi. Vous voulez vous assurer que quelqu’un sera là pour résoudre tous les problèmes soulevés, principalement sur les environnements mondiaux.
- Assurez-vous que votre logiciel gère les erreurs avec élégance. Vous ne voulez pas qu’un contenu corrompu ou un fichier de configuration portant le bon nom fasse planter votre application.
Une question supplémentaire à laquelle nous pourrions peut-être répondre dans un autre article est la suivante : qu’auraient pu faire les clients de CrowdStrike pour empêcher que cela ne se produise ?
Source link