← Toutes les règles
SOCLE-CLD-PKG-056// Packagesfaibleétat d’inventaire

Installer needrestart (détecter les bibliothèques obsolètes après une mise à jour)

needrestart recherche, parmi les processus en cours, les bibliothèques partagées supprimées ou remplacées sur le disque mais toujours mappées en mémoire, puis redémarre les services concernés et signale les cas où le noyau ou le microcode exigent un redémarrage. Il ferme la fenêtre qu'ouvre chaque mise à jour : une libssl corrigée sur le disque, pendant que tous les démons continuent d'exécuter la copie vulnérable chargée au démarrage. Aucune norme ne l'impose : Pavois le porte comme bonne pratique Debian de défense en profondeur, et c'est celle qui transforme le plus directement correctif installé en correctif effectif.

Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04

Ce que vérifie Pavois

Pavois vérifie la présence de needrestart dans l'inventaire dpkg. C'est un contrôle d'état d'inventaire : il prouve que l'outil est installé, pas que son hook APT (/etc/apt/apt.conf.d/99needrestart) se déclenche encore, et surtout pas que quoi que ce soit est redémarré. Le comportement dépend de $nrconf{restart} dans /etc/needrestart/needrestart.conf : dans le mode interactif par défaut ('i'), il se contente de demander, si bien qu'un hôte qui répond « non » à chaque fois continue d'exécuter des bibliothèques obsolètes tout en passant cette règle.

describe package('needrestart') do
  it { should be_installed }
end

Comment vérifier qu’elle est appliquée

Exécutez dpkg -l needrestart et vérifiez que la colonne d'état affiche ii :

ii  needrestart  3.6-4  all  check which daemons need to be restarted after library upgrades

Puis demandez-lui ce qui est obsolète : needrestart -b produit une sortie exploitable par un script. Un hôte propre ne liste aucun service et annonce un noyau attendu identique au noyau courant :

NEEDRESTART-VER: 3.6
NEEDRESTART-KCUR: 6.1.0-23-amd64
NEEDRESTART-KEXP: 6.1.0-23-amd64
NEEDRESTART-KSTA: 1

Une ligne NEEDRESTART-SVC: <unite> signale une unité qui mappe encore une bibliothèque remplacée ; NEEDRESTART-KSTA: 3 signifie que le noyau en cours d'exécution est obsolète et qu'un redémarrage est requis.

Inspecter et investiguer

needrestart n'a aucun fichier de journal propre. Déclenché par le hook APT, il écrit son rapport directement dans la sortie d'apt (le bloc bien connu « Restarting services... » / « Pending kernel upgrade »), qui ne subsiste que dans /var/log/apt/term.log. Les redémarrages qu'il effectue sont, eux, traçables, mais dans le journal systemd, comme de simples redémarrages d'unités (journalctl -u <unite>). Pour disposer d'une preuve continue qu'aucun hôte n'exécute de code obsolète, planifiez needrestart -b et envoyez ses lignes NEEDRESTART-SVC et NEEDRESTART-KSTA vers la supervision : c'est la seule trace durable.

Remédiation

Le plan de durcissement Pavois installe le paquet needrestart avec le gestionnaire de paquets du système (ressource package, action install). Il ne touche pas à needrestart.conf : le réglage par défaut de la distribution s'applique (interactif sur Debian, simple liste lors des exécutions non interactives d'Ubuntu). Passer $nrconf{restart} à 'a' pour redémarrer les services automatiquement est une décision de disponibilité de service, que Pavois vous laisse délibérément.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

actioninstall
nameneedrestart
resourcepackage
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Sans needrestart, un hôte peut exécuter pendant des mois des bibliothèques corrigées sur le disque mais vulnérables en mémoire, jusqu'à ce que quelqu'un redémarre par hasard : le rapport de correctifs dit « corrigé », la mémoire des processus dit « exploitable ». Les effets de bord sont le prix à payer. Il redémarre des services pendant la mise à jour : c'est une brève interruption, des connexions coupées, et sur une base de données, un hyperviseur ou un courtier de messages, cela n'est pas gratuit : planifiez les mises à jour en conséquence. En mode interactif, il pose une question, ce qui peut bloquer une exécution automatisée d'apt en CI ou sous unattended-upgrades (réglez $nrconf{restart} sur 'a' ou 'l', ou pilotez apt avec NEEDRESTART_MODE=a). Enfin, needrestart est lui-même du code exécuté en root au moment de la mise à jour : les failles d'élévation de privilèges locales découvertes en 2024 (CVE-2024-48990 et apparentées, corrigées en 3.8) rappellent qu'il doit être tenu à jour comme le reste.

Sources & références