Désactiver la prise en charge DCCP
Garantit que le module noyau dccp n'est pas chargé et est mis en liste noire afin que le protocole DCCP accessible par le réseau ne puisse être activé.
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
DCCP (Datagram Congestion Control Protocol) est un protocole de transport rarement utilisé. Étant accessible sur le réseau, son module noyau présente une surface d'attaque exploitable à distance, et il a un historique de bugs graves (par ex. CVE-2017-6074, un use-after-free permettant une élévation de privilèges locale). Désactiver ce module inutilisé protège le système contre l'exploitation de toute faille de son implémentation.
Ce que vérifie Pavois
Pavois utilise kernel_module('dccp') pour vérifier que le module n'est pas chargé et qu'il est désactivé dans la politique modprobe effective. Interroger le noyau vivant et la config modprobe résolue (et non un seul .conf) détecte un module en liste noire dans un fichier mais encore chargé, ou réactivé par un override, important car DCCP peut être chargé automatiquement par une application ouvrant une socket DCCP.
describe kernel_module('dccp') do
it { should_not be_loaded }
it { should be_disabled }
endComment vérifier qu’elle est appliquée
Exécutez lsmod | grep dccp (aucune sortie = non chargé) et modprobe -n -v dccp (attendu : install /bin/true ou /bin/false). modprobe --showconfig | grep dccp affiche les règles effectives.
Inspecter et investiguer
Les tentatives de chargement bloquées apparaissent dans le journal noyau : journalctl -k | grep -i dccp / dmesg | grep -i dccp. lsmod montre les modules résidents ; modprobe --showconfig montre la politique.
Remédiation
pavois harden apply utilise la ressource kernel_module pour mettre dccp en liste noire : il écrit une règle modprobe (install dccp /bin/false plus une entrée blacklist) afin que le protocole ne puisse être chargé automatiquement par une requête de socket, et le décharge s'il est résident. reboot_required est vrai pour garantir le retrait.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| action | blacklist |
|---|---|
| name | dccp |
| 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
Sur un serveur standard, désactiver dccp n'a aucun impact fonctionnel, quasiment aucun logiciel ne l'utilise. Précaution : la rare application ouvrant explicitement des sockets DCCP échouerait ; confirmez qu'aucune ne le fait (par ex. ss -A dccp ne montre aucune socket) avant d'appliquer. Un redémarrage est nécessaire pour décharger un module déjà chargé.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 1.4.2, 3.2.1, 3.2.3 | direct | per OS, see the benchmark table | haute |
| NIST | 3.4.6, CM-6(a), CM-7(a), CM-7(b) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 1.4.2 | support | 4.0.1 | moyenne |
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.