Aller au contenu principal

Mettre à jour un système Linux : pourquoi une faille connue est une porte grande ouverte

Un serveur qui « fonctionne très bien » peut être, en même temps, un serveur que n'importe qui sait attaquer

Petite vérification​

Avant de commencer, vérifiez si vous savez encore répondre à ces 3 questions très simples, sur la séance précédente consacrée à Git et aux secrets :

  1. depuis ~/tp-git-secrets/site-librairie, afficher l'historique du fichier .env et vérifier que l'ancien mot de passe y est toujours lisible, même après le git rm
  2. citer la ligne à écrire dans .gitignore pour que Git cesse de suivre .env, puis la commande qui vérifie que ce fichier est bien ignoré
  3. citer la toute première mesure à prendre quand un secret a été commité
📌 Réponse attendue

TP pour réfléchir et résoudre des problèmes​

Votre défi pour aujourd'hui consiste à mesurer le retard de mises à jour de votre propre serveur Linux, puis à le combler

info

La Médiathèque de Valmont et son serveur sont fictifs, construits pour l'exercice. Les étapes 1 à 3 se font sur votre propre serveur Debian (celui du cours Linux), connecté en ligne de commandes.

Étape 1 — Relever l'état de son système​

Connectez-vous à votre serveur Debian, puis exécutez ces 3 commandes, l'une après l'autre :

cat /etc/os-release
uname -r
sudo apt update
  1. Quelle version de Debian (ligne PRETTY_NAME) et quelle version du noyau Linux (résultat de uname -r) votre serveur utilise-t-il ?
  2. Que vous indique la dernière ligne affichée par sudo apt update ?
📌 Réponse attendue

Étape 2 — Repérer les mises à jour de sécurité​

Affichez maintenant la liste détaillée des paquets en attente de mise à jour :

apt list --upgradable

Chaque ligne a la forme nom/origine version architecture [upgradable from: ancienne version]. Repérez les lignes dont l'origine contient le mot security.

  1. Combien de paquets sont en attente de mise à jour, au total ?
  2. Parmi eux, combien proviennent d'une origine contenant security ? Citez le nom d'un de ces paquets.
📌 Réponse attendue

Étape 3 — Appliquer les mises à jour​

Installez les mises à jour, puis vérifiez le résultat :

sudo apt upgrade
apt list --upgradable
uname -r

La commande sudo apt upgrade vous demande une confirmation (O ou Y selon la langue du système) avant d'installer.

  1. Que doit afficher apt list --upgradable une fois les mises à jour installées ?
  2. Si un nouveau noyau Linux vient d'être installé, le résultat de uname -r a-t-il changé ? Redémarrez avec sudo reboot, reconnectez-vous, relancez uname -r et comparez.
📌 Réponse attendue

Étape 4 — Hiérarchiser les mises à jour d'un serveur en retard​

Le serveur de la Médiathèque de Valmont héberge le catalogue en ligne et sert environ 200 lecteurs. Le stagiaire informatique découvre qu'il n'a pas été mis à jour depuis 14 mois. Voici un extrait fictif de ce que renvoie apt list --upgradable :

openssh-server/stable-security 1:9.2-2+deb12u4 amd64 [upgradable from: 1:9.2-2+deb12u1]
openssl/stable-security 3.0.17-1~deb12u3 amd64 [upgradable from: 3.0.11-1~deb12u2]
linux-image-amd64/stable-security 6.1.153-1 amd64 [upgradable from: 6.1.52-1]
tree/stable 2.1.0-1 amd64 [upgradable from: 2.0.4-1]
htop/stable 3.2.2-2 amd64 [upgradable from: 3.2.1-1]
  1. Quels paquets faut-il installer en priorité, et pourquoi ?
  2. Quelle précaution prendre avant de lancer la mise à jour sur ce serveur de production ?
  3. Quel impact pour les lecteurs faut-il prévoir, et comment le limiter ?
📌 Réponse attendue

Étape 5 — Répondre à une objection​

Le responsable de la médiathèque vous dit : « Le serveur fonctionne très bien depuis 14 mois, ne touchons à rien : une mise à jour pourrait tout casser. » Que lui répondez-vous ?


Restitution orale​

Un étudiant (ou un binôme) vient présenter au tableau l'état de mise à jour de son serveur (étapes 1 à 3) et sa réponse au responsable de la médiathèque (étape 5).

  • Durée : 5 minutes de présentation + 2 à 3 minutes de questions.
  • Qui passe : un(e) étudiant(e) (ou un binôme) désigné(e) par l'enseignant.
  • Support : le travail réalisé pendant le TP, aucune préparation supplémentaire n'est nécessaire.
  • Ce qui est attendu :
    • rappeler la version de Debian et le nombre de mises à jour qui étaient en attente ;
    • présenter la démarche suivie (mettre à jour la liste, repérer la sécurité, installer, vérifier) ;
    • répondre aux questions de la classe.
astuce

Cet exercice entraîne à l'oral technique court exigé par plusieurs épreuves du BTS (notamment E5 et E6) : clarté, structure, capacité à répondre à l'improviste.

📌 Une solution

Notions théoriques​

Vous venez de constater qu'un serveur laissé sans entretien accumule des correctifs en attente. Il reste à comprendre pourquoi ce retard est dangereux, et comment l'éviter durablement.

Qu'est-ce qu'une mise à jour de sécurité ?​

Un logiciel est écrit par des humains : il contient inévitablement des erreurs. Une erreur que quelqu'un peut exploiter pour obtenir un accès ou des droits qu'il ne devrait pas avoir s'appelle une faille de sécurité. Quand l'éditeur (ou l'équipe de la distribution Debian) la corrige, il publie une mise à jour de sécurité, aussi appelée correctif.

Sur Debian, ces correctifs arrivent par le même canal que les autres mises à jour, mais leur origine porte le suffixe -security : c'est ce que vous avez repéré à l'étape 2 du TP.

Pourquoi une faille connue est une porte grande ouverte​

À la publication d'un correctif, la faille qu'il corrige devient publique : sa description explique ce qui n'allait pas. Un attaquant n'a donc plus besoin d'être expert ni de découvrir quoi que ce soit : il lui suffit de chercher les machines qui n'ont pas encore installé le correctif, souvent à l'aide d'outils automatisés.

attention

Plus un serveur prend du retard, plus il cumule de failles connues et plus il est facile à attaquer. Ce n'est pas la complexité de l'attaque qui protège un serveur en retard, c'est uniquement la chance de ne pas avoir été remarqué.

apt update et apt upgrade : deux étapes distinctes​

Deux commandes sont toujours utilisées ensemble, mais ne font pas la même chose :

CommandeRôleModifie le système ?
sudo apt updateRafraîchir la liste des paquets et des versions disponiblesNon
apt list --upgradableAfficher les paquets pour lesquels une version plus récente existeNon
sudo apt upgradeInstaller les versions plus récentes des paquets déjà présentsOui
info

Il existe aussi sudo apt full-upgrade, qui accepte de supprimer des paquets si c'est nécessaire pour terminer la mise à jour. Par prudence, on commence par apt upgrade.

Le noyau et le redémarrage​

Le noyau est le programme central du système : il est chargé en mémoire au démarrage de la machine. Installer un nouveau noyau ne remplace donc pas celui qui tourne : uname -r continue d'afficher l'ancienne version jusqu'au redémarrage. Une mise à jour de sécurité du noyau n'est réellement protectrice qu'après ce redémarrage.

astuce

Sur un serveur en production, ce redémarrage se planifie : choisir un créneau peu gênant et prévenir les utilisateurs, comme à l'étape 4 du TP.

Mises à jour manuelles ou automatiques ?​

Le paquet unattended-upgrades permet à Debian d'installer automatiquement les mises à jour de sécurité, sans intervention. Chaque choix a ses limites :

  • Tout manuel : on garde la main, mais on oublie, et le retard s'accumule (le cas de la médiathèque).
  • Tout automatique : plus aucun retard, mais une mise à jour peut introduire une incompatibilité et interrompre un service sans que personne ne l'ait prévu.
  • Compromis courant : automatiser les correctifs de sécurité, puis vérifier régulièrement le service et planifier à la main les mises à jour plus lourdes (changement de version majeure d'un logiciel, par exemple).
attention

Ne mettez jamais à jour en production sans possibilité de retour en arrière : instantané de la machine virtuelle ou sauvegarde récente.

La fin de support d'une version​

Chaque version de Debian reçoit des correctifs de sécurité pendant une durée limitée, puis passe en fin de support : plus aucun correctif n'est publié, et les failles découvertes ensuite resteront ouvertes. La date de fin de support est annoncée sur le site officiel de Debian. Un serveur à jour mais installé avec une version en fin de support n'est donc plus réellement protégé : il faut alors migrer vers une version supportée.

attention

N'ajoutez jamais un dépôt de paquets trouvé au hasard sur Internet : apt ferait confiance à son contenu et l'installerait avec les droits de root. Utilisez les dépôts officiels de la distribution.


Test de mémorisation/compréhension​


Qu'est-ce qu'une mise à jour de sécurité ?


Que fait la commande `sudo apt update` ?


Quelle commande installe réellement les mises à jour disponibles ?


Pourquoi un serveur non mis à jour est-il une cible facile pour un attaquant ?


Un nouveau noyau Linux vient d'être installé par `sudo apt upgrade`. Que faut-il faire pour qu'il soit réellement utilisé ?


Quelle commande affiche la version du noyau Linux en cours d'exécution ?


Quel est le principal risque d'une mise à jour automatique non surveillée ?


Que signifie la « fin de support » d'une version de Debian ?



Bonnes pratiques​

  • Rafraîchir la liste puis installer : sudo apt update, puis sudo apt upgrade, jamais l'un sans l'autre.
  • Traiter en priorité les correctifs -security : chacun supprime une faille déjà publique.
  • Mettre à jour régulièrement, par petits lots : un retard de plusieurs mois accumule des failles connues et rend la mise à jour plus risquée.
  • Redémarrer après une mise à jour du noyau : tant que ce n'est pas fait, uname -r affiche l'ancienne version et la faille reste ouverte.
  • Prévoir un retour en arrière avant d'intervenir en production : instantané de la machine virtuelle ou sauvegarde récente, et créneau choisi pour limiter l'impact.
  • Surveiller la fin de support de sa version de Debian et migrer avant qu'elle n'arrive.
  • N'utiliser que les dépôts officiels de la distribution.