Désactiver le chargement du pilote de stockage USB via modprobe
Garantit que le module noyau usb_storage n'est pas chargé et qu'il est mis en liste noire afin que les périphériques de stockage de masse USB ne puissent pas être montés.
Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.
Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
Les périphériques de stockage USB tels que les clés peuvent servir à introduire des logiciels malveillants ou à exfiltrer des données, en contournant totalement les contrôles réseau. Mettre le module usb_storage en liste noire empêche le système de monter les supports de masse USB, fermant un vecteur d'attaque physique majeur pour le vol de données et la diffusion de logiciels malveillants.
Ce que vérifie Pavois
Pavois interroge l'état effectif du module, pas les fichiers de configuration : il vérifie que usb_storage est absent du noyau en cours d'exécution et que modprobe refuse de le charger. Une analyse basée uniquement sur les fichiers passerait même si le module s'était déjà chargé automatiquement à l'instant où une clé USB a été branchée ; inspecter le noyau vivant détecte un module actif et tout drop-in qui le réactive.
describe kernel_module('usb_storage') do
it { should_not be_loaded }
it { should be_disabled }
endComment vérifier qu’elle est appliquée
lsmod | grep usb_storagene doit rien renvoyer.modprobe -n -v usb_storagedoit afficherinstall /bin/true.grep -r usb_storage /etc/modprobe.d/doit montrerblacklist usb_storageetinstall usb_storage /bin/true.- Brancher une clé USB ne doit PAS créer de nouveau périphérique bloc (
lsblkinchangé).
Inspecter et investiguer
dmesg | grep -i usb-storageetjournalctl -k | grep usb_storagemontrent les tentatives de chargement à l'insertion d'un support.lsmodetmodprobe -n -v usb_storagereflètent l'état réel.
Remédiation
Le plan de durcissement de Pavois utilise la ressource kernel_module pour mettre usb_storage en liste noire : il écrit un drop-in modprobe qui blackliste le module et redirige son chargement vers /bin/true, puis le décharge s'il est actif. Un redémarrage est requis pour purger un module utilisé. Appliquez avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | blacklist |
|---|---|
| name | usb_storage |
| reboot_required | true |
| resource | kernel_module |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Désactive TOUT le stockage de masse USB, les disques externes, clés USB et lecteurs de cartes USB ne se monteront plus. Attention : ne pas appliquer aux postes de travail ou aux hôtes dépendant de supports USB pour les sauvegardes, installations ou transferts de données, et assurez-vous de ne pas démarrer/récupérer depuis une clé USB. Les claviers/souris USB ne sont pas affectés (pilote différent). Vérifiez les besoins opérationnels avec lsblk et findmnt avant d'appliquer.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.1.1.9, 3.4.2, 1.1.1.8, 1.1.1.10 | direct | per OS, see the benchmark table | haute |
| NIST | 3.1.21, CM-6(a), CM-7(a), CM-7(b), MP-7 | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 3.4.2 | support | 4.0.1 | moyenne |
| DISA STIG | UBTU-22-291010, UBTU-24-300039 | direct | per OS STIG release | haute |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.