ClickCease Les multiples facettes du rapiéçage

La mise à jour de vos systèmes peut se faire de différentes manières, chacune avec ses avantages et ses inconvénients. Certaines méthodes dites de "patching" n'en sont même pas. Ce guide unique vous permettra de vous y retrouver parmi les différentes offres de correctifs disponibles sur le marché.

L'application de correctifs est à la fois un processus informatique et une pratique de sécurité fondamentale. Il est généralement décrit comme le processus de correction des problèmes ou d'ajout de fonctionnalités à un système donné en ajoutant ou en remplaçant les composants existants par des composants mis à jour. Cela peut se faire à différents niveaux, par exemple en mettant à jour le code au niveau du sous-système, de la dépendance ou de la fonctionnalité de base. De même, vous pouvez patcher des applications spécifiques, des systèmes d'exploitation, des pilotes ou tout autre composant.

Si l'objectif est toujours de disposer d'une version plus à jour de l'élément qui fait l'objet d'un correctif, la manière d'y parvenir est ce qui différencie les différentes approches en matière de correctifs. 

Comme d'autres termes de l'informatique, tels que le débogage, le patching dérive d'un processus physique. Il s'agissait de couvrir les trous dans les cartes perforées, c'est-à-dire de "patcher" une section du code. Ce procédé semble être tombé en désuétude, c'est pourquoi nous aborderons les approches les plus modernes.

Patching traditionnel

C'est ce que la plupart des gens appellent le patching. Il s'agit de télécharger des versions mises à jour d'un logiciel donné, puis de remplacer les fichiers correspondants sur le disque par les nouvelles versions.

Il est relativement simple à mettre en œuvre et à comprendre : vous avez une ancienne version d'un logiciel donné qui est remplacée par une nouvelle version, entièrement ou partiellement. Vous devez redémarrer l'application ou le système pour récupérer la nouvelle version, mais il n'y a pas d'autres parties mobiles. Bien entendu, c'est là que réside le plus grand inconvénient : le redémarrage d'applications ou de systèmes entiers est une opération lente qui perturbe considérablement la charge de travail en cours. Pour cette raison, ce n'est pas quelque chose qui peut être fait de manière ad-hoc, donc cela se fait généralement dans ce qu'on appelle une "fenêtre de maintenance", une période de temps pré-approuvée où l'on s'attend à ce que les systèmes aient des problèmes de disponibilité ou de performance. 

Encore une fois, ce système est lent à mettre en place et a tendance à dépasser les délais prévus en cas de problème.

Patching virtuel

Il s'agit de quelque chose qui porte le nom de "patching" et qui semble fournir des résultats de patching, à première vue, mais qui, en fait, opère à un niveau complètement différent. Il n'y a pas de remplacement ou de correction de code réel avec le patching virtuel. Il consiste à mettre en œuvre la détection des menaces au niveau du pare-feu, en bloquant les schémas d'attaque connus. Du point de vue de l'attaquant, l'attaque échoue, de sorte qu'il peut supposer que le système est patché alors qu'il ne l'est pas.

Cette méthode de "patching" présente plusieurs inconvénients : à aucun moment, le code corrigé n'est introduit dans les systèmes, car la protection ne couvre que les schémas d'attaque connus - ce qui ignore immédiatement les problèmes locaux et peut être trompé par des modifications du trafic réseau correspondant à une menace donnée. 

Si les inconvénients ne disqualifient pas immédiatement cette méthode de "patching", les avantages sont les suivants : aucune perturbation (puisque rien n'est fait à l'intérieur d'un système), un seul déploiement peut couvrir plusieurs systèmes (il s'agit en fait d'un processus de pare-feu applicatif modifié), et lorsque de nouvelles menaces à distance sont ajoutées, il protège immédiatement les systèmes qui se trouvent derrière lui.

Mise à jour des microprogrammes

La mise à jour des microprogrammes est un cas particulier de correctifs traditionnels, avec la particularité supplémentaire de corriger un code contenu dans un support de stockage généralement difficile à mettre à jour - directement dans une EPROM (mémoire morte programmable effaçable). C'était la norme pour les premiers appareils intelligents et les appareils IoT de première génération. Le logiciel était chargé en usine et ne recevait que rarement - voire jamais - de mises à jour. Cela s'explique en partie par le fait que la mise à jour et la sécurité n'étaient pas des préoccupations majeures comme elles le sont aujourd'hui, mais aussi par le fait que la façon dont le logiciel était stocké rendait sa mise à jour difficile. Sur les appareils plus récents, le code est entièrement ou partiellement écrit sur des supports plus standard, tels que les disques SSD, les cartes SD ou autres, qui sont beaucoup plus faciles à modifier.

Lorsque le code s'exécute sur des puces qui doivent être connectées à du matériel d'écriture spécialisé avec des exigences logicielles et des câbles propriétaires, cela ajoute une couche de complexité qui rend l'ensemble du processus très peu attrayant pour la plupart des équipes informatiques. En conséquence, ces appareils n'ont jamais été mis à jour pendant toute leur durée de vie. Malheureusement, il en existe encore beaucoup : les serveurs d'impression, les caméras IP et les capteurs des centres de données sont de bons exemples de dispositifs fonctionnant de cette manière.

Correctifs en temps réel

Le live patching est le processus de modification du code en cours d'exécution et de remplacement des sections ou fonctions boguées connues par des versions corrigées de ces mêmes sections. Cette opération s'effectue entièrement en mémoire et ne nécessite pas le redémarrage de l'application pour que les nouvelles modifications soient prises en compte. À un moment donné, le logiciel contient un bogue dans une fonction et, l'instant d'après, une version corrigée de cette fonction est utilisée à la place. 

Il n'y a pas de redémarrage, pas de redémarrage et pas d'interruption. De ce fait, les correctifs peuvent être déployés immédiatement, car l'opération ne nécessite pas de fenêtre de maintenance, ce qui permet de réagir plus rapidement aux menaces émergentes. Plutôt que d'attendre des semaines ou des mois avant qu'un correctif soit déployé, comme c'est le cas avec les correctifs traditionnels, cela peut maintenant se faire dans les heures, voire les minutes qui suivent la disponibilité d'un correctif.

La complexité supplémentaire du live patching se produit au moment de la création du patch. Le correctif doit être créé de manière à pouvoir être chargé dans le bon espace mémoire en utilisant les mêmes tailles de variables et les mêmes alignements que le code d'origine. Cette complexité est cachée aux utilisateurs d'une solution de live patching, car elle n'est visible que par le fournisseur de live patches.

Depuis plus de 10 ans, un sous-système de correctifs en direct permet de déployer des correctifs à l'intérieur du noyau Linux, et de nombreuses solutions différentes ont été créées. KernelCare Enterprise est un exemple d'une telle solution et peut appliquer des correctifs en direct au noyau Linux, aux bibliothèques système critiques, aux bases de données et même aux hyperviseurs.

Il existe de nombreuses variantes du live patching, notamment temporaire et permanent. Il s'agit de la manière dont le processus de "live patching" est mis en œuvre - soit comme une solution provisoire, soit comme une alternative plus permanente au "patching" traditionnel.

Conclusion

Vous pouvez trouver des informations comparatives sur le patching en direct et le patching virtuel iciet la différence entre le live patching permanent et le live patching temporaire ici.

Il existe de nombreuses façons d'aborder la question des correctifs. Pour toute organisation qui se préoccupe un tant soit peu de la sécurité de ses systèmes, de ses données et de ses utilisateurs, l'application de correctifs est l'une des préoccupations fondamentales qu'il convient d'aborder aux niveaux stratégique et opérationnel, et chaque environnement présente ses propres particularités. 

Résumé
Les multiples facettes du rapiéçage
Nom de l'article
Les multiples facettes du rapiéçage
Description
La mise à jour de vos systèmes peut se faire de différentes manières. Lisez ce guide unique pour comprendre les différentes offres de correctifs disponibles.
Auteur
Nom de l'éditeur
de TuxCare
Logo de l'éditeur

Vous cherchez à automatiser la correction des vulnérabilités sans redémarrage du noyau, sans interruption du système ou sans fenêtres de maintenance programmées ?

Table des matières

Obtenez les réponses à vos questions sur la sécurité des logiciels libres

Rejoignez notre bulletin d'information

Rejoignez plus de 4 500 professionnels de Linux et de l'Open Source!

2 fois par mois. Pas de spam.