N'utiliser que des MAC validés FIPS 140-2
Restreint le serveur SSH aux codes d'authentification de message (MACs) validés FIPS 140-2 reposant sur SHA-2 : hmac-sha2-512-etm@openssh.com, hmac-sha2-256-etm@openssh.com, hmac-sha2-512, hmac-sha2-256.
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
Des fonctions de hachage cryptographique approuvées par FIPS doivent être employées pour protéger l'intégrité de la session SSH. Les seuls algorithmes MAC SSHv2 satisfaisant cette exigence reposent sur SHA-2. Les MAC historiques (MD5, RIPEMD-160, troncatures à 96 bits) sont considérés comme cassés et peuvent être exploités lors d'attaques par déclassement (downgrade) et de l'homme du milieu pour altérer ou déchiffrer le tunnel SSH, et ainsi capturer identifiants et données de session. Pour un système devant fonctionner en mode FIPS, l'usage de MAC non validés constitue de plus une non-conformité directe.
Ce que vérifie Pavois
Pavois exécute sshd -T et compare la ligne macs effective à la liste SHA-2 validée. sshd -T affiche la configuration réellement résolue par le démon, après tous les Include, blocs Match et drop-ins de /etc/ssh/sshd_config.d/, de sorte qu'un MAC faible réactivé par un drop-in oublié est détecté. Lire directement /etc/ssh/sshd_config manquerait ces inclusions et donnerait un faux négatif.
describe command('sshd -T') do
its('stdout') { should match(/^macs\s+hmac\-sha2\-512\-etm@openssh\.com,hmac\-sha2\-256\-etm@openssh\.com,hmac\-sha2\-512,hmac\-sha2\-256$/i) }
endComment vérifier qu’elle est appliquée
Exécutez sshd -T | grep -i '^macs'. Sortie attendue :
macs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256
Aucun autre algorithme ne doit figurer dans la liste.
Inspecter et investiguer
Les événements de négociation et de connexion SSH sont journalisés dans /var/log/auth.log (ou journalctl -u ssh). Un client ne proposant que des MAC faibles est rejeté avec un message du type no matching MAC found, visible dans ces journaux et utile pour repérer les clients hérités avant de durcir la politique.
Remédiation
Le plan de durcissement de Pavois écrit la directive MACs (ressource sshd_setting) avec la valeur SHA-2 validée dans la configuration drop-in SSH puis recharge sshd. Appliquez-le avec pavois harden apply. La modification prend effet à la prochaine connexion ; les sessions existantes ne sont pas interrompues.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| directive | MACs |
|---|---|
| notify | action: reload, service: ssh.service |
| resource | sshd_setting |
| value | hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512,hmac-sha2-256 |
| 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
Le retrait des MAC hérités peut casser de très anciens clients SSH, des équipements embarqués ou des automatisations scriptées ne parlant que MD5/96 bits. Avant d'appliquer, inventoriez vos clients (OpenSSH récent privilégie déjà SHA-2) et conservez une seconde console ou un accès hors-bande ouvert. Appliquez la nouvelle ligne macs, puis ouvrez une nouvelle session SSH dans un autre terminal pour vérifier que l'authentification fonctionne toujours avant de fermer la session d'origine, cela évite tout verrouillage.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 5.1.15 | direct | per OS, see the benchmark table | haute |
| DISA STIG | UBTU-24-100830 | 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.