ClickCease Le guide ultime du logiciel Live Patching pour le noyau Linux - TuxCare

Table des matières

Rejoignez notre populaire bulletin d'information

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

2 fois par mois. Pas de spam.

Le guide ultime des logiciels de correction en direct du noyau Linux

Joao Correia

18 août 2022 - Évangéliste technique

Après la violation des données d'Equifax, qui a mis en évidence les conséquences des logiciels non corrigés, les administrateurs ont la tâche délicate de s'assurer que les derniers correctifs sont appliqués, en particulier sur les serveurs destinés au public, tout en réduisant les temps d'arrêt dus aux pannes et aux redémarrages potentiels. Il existe de nombreux outils de correction à code source ouvert, mais beaucoup d'entre eux obligent à redémarrer le serveur. Au lieu d'utiliser des méthodes de patchs open-source gourmandes en ressources, il est préférable d'opter pour le live patching sans redémarrage. Le live patching maintient le système à jour et le protège contre les dernières vulnérabilités tout en réduisant les temps d'arrêt dus au redémarrage des serveurs de production critiques.

Dans cet article, nous allons couvrir tout ce qu'il y a à savoir sur le live patching du noyau Linux et les façons dont il peut faire gagner du temps au personnel informatique. Que vous soyez novice ou expert en matière de live patching, nous nous assurerons que vous partez avec une compréhension complète de la manière dont le live patching peut aider votre organisation et la maintenir en conformité avec les dernières normes réglementaires.

L'histoire des correctifs en direct

Le premier exemple de correctifs en direct a été observé en 2008 lorsque Jeff Arnold, du MIT, a créé un système automatique permettant d'appliquer les correctifs de sécurité du noyau sans redémarrage. Il a nommé ce système Ksplice, qui a ensuite été racheté par Oracle. Arnold a créé cette solution après avoir constaté qu'il était difficile de mettre à jour les serveurs Linux du MIT sans affecter les étudiants. Alors qu'il attendait de mettre à jour un correctif, l'un des serveurs Linux d'Arnold a été compromis en raison d'un noyau non corrigé présentant des vulnérabilités connues.

Oracle a fini par fermer le code source en 2011, de sorte que les administrateurs n'avaient plus accès aux commodités du live patching. En raison des actions d'Oracle, les développeurs Linux ont été contraints de trouver des alternatives, et beaucoup d'entre eux ont développé leur propre logiciel de live patching. De nombreuses applications commerciales sont disponibles, et cette solution est désormais devenue un élément essentiel de l'administration de Linux et a permis de libérer du temps pour les équipes informatiques très occupées.

Que contient un correctif de noyau et comment est-il réalisé ?

Les mises à jour de tout logiciel, y compris Linux et d'autres systèmes d'exploitation, ne sont que des modifications de fichiers à partir d'une version de base. Un numéro de version est attribué à chaque mise à jour. Les changements importants se voient attribuer un nombre entier incrémenté tel que 1.x à 2.x. Les petits changements de correctifs peuvent ne changer que la valeur décimale telle que 1.1 à 1.2. L'examen de ces valeurs de version aidera les administrateurs à comprendre si les correctifs sont importants ou non, ce qui leur donnera une idée générale du temps nécessaire à l'application d'un correctif à un système.

Dans un patch de distribution Linux, une mise à jour est un fichier texte contenant les changements delta entre la version actuellement installée et les changements de fichiers de la nouvelle version. Linux utilise le programme diff pour identifier ces changements. Une fois le fichier texte créé, vous utilisez le programme patch pour appliquer les modifications et mettre à jour les fichiers du système d'exploitation.

A titre d'exemple d'une procédure de patch simple, supposons que vous ayez un programme avec un fichier nommé sample.c qui doit être patché vers la dernière version samplev20.c. La commande diff suivante va créer un fichier patch avec la dernière version 2.0 du programme :

diff -u sample.c samplev20.c > sampleupdate.patch

Avec le fichier patch créé, vous pouvez maintenant patcher le programme. La commande patch suivante appliquera la mise à jour :

patch < sampleupdate.patch

Avec les patchs Linux plus importants, les changements sont effectués sur la base d'une branche de code dans un référentiel central. La plupart des outils de correction tiers mentionnés dans la section "Trouver le meilleur logiciel de correction en direct" éliminent le besoin de commandes de correction manuelles telles que l'exemple ci-dessus, mais les étapes de base sont les mêmes.

Les correctifs de sécurité Linux font partie du quotidien des administrateurs. Ils sont légèrement moins fréquents que les autres correctifs, mais sont probablement les plus critiques de toutes les mises à jour. Les administrateurs doivent patcher le système d'exploitation dès que possible car les vulnérabilités sont rendues publiques pour les pirates qui développeront immédiatement des exploits contre les systèmes non patchés. En même temps, il s'agit d'une procédure délicate qui doit être effectuée de manière irréprochable, faute de quoi les erreurs entraînent des temps d'arrêt.

Il existe trois façons de mettre à jour votre système Linux, dont l'une peut être effectuée sans redémarrer le système. Nous avons déjà couvert tous les détails de ces trois méthodes, mais voici un résumé rapide du processus.

 

Appliquer des correctifs de sécurité au noyau Linux en utilisant la ligne de commande

L'utilisation de la ligne de commande est la manière la plus simple de le faire. La syntaxe de la commande Debian suivante met à jour le noyau :

sudo apt-get upgrade kernel
sudo reboot

La commande suivante met à jour Ubuntu :

sudo apt-get upgrade linux-image-generic
sudo reboot

Et, les commandes suivantes mettent à jour CentOS ou Red Hat Enterprise Linux (RHEL) :

sudo yum update kernel
sudo reboot

Les avantages de cette méthode sont qu'il s'agit d'une simple commande de deux lignes qui ne nécessite aucune installation tierce. L'inconvénient, comme vous pouvez le voir dans la commande, est que vous avez besoin d'un redémarrage. Avec cette méthode, votre serveur Linux critique sera indisponible pendant un certain temps, ce qui signifie qu'il doit être planifié et que les utilisateurs doivent être informés de cette indisponibilité.

 

Sauter le chargeur de démarrage en utilisant kexec

Linux a la capacité de sauter le chargeur de démarrage et la phase d'initialisation du matériel, ce qui réduit considérablement le temps nécessaire au redémarrage. Vous devez d'abord installer kexec, puis exécuter cet outil sur votre serveur. La commande suivante installe kexec dans Ubuntu et Debian :

sudo apt-get install kexec-tools

La commande suivante peut être utilisée sur CentOS/RHEL :

sudo yum install kexec-tools

Avec kexec installé, vous pouvez maintenant exécuter l'outil pour installer les correctifs en utilisant :

sudo yum update kernel
ou
sudo rpm -qa kernel

 

L'outil kexec affiche la dernière version en sortie. Les commandes suivantes installent les correctifs :

sudo kexec -l /boot/vmlinuz-3.10.0-862.3.2.el7.x86_64 
-initrd=/boot/initramfs-3.10.0-862.3.2.el7.x86_64.img 
-reuse-cmdline
sudo sync ; sudo umount -a ; sudo kexec -e

Après avoir installé les correctifs, vous devez toujours redémarrer. Les avantages de cette option sont un temps de redémarrage plus rapide, mais kexec nécessite beaucoup plus de saisie. Comme la plupart des administrateurs le savent, une erreur dans une option de ligne de commande peut entraîner des heures d'interruption de service. L'inconvénient de cette option est l'augmentation de la possibilité d'erreurs humaines.

Appliquer des correctifs de sécurité au noyau Linux Utiliser des outils tiers sans redémarrage

Les outils de correction Linux sans redémarrage éliminent tous les inconvénients des deux options précédentes. Le seul problème avec la plupart des options open-source sur le marché est que le patching est limité à une distribution spécifique. Passez à cette section pour voir une liste des meilleurs logiciels de correction en direct, avec les avantages et les inconvénients de chacun.

 

Qu'est-ce que le patching en direct et qu'est-ce que le logiciel de patching ?

Au lieu de créer manuellement un fichier de correctifs, les logiciels de correctifs s'occupent de tous les frais généraux à votre place. Ces programmes réduisent le temps nécessaire à l'application des correctifs et éliminent toutes les saisies susceptibles d'entraîner des erreurs humaines. L'application de correctifs en direct va encore plus loin et élimine la nécessité de redémarrer l'ordinateur, ce qui est un problème courant pour les administrateurs Linux.

Il est toujours difficile pour les administrateurs de déterminer le bon moment pour appliquer les correctifs. Il est essentiel que les mises à jour de sécurité soient appliquées immédiatement, mais les mises à jour de production ne peuvent pas être installées de manière désinvolte et négligente. Traditionnellement, les mises à jour nécessitent un redémarrage du système. Cela signifie un temps d'arrêt pour les clients et les employés qui doivent utiliser les applications fonctionnant sur le serveur. Avec le logiciel en tant que service (SaaS), les applications en nuage servent des utilisateurs dans le monde entier, de sorte qu'il n'y a pas d'heures de bureau non travaillées pour de nombreux administrateurs. Ce problème se pose pour de nombreuses applications Web destinées au public.

L'application de correctifs en direct permet aux administrateurs d'appliquer des correctifs aux serveurs Linux critiques sans redémarrage, ce qui signifie qu'il n'y a plus de temps d'arrêt. Pour voir un exemple de correctif en direct, lisez notre tutoriel sur le correctif en direct pour Oracle Enterprise Linux 7.

 

Trouver le meilleur logiciel de patchs en direct

Vous pourriez réinventer la roue et développer votre propre logiciel de live patching, mais la meilleure façon de passer rapidement à un processus sans redémarrage est d'utiliser des outils tiers. Vous trouverez ci-dessous une liste de logiciels de correction en temps réel, avec les avantages et les inconvénients de chacun d'entre eux.

 

Les outils suivants sont disponibles pour l'application de correctifs sans redémarrage :

  • Ksplice par Oracle (pour les mises à jour d'Oracle Linux, Ksplice Uptrack pour l'entreprise)
  • Kpatch par Red Hat (pour les mises à jour du noyau de RHEL et les mises à jour de CentOS)
  • Livepatch par Canonical (pour les mises à jour du noyau d'Ubuntu)
  • Kgraft par SUSE (pour les mises à jour SUSE uniquement)
  • KernelCare Enterprise (pour toutes les principales distributions Linux)

Notez que le dernier élément de la liste ci-dessus est disponible pour toutes les distributions Linux, c'est donc la meilleure option pour les mises à jour Linux sans redémarrage dans un environnement où plusieurs distributions fonctionnent en production.

Obtenez un essai GRATUIT de KernelCare Enterprise 

 

 

Kspliceksplice_logo

Comme mentionné précédemment, Ksplice est l'application originale de correction sans redémarrage. Aujourd'hui, elle est limitée aux distributions Oracle et Red Hat et nécessite une licence pour l'utiliser. Le seul avantage de ce logiciel est qu'il met automatiquement à jour Linux. Les commandes suivantes permettront de le déployer sur votre système Linux :

sudo wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
sudo sh install-uptrack-oc -autoinstall

 

 

Kpatcheb5c4d17e2b04c612fba7bae31a08c59

Sorti en 2014, Kpatch est spécifique aux distributions Red Hat uniquement. Elle a été portée pour fonctionner sur CentOS et Fedora et certains systèmes Debian comme Ubuntu. L'inconvénient de cette application est que les correctifs ne sont pas automatiques. Cela signifie qu'elle nécessite toujours que les administrateurs déclenchent la mise à jour, ce qui la rend moins intéressante pour les systèmes de niveau entreprise ayant des dizaines de serveurs à gérer.

 

La commande suivante installe Kpatch :

sudo yum install kpatch
sudo yum install kpatch-patch-X.X.X.el7.x86_64.rpm

 

 

Livepatch1200px-Canonical_logo.svg

Livepatch met automatiquement à jour les noyaux Linux et ne nécessite pas de redémarrage. Il est également personnalisable, ce qui permet aux administrateurs de créer leurs propres instructions de patch. L'inconvénient de ce logiciel de correctifs en direct est qu'il ne fonctionne qu'avec des correctifs non complexes et ne prend en charge qu'un nombre limité d'hôtes, ce qui rend cet outil peu attrayant pour les administrateurs d'entreprise.

 

La commande suivante installe Livepatch :

sudo snap install canonical-livepatch
sudo canonical-livepatch enable [TOKEN] (en anglais)

L'argument [TOKEN] requiert une valeur fournie lors de l'enregistrement. Vous pouvez obtenir un jeton d'enregistrement ici.

 

 

Kgraftsuse_logo_color

SUSE's Linux Enterprise Server 12 intègre le composant de correctifs en direct Kgraft. Aucune installation n'est requise, de sorte que les administrateurs peuvent commencer à utiliser le logiciel sans apporter de modifications aux serveurs de production. Cependant, il ne prend en charge que SUSE Linux et il est commercial, ce qui signifie que des frais de licence s'appliquent après l'essai de 60 jours.

 

 

KernelCareCopie du logo de la société cl (1)

CloudLinux KernelCare possède tous les avantages que les administrateurs recherchent dans une application de correctifs en temps réel et prend en charge un large éventail de distributions Linux. KernelCare prend en charge CentOS, Red Hat, Oracle, Debian, Ubuntu et plusieurs autres. Son correctif en direct est automatique et peut gérer les mises à jour simples et complexes du système d'exploitation. Les administrateurs peuvent personnaliser leurs propres mises à jour de correctifs pour cibler immédiatement des vulnérabilités critiques spécifiques tout en retardant les problèmes moins graves qui n'ont pas d'impact sur l'organisation.

 

Voici quelques avantages de l'utilisation de KernelCare par rapport à d'autres solutions :

 

  • Corrections sans redémarrage pour les vulnérabilités les plus récentes et les plus complexes dans la nature.
  • Prend en charge les serveurs de l'entreprise avec plusieurs hôtes.
  • Options de retour en arrière sans redémarrage.
  • Personnalisez les correctifs en utilisant les dates et les versions.
  • Retardez les correctifs spécifiques tout en corrigeant immédiatement les vulnérabilités critiques.
  • Supprimer des correctifs spécifiques.

 

Pour installer KernelCare, utilisez les commandes suivantes :

wget -qq -O -- https://kernelcare.com/installer | bash
sudo /usr/bin/kcarectl --register <your key>

La clé peut être obtenue en s'authentifiant dans le tableau de bord de CloudLinux et en enregistrant le logiciel après l'essai de 30 jours.

 

Conclusion

Les administrateurs Linux responsables de dizaines de serveurs d'entreprise peuvent passer des heures à s'assurer que les correctifs sont installés. C'est un travail à plein temps, mais ce n'est pas nécessaire. L'application de correctifs en direct prend en charge une grande partie du travail lié aux mises à jour de Linux, ce qui permet aux administrateurs de gagner du temps et, par conséquent, de faire des économies pour l'entreprise.

Vous n'êtes pas obligé de sauter directement dans une solution, mais CloudLinux KernelCare présente la plupart des avantages par rapport aux autres solutions. Pour en savoir plus sur le live patching, contactez-nous pour plus d'informations.

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

Découvrez le Live Patching avec TuxCare

Devenez rédacteur invité de TuxCare

Commencer

Courrier

Rejoindre

4,500

Professionnels de Linux et de l'Open Source
!

S'abonner à
notre lettre d'information