Ces dernières années, le nombre de vulnérabilités et d'expositions communes (CVE) signalées n'a cessé d'augmenter. Rien qu'au premier semestre 2024, 22 254 CVE ont été signalées, soit 30 % de plus que les 17 114 CVE enregistrées en 2023. Comme ces vulnérabilités, si elles sont exploitées, ont des conséquences financières et réputationnelles néfastes, les entreprises n'ont qu'une seule option : corriger rapidement les vulnérabilités. Mais cela est plus facile à dire qu'à faire. Parfois, avec les systèmes hérités, il est tout simplement impossible de mettre à niveau les versions vulnérables vers des versions plus récentes contenant les correctifs de sécurité. C'est là que le backporting entre en jeu.
Imaginez que vous possédez depuis des années une voiture ancienne. Soudain, son moteur et ses roues commencent à faire des siennes. Malheureusement, comme il s'agit d'un modèle très ancien, vous ne trouvez pas les pièces de rechange. Mais vous ne souhaitez pas non plus remplacer votre voiture par un modèle plus récent. Vous demandez donc à votre mécanicien de récupérer des pièces compatibles sur un modèle récent et de les installer sur votre voiture ancienne. Problème résolu !Le backporting est similaire à cela ; il s'agit de rétro-adapter des correctifs provenant de la version la plus récente d'un logiciel afin de corriger des problèmes dans des systèmes hérités. Dans cet article, nous explorons le backporting, en mettant en avant son importance, ses cas d'utilisation, les vulnérabilités associées et les meilleures pratiques.
Qu'est-ce que le backporting ?
Le backporting consiste à prendre les correctifs de sécurité ou les nouvelles fonctionnalités introduites dans les versions plus récentes d'un logiciel et à les porter vers les versions plus anciennes.
Pourquoi le backporting est-il important ? Élément central de la gestion des vulnérabilités, le backporting devient une nécessité lorsque la mise à niveau des versions vulnérables d'un logiciel pose problème.
Prenons un exemple concret : Red Hat a commercialisé Red Hat Linux 8.0. utilisant le serveur HTTP Apache version 2.0.40. Peu après, des vulnérabilités de sécurité ont été découvertes dans l'ancienne version d'Apache, et une nouvelle version, la 2.0.43, a été publiée.
Si la nouvelle version corrigeait ces bogues, elle contenait également des modifications de code qui rendaient le logiciel en amont incompatible avec de nombreux déploiements en aval qui en dépendaient. Ainsi, plutôt que d'appliquer la nouvelle version dans son intégralité, Red Hat a rétroporté le correctif en prenant les extraits de code pertinents et en les modifiant pour les adapter à l'ancienne version.
Essentiellement, le rétroportage signifie que vous accédez et modifiez vous-même le code source d'une version logicielle, ou que vous obtenez une version en amont rétroportée auprès de votre distributeur de logiciels—par exemple, l'exemple Red Hat ci-dessus. Voici quelques scénarios courants de rétroportage :
- Systèmes hérités : Les entreprises qui dépendent de logiciels hérités sont confrontées à un défi unique : les systèmes existants sont souvent incompatibles avec les dernières mises à jour. Le backporting résout ce problème en corrigeant les problèmes de performances et de sécurité des systèmes hérités sans nécessiter de remplacement complet ou de refonte.
- Conformité réglementaire : Pour les organisations qui traitent des informations médicales protégées (PHI), des informations de cartes de paiement (PCI) et des informations personnelles identifiables (PII) de leurs clients, la protection des données sensibles conformément aux normes réglementaires telles que HIPAA, GDPR et PCI DSS est une priorité. Le backporting permet à ces entreprises de répondre aux exigences de conformité sans avoir à se soucier de la gestion des versions logicielles.
- Contraintes en matière de ressources : Lorsque les mises à niveau auraient nécessité des ressources humaines, financières et système importantes que de nombreuses entreprises ne peuvent tout simplement pas se permettre, le backporting offre une alternative économe en ressources.
Différences entre le backporting, le patching et la mise à niveau
Le backporting, le patching et la mise à niveau sont des concepts analogues, qui remplissent des fonctions similaires mais par des méthodes différentes. Voici un aperçu de leurs différences.
| Paramètres | Backporting | Patching | Mise à niveau |
|---|---|---|---|
| Fonction | Réintègre les correctifs critiques des nouvelles versions logicielles dans les anciennes | Applique des correctifs de sécurité aux versions logicielles actuelles afin de résoudre des vulnérabilités isolées | Passe d'une ancienne version du logiciel à une nouvelle, dotée de fonctionnalités améliorées et de correctifs de sécurité |
| Objectif | Vise principalement à corriger les problèmes de sécurité | Corrige les problèmes de sécurité et de performances | Apporte des améliorations globales |
| Défi | Nécessite une expertise technique approfondie | Peut entraîner une instabilité ou introduire de nouveaux risques s'il n'est pas correctement testé | Peut entraîner des problèmes de compatibilité avec les logiciels en aval |
Comment fonctionne le backporting ?
Le processus de rétroportage comprend une série d'étapes :
Étape 1 : Identifiez la vulnérabilité pour laquelle vous souhaitez rétroporter des correctifs de sécurité. Cela peut se faire par le biais de contrôles de sécurité effectués par des équipes internes ou d'avis de sécurité publiés sur Internet.
Étape 2 : Trouvez la nouvelle version du logiciel qui corrige le problème.
Étape 3 : Isolez le correctif des autres modifications apportées à la nouvelle version du logiciel en extrayant les extraits de code nécessaires.
Étape 4 : Adaptez la correction isolée à l'ancien système.
Étape 5 : Testez dans un environnement contrôlé pour vous assurer que cela corrige réellement la vulnérabilité, sans introduire de problèmes de performances ou de sécurité, ni d'autres effets indésirables, tels que la modification des fonctionnalités précédentes.
Étape 6 : Rétroportez les correctifs vers l'ancien système, mettez-les en production et surveillez-les en permanence.
Vulnérabilités associées au rétroportage
Bien que le backporting offre une bouée de sauvetage cruciale aux organisations qui ne peuvent pas mettre à niveau certains logiciels, il n'est pas sans risques. L'un des principaux risques du backporting est que les anciens systèmes peuvent ne pas prendre en charge nativement les nouveaux cadres de sécurité. Ainsi, les correctifs backportés peuvent finir par introduire des vulnérabilités de backporting alors que vous essayez de corriger d'autres vulnérabilités.
Que sont les vulnérabilités de rétroportage ?
Les vulnérabilités de rétroportage sont des risques qui découlent de l'adaptation de correctifs de sécurité conçus pour les systèmes modernes à des versions plus anciennes, ce qui peut entraîner des effets secondaires imprévus.
Types de vulnérabilités de rétroportage
Lorsqu'il existe des différences majeures en termes d'architecture ou de dépendances entre les nouvelles et les anciennes versions d'un logiciel, le rétroportage peut introduire les types de vulnérabilités suivants :
1. Vulnérabilités de sécurité
Les correctifs de sécurité dans les nouvelles versions des logiciels reposent souvent sur des paradigmes de sécurité qui n'existent pas dans les anciennes versions. Si vous rétroportez ces correctifs, vous devez vous méfier de l'introduction de nouvelles vulnérabilités de rétroportage ou du traitement inapproprié des anciennes.
Par exemple, Microsoft a récemment publié une mise à jour pour une vulnérabilité d'exécution de code à distance (RCE) .NET (CVE-2024-38229). Bien qu'efficace dans les systèmes .NET 8.0 et 9.0, cette mise à jour, si elle est rétroportée vers .NET 6.0, peut ne pas avoir l'effet escompté. En effet, le flux HTTP/3, qui est au cœur de la vulnérabilité, n'est qu'expérimental dans la version 6.0.
2. Problèmes de compatibilité
Lors du portage, de nombreux composants doivent être pris en compte, notamment les dépendances, les API, les frameworks et les bibliothèques, les systèmes d'exploitation, les applications dérivées, etc. Compte tenu de cette longue liste, il devient difficile de garantir que les correctifs rétroportés s'intègrent parfaitement à tous les composants. Lorsque l'architecture des systèmes hérités est tout simplement incompatible avec les systèmes plus récents, des modifications importantes du correctif peuvent être nécessaires.
Par exemple, les versions logicielles plus récentes utilisent des kits de développement logiciel (SDK) modernes tels que Kubernetes qui peuvent être inexistants dans les logiciels hérités. Dans de tels cas, le backportage des correctifs nécessiterait que les développeurs réécrivent les extraits de code (contenant le correctif) ou installent des solutions de contournement complexes, qui doivent également être compatibles.
3. Dégradation des performances
Les versions plus récentes des logiciels sont souvent conçues pour offrir plus de rapidité et de sécurité, ce qui peut les rendre plus gourmandes en ressources. Le backporting de correctifs conçus de cette manière vers des systèmes plus anciens et plus lents peut surcharger la capacité de traitement des systèmes, entraînant des temps de réponse plus lents, des erreurs ou, pire encore, des plantages du système.
Risques associés au rétroportage des vulnérabilités
- Risques liés à la sécurité : Des correctifs rétroportés de manière inappropriée peuvent laisser des vulnérabilités non résolues ou en introduire de nouvelles.
- Risques opérationnels : L'allocation de ressources pour le backportage peut entraîner des temps d'arrêt ou des interruptions de service potentiels.
- Risques liés à la conformité : Un backportage inadéquat peut entraîner une non-conformité aux normes de sécurité.
Comment tester et valider les modifications rétroportées
Il est essentiel de tester et de valider les correctifs rétroportés avant leur livraison afin de garantir un processus de rétroportage sûr et efficace. Cela implique :
- Utiliser des solutions de gestion des vulnérabilités pour détecter les vulnérabilités que le processus de rétroportage n'a pas entièrement résolues.
- Utilisation de scanners de vulnérabilité pour s'assurer que le processus de rétroportage n'a pas introduit de nouvelles vulnérabilités.
- Utilisation d'outils de test de régression pour vérifier que les correctifs s'intègrent correctement sans nuire aux fonctionnalités existantes.
- Déployer des testeurs d'intrusion pour tester plus en détail les correctifs rétroportés afin de détecter d'éventuelles vulnérabilités de sécurité.
Défis du rétroportage
Bien que le backporting soit un moyen efficace de résoudre les vulnérabilités des systèmes hérités qui ne peuvent pas être facilement remplacés, les entreprises peuvent être confrontées aux défis suivants :
#1. Complexité
En cas de problèmes de compatibilité, le backporting nécessite une réécriture importante du code, ce qui est généralement un processus long, sans compter que les entreprises doivent faire appel à des ingénieurs hautement spécialisés et à des outils spécifiques.
#2. Risques non résolus
Même lorsqu'il est compatible, le backporting peut ne pas résoudre complètement le problème. Cela peut être le cas si la vulnérabilité réside dans la conception architecturale elle-même. Dans un tel cas, le backporting peut donner aux entreprises une illusion de sécurité jusqu'à ce que la vulnérabilité soit exploitée.
#3. Confusion dans la numérotation CVE
De nombreuses solutions de sécurité détectent les vulnérabilités uniquement en les corrélant aux numéros d'identification CVE dans les bases de données de vulnérabilités. Il est donc assez courant que ces outils continuent de signaler des versions logicielles comme vulnérables même après que le backporting ait complètement résolu la vulnérabilité, ce qui conduit à des faux positifs.
#4. Documentation insuffisante
Les organisations dépendent des fournisseurs de services pour les correctifs logiciels des systèmes d'exploitation, des frameworks, des bibliothèques, etc. Lorsque les mises à niveau ne sont pas possibles, ces fournisseurs effectuent des rétroportages de correctifs. Si cela n'est pas clairement documenté pour chaque correctif de sécurité publié, les utilisateurs peuvent supposer à tort qu'une mise à niveau a été effectuée plutôt qu'un rétroportage.
Il en va de même pour les processus de rétroportage internes peu documentés. Une documentation insuffisante laisse les utilisateurs perplexes quant à la raison pour laquelle ils disposent toujours d'une version plus ancienne après une " mise à jour ". Cela peut également entraîner des failles de sécurité si les utilisateurs n'appliquent pas correctement les modifications rétroportées.
Meilleures pratiques pour atténuer les vulnérabilités liées au rétroportage
Voici les 7 meilleures pratiques à mettre en œuvre pour un processus de rétroportage sans vulnérabilité.
- Évaluer les besoins en matière de rétroportage : Avant d'opter pour le rétroportage, assurez-vous qu'il s'agit de l'approche la plus efficace pour résoudre la vulnérabilité. Évaluez soigneusement les performances et la complexité opérationnelle que vous obtiendrez si vous choisissez le backporting ou la mise à niveau.
- Suivez des protocoles de test rigoureux : Testez minutieusement les correctifs rétroportés pour les vulnérabilités de sécurité et les problèmes de performances avant leur déploiement. Des tests rigoureux, dans des environnements contrôlés, garantissent que les vulnérabilités existantes sont résolues et que le processus de rétroportage n'en introduit pas de nouvelles.
- Réalisez des évaluations approfondies des risques : Assurez-vous que les avantages en termes de sécurité, d'exploitation et de conformité pour votre entreprise l'emportent largement sur les risques ou les défis potentiels liés au rétroportage.
- Conservez une documentation complète : Ceci est essentiel pour suivre les modifications rétroportées au fil du temps et créer des pistes d'audit de conformité détaillées. Cela est également crucial pour le débogage et l'analyse des causes profondes à l'avenir.
- Utilisez des systèmes de contrôle de version (VCS) : Les VCS tels que Git et Azure DevOps sont d'excellents outils pour suivre les modifications rétroportées et maintenir l'intégrité du code. Ils fournissent des historiques de versions qui s'avèrent utiles en cas de problèmes d'instabilité avec les versions rétroportées et s'il est nécessaire de revenir à une version stable précédente.
- Mettre en place des processus de gestion des changements : Cela implique de vérifier et d'examiner minutieusement les correctifs rétroportés avant leur livraison, d'appliquer les modifications rétroportées sans perturber les fonctions de l'application et de surveiller en permanence la pile informatique afin de détecter toute dégradation des performances ou tout autre problème potentiel après la mise en œuvre du rétroportage.
- Utiliser les bons outils : Les bons outils de gestion des vulnérabilités et de test de sécurité peuvent faire une énorme différence dans la fluidité de votre processus de rétroportage.
Cas d'utilisation courants du backporting
Le cas d'utilisation le plus courant du backporting concerne les logiciels hérités pour lesquels une mise à niveau complète est impossible. Cela est particulièrement fréquent dans les secteurs de la santé, de la finance et d'autres industries où les systèmes hérités sont essentiels aux opérations quotidiennes et où toute tentative de mise à niveau entraînerait des perturbations massives des services. Parmi les autres cas d'utilisation du backporting, on peut citer :
- La protection des systèmes de production critiques où la haute disponibilité est essentielle, par exemple les mainframes couramment utilisés par les banques pour gérer un trafic important et répondre à des besoins de traitement rapide des données
- La sécurisation des versions à support à long terme (LTS) des projets open source, par exemple le noyau Linux LTS, couramment utilisé par les fournisseurs de services cloud pour garantir la stabilité et faciliter la compatibilité des versions dans les environnements hybrides.
- Respect des exigences de conformité dans les secteurs hautement réglementés tels que la finance et la santé. Par exemple, en rétroportant des correctifs, les hôpitaux peuvent rester conformes aux lois sur la protection des données telles que la loi HIPAA, sans subir les perturbations considérables des services associées aux mises à niveau.
Une cybersécurité alimentée par l'IA
Améliorez votre posture de sécurité grâce à la détection en temps réel, à une réponse à la vitesse de la machine et à une visibilité totale de l'ensemble de votre environnement numérique.
Obtenir une démonstrationConclusion
Le backporting peut corriger de nombreux problèmes, mais peut également introduire de nouveaux défis. Vous serez en sécurité en utilisant une solution de surveillance des menaces basée sur l'IA pour traiter les vulnérabilités existantes ou potentielles qui pourraient apparaître. Vous pouvez rétroporter les correctifs de sécurité des versions plus récentes vers les versions plus anciennes afin de corriger les vulnérabilités sans provoquer de mises à niveau perturbatrices.
Un rétroportage réussi implique des tests approfondis, une documentation complète, une analyse correcte des risques et des outils de sécurité spécialisés pour faciliter le processus.
"FAQs
Le backporting consiste à isoler les correctifs de sécurité des versions récentes d'un logiciel et à les appliquer aux versions plus anciennes afin de résoudre les failles de sécurité critiques. La mise à niveau, quant à elle, consiste à déployer de nouvelles versions du logiciel contenant des correctifs de sécurité, des corrections de bogues, de nouvelles fonctionnalités et d'autres améliorations.
Les organisations doivent choisir le backporting plutôt que la mise à niveau lorsque les systèmes ont des exigences élevées en matière de disponibilité, lorsque les mises à niveau peuvent entraîner de graves problèmes d'incompatibilité ou lorsque les mises à niveau sont tout simplement trop longues et trop coûteuses en ressources pour être réalisables.
Les défis courants liés au backporting comprennent la complexité lorsque des modifications importantes sont nécessaires, des changements backportés mal documentés et des vulnérabilités mal résolues.
Les équipes de développement jouent un rôle important dans le backporting des vulnérabilités. Elles doivent tout d'abord, en collaboration avec les équipes de sécurité, identifier les vulnérabilités critiques dans les anciennes versions des logiciels. Les développeurs doivent ensuite isoler les corrections de code dans les nouvelles versions et les adapter aux anciens systèmes.
