Comment réduire les risques liés aux mises à jour de programmes

Dans cet article, nous vous présentons nos pratiques en matière de lancement de nouveaux produits et de mises à jour des versions existantes, afin de réduire le risque d’incidents à grande échelle.

Selon Microsoft, l’incident de l’écran bleu causé par une mise à jour de la solution de sécurité CrowdStrike Falcon a touché plus de 8,5 millions d’ordinateurs dans le monde. Cet incident a coûté cher à de nombreuses entreprises et a également suscité de nombreux débats, à savoir comment éviter que de telles situations ne se reproduisent.

Tout d’abord, n’importe qui peut être victime d’une erreur ; il est tout simplement impossible de garantir l’absence totale de bugs dans les systèmes logiciels complexes. En revanche, si les processus de développement, de test et de livraison de produits, ainsi que ceux de mises à jour sur les appareils des utilisateurs sont soigneusement structurés, on peut réduire considérablement le risque de défaillances graves. Nous avons mis en place un processus similaire depuis des années.

Nous avons connu des incidents directement liés aux mises à jour de nos produits. Mais nous n’avons pas rencontré de problème d’une telle ampleur depuis 2013. À la suite de cet incident désagréable, nous avons réalisé une analyse approfondie afin d’identifier la source du problème, ce qui a donné lieu à une révision complète de notre approche lorsqu’il s’agit de créer et de tester les mises à jour, qu’il s’agisse de produits destinés aux entreprises ou aux particuliers. Le système que nous avons instauré s’est avéré très fiable : en 11 ans, nous n’avons pas connu une seule défaillance d’une telle ampleur.

Nous ne cachons pas les mécanismes de mise à jour que nous avons développés et nous sommes prêts à les partager avec le secteur. Après tout, si nous n’échangeons pas librement les meilleures pratiques et solutions développées par les différentes entreprises, les progrès dans le secteur de la cybersécurité seront grandement entravés. Les tests à plusieurs niveaux, le déploiement progressif des mises à jour et la surveillance automatique des anomalies sont les principaux mécanismes de sauvegarde des mises à jour. Examinons-les en détail.

Les tests à plusieurs niveaux

Nos produits ont deux types de mises à jour : certaines servent à ajouter une nouvelle logique de détection alors que d’autres changent les fonctionnalités d’un produit spécifique. L’ajout de nouvelles fonctions peut éventuellement augmenter les risques, mais les mises à jour de la logique peuvent aussi parfois poser des problèmes. Il est donc essentiel de tester minutieusement ces deux types de mises à jour à plusieurs niveaux.

Vérifier les faux positifs

Lorsque nous créons et lançons des règles de détection (générées automatiquement ou rédigées par des analystes), nous les testons sur une vaste base de données d’objets légitimes (ou « propres ») : fichiers, pages web, modèles de comportement, etc. De cette manière, les faux positifs sont identifiés et filtrés. Notre collection d’objets légitimes, qu’il s’agisse de logiciels ou de ressources web propres, est vaste et constamment mise à jour. Toutes les règles créées sont testées sur cette base de données.

Cette collection est notamment alimentée par notre programme « Allowlist« , qui permet aux développeurs de logiciels (qu’il s’agisse de clients qui développent et utilisent leurs propres solutions ou de fournisseurs indépendants) de nous fournir leurs logiciels. Cela permet de réduire le nombre de faux positifs potentiels et le risque de classification incorrecte des logiciels.

D’autres méthodes sont utilisées pour obtenir des fichiers et des métadonnées : l’échange d’informations avec des partenaires technologiques, l’utilisation de notre Threat Intelligence Portal (portail de renseignement sur les menaces), etc. Au total, notre base de données d’objets légitimes contient des informations sur environ 7,2 milliards d’objets.

Tests sur les machines virtuelles

Les tests de mise à jour ne se limitent pas à la vérification des collections de fichiers. Si aucun problème n’est détecté lors de la première étape, tous les composants mis à jour subissent des tests automatiques à plusieurs niveaux sur des machines virtuelles avec diverses configurations de produits de sécurité, de logiciels et de systèmes d’exploitation. Divers scénarios sont exécutés selon nos produits, selon le fonctionnement des mécanismes de sécurité ou encore en imitant certaines actions typiques de l’utilisateur.

Dans le cas de scénarios sur les produits, on trouve une analyse complète du système de fichiers, le processus d’installation de la mise à jour du produit, le redémarrage après la mise à jour, etc. Cela nous permet de nous assurer que le produit fonctionne normalement après la mise à jour, qu’il ne se bloque pas et qu’il n’affecte pas la stabilité du système. Chaque mise à jour est soumise à ce contrôle.

Les scénarios utilisateur simulent un comportement humain typique sur un ordinateur : ouverture du navigateur, visite d’une page web, téléchargement d’un fichier ou lancement d’un programme. Cette vérification nous permet de nous assurer que le produit n’affecte pas négativement les performances de l’ordinateur, la vitesse de travail ou la stabilité.

Par ailleurs, la compatibilité des mises à jour avec les logiciels industriels (par exemple, les systèmes SCADA) est automatiquement testée. Tout impact négatif sur les solutions liées à ce domaine peut entraîner un arrêt inacceptable des processus de production et peut éventuellement provoquer des dommages financiers.

Contrôle de la qualité

En plus des contrôles susmentionnés, nous disposons également d’une équipe distincte chargée du contrôle de la qualité. Pas une seule mise à jour de produit n’est livrée à nos clients sans que nos experts n’aient confirmé qu’elle est prête. Si nécessaire, l’équipe ajuste et améliore constamment les processus de vérification et surveille l’apparition d’éventuels risques opérationnels.

Lancement progressif des mises à jour de technologies de protection

Nous sommes évidemment réalistes et admettons que tout ce système de contrôle à plusieurs niveaux pourrait ne pas suffire. Par exemple, certains logiciels tiers seront mis à jour en même temps que les nôtres, ce qui peut entraîner un conflit imprévu. En général, il est impossible de prévoir toutes les combinaisons de configuration des différents programmes et systèmes. Par conséquent, lorsque la mise à jour d’une fonctionnalité de solutions de sécurité est prête et approuvée, elle n’est pas envoyée à tous les ordinateurs de nos utilisateurs en même temps. Au lieu de cela, les mises à jour sont distribuées par phases.

Une mise à jour subit des tests préliminaires sur les machines de notre réseau avant d’être publiée sur les serveurs de mise à jour publics. Si aucun problème n’est détecté, la mise à jour est d’abord reçue par un très petit nombre d’utilisateurs sélectionnés au hasard. Si aucun problème ou défaillance ne se manifeste, le nombre d’ordinateurs recevant la mise à jour augmente progressivement à certains intervalles, et ainsi de suite jusqu’à ce que la mise à jour soit disponible pour tous les utilisateurs.

Surveillance automatique des anomalies

Que se passe-t-il si une mise à jour pose des problèmes ? Nous surveillons le comportement des solutions mises à jour en utilisant des données anonymes transmises volontairement par notre KSN, et nous interrompons rapidement la distribution des mises à jour si quelque chose ne va pas.

D’autre part, l’association de la surveillance automatique des anomalies avec la diffusion progressive des mises à jour fait qu’une erreur n’affecterait qu’un très petit nombre d’ordinateurs ; des dizaines, et non des millions ou même des milliers.

Test des mises à jour du côté client

Notre entreprise offre la possibilité de vérifier à nouveau les mises à jour reçues, mais cette fois-ci du côté du client, par le biais de la console de gestion Kaspersky Security Center.

Les administrateurs système du client peuvent créer un groupe de test isolé d’ordinateurs (ou de machines virtuelles) avec la configuration et les logiciels les plus couramment utilisés par le réseau de l’organisation, puis créer une tâche pour vérifier les mises à jour. Il est important d’identifier ce groupe de test comme étant la cible. Dans ce cas, toutes les mises à jour entrantes sont d’abord installées sur les machines de test, éprouvées en action, et ce n’est qu’après ce test qu’elles sont distribuées sur l’ensemble du réseau de l’entreprise. Consultez notre site web d’assistance techniquepour obtenir plus de renseignements sur la mise en place d’un tel contrôle.

Nous analysons minutieusement tous les problèmes liés aux mises à jour logicielles qui peuvent survenir, y compris ceux identifiés lors de tests préliminaires. Nous parvenons à comprendre les raisons de leur apparition et nous adoptons les mesures nécessaires pour qu’ils ne se reproduisent plus. Nous avons également mis en place une pratique qui consiste à identifier et à évaluer de manière proactive les risques d’éventuels problèmes et à les traiter de manière systématique. En agissant de cette façon tout au long de la vie de notre entreprise, nous avons pu mettre en place un système à plusieurs niveaux qui nous permet de réduire considérablement le risque d’apparition de nouveaux problèmes.

Bien entendu, nous ne pouvons pas expliquer en un seul article toutes les nuances de notre système d’analyse des mises à jour de produits à plusieurs niveaux. Toutefois, si ce sujet vous intéresse, nous sommes prêts à partager plus de détails. Seule une coopération ouverte entre tous les acteurs de la sécurité informatique peut créer une barrière efficace contre les actions des cybercriminels.

Conseils