Désactiver la prise en charge USB du noyau via la configuration du bootloader
Désactive la prise en charge USB du noyau via un paramètre du bootloader afin que l'hôte rejette totalement les périphériques USB, destiné aux systèmes spécialisés à fonction figée.
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.
Pourquoi cette règle
Le sous-système USB est une surface d'attaque physique courante : un périphérique USB malveillant peut se faire passer pour un clavier (BadUSB), exploiter un pilote de classe bogué ou exfiltrer des données dès son branchement. Désactiver la prise en charge USB au niveau du démarrage noyau supprime entièrement cette surface, ce qui n'est réaliste que sur des systèmes spécialisés à fonction figée (bornes, appliances, hôtes isolés) sans besoin légitime de périphériques USB.
Ce que vérifie Pavois
Pavois lit la ligne de commande noyau active depuis /proc/cmdline plutôt que /etc/default/grub, reflétant ainsi ce que le noyau en cours a réellement appliqué, une modification GRUB jamais régénérée ne tromperait pas la vérification. La ligne de boot active est la source faisant autorité pour tout paramètre noyau régissant la disponibilité d'un module ou sous-système.
describe command('cat /proc/cmdline') do
its('stdout') { should match(/(^| )nousb( |$)/) }
end
describe command("grep -hwsF 'nousb' /etc/default/grub /etc/kernel/cmdline /boot/grub/grub.cfg /boot/grub2/grub.cfg /boot/efi/EFI/*/grub.cfg 2>/dev/null") do
its('stdout') { should match(/\S/) }
endComment vérifier qu’elle est appliquée
Lancez cat /proc/cmdline et confirmez la présence du jeton attendu désactivant l'USB sur la ligne de boot. Confirmez aussi qu'aucun périphérique USB n'est énuméré avec lsusb (vide ou en échec) et que le module usbcore n'est pas chargé via lsmod | grep usbcore.
Inspecter et investiguer
Le noyau journalise l'initialisation du sous-système USB (ou son absence) au démarrage, inspectez dmesg | grep -i usb ou journalctl -k | grep -i usb. Quand l'USB est désactivé, aucun message d'énumération usbcore/usb 1-1 n'apparaît.
Remédiation
Cette règle n'a aucun plan de durcissement automatisé : elle doit être appliquée manuellement, ajoutez le paramètre désactivant l'USB au bootloader (par ex. via /etc/default/grub puis grub2-mkconfig, ou blacklistez les modules usb_storage/usbcore) puis redémarrez. Pavois ne modifie pas l'USB automatiquement car le désactiver peut couper le seul périphérique d'entrée sur une machine physique.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| param | nousb |
|---|---|
| reboot_required | true |
| resource | kernel_cmdline |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Désactiver l'USB est très perturbateur sur du matériel physique : cela coupe claviers, souris, stockage USB, dongles KVM et supports de récupération. Précautions :
- N'appliquez jamais sur une machine dont la seule console est un clavier USB, vous serez verrouillé dehors.
- À réserver aux serveurs sans tête gérés en IPMI/série ou aux VM à entrée virtio.
- Conservez un accès de récupération hors-bande (console série, console hyperviseur) pour annuler le paramètre de boot au besoin.
- Nécessite un redémarrage pour prendre effet.