Désactiver la compression SSH (ou la limiter à delayed)
Force le démon SSH à positionner Compression no afin que la compression de paquets ne soit pas négociée, en particulier avant l'authentification du client.
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
Lorsque la compression SSH est activée, le code de compression s'exécute avant l'authentification du client. Toute vulnérabilité dans la bibliothèque de compression (historiquement à l'origine de corruptions mémoire pré-auth) devient alors atteignable par un attaquant distant non authentifié, pouvant mener à l'exécution de code dans le processus privilégié sshd. Positionner Compression no supprime cette surface d'attaque pré-auth ; la valeur plus sûre delayed diffère au moins la compression jusqu'après l'authentification.
Ce que vérifie Pavois
Pavois lit la valeur effective via sshd -T, la configuration réellement résolue par sshd après analyse du fichier principal, de chaque Include, des drop-ins de /etc/ssh/sshd_config.d/ et des blocs Match. Se contenter de grep sur /etc/ssh/sshd_config raterait un Compression yes posé dans un drop-in ou un include de politique crypto.
describe command('sshd -T') do
its('stdout') { should match(/^compression\s+no$/i) }
endComment vérifier qu’elle est appliquée
Exécutez sshd -T | grep -i '^compression'. La sortie attendue est compression no.
Inspecter et investiguer
Les événements de session et de démon SSH sont dans /var/log/auth.log (Debian/Ubuntu) ou via journalctl -u sshd (famille RHEL). Les erreurs de négociation/protocole à la connexion y apparaissent aussi avec LogLevel VERBOSE.
Remédiation
Le plan harden de Pavois écrit la directive sshd_setting Compression no (dans un drop-in géré), valide la configuration avec sshd -t avant de committer, puis recharge le service ssh pour que le changement prenne effet sans couper les sessions en cours. Appliquez-le avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| directive | compression |
|---|---|
| notify | action: reload, service: ssh.service |
| resource | sshd_setting |
| value | no |
| verify | sshd -t -f %{path} |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Désactiver la compression n'a aucun impact fonctionnel sur les sessions interactives et un effet négligeable sur le débit des liens rapides modernes ; cela peut légèrement ralentir les transferts volumineux sur des liens très lents/à forte latence où la compression aidait. Aucun risque de verrouillage. Le plan harden recharge sshd au lieu de le redémarrer, donc les connexions existantes survivent ; gardez tout de même une seconde session ouverte par précaution lors de tout changement sshd.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| NIST | 3.1.12 | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | 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.