Configurer le niveau de confiance dans le TPM pour l'entropie
Exige le paramètre de démarrage noyau rng_core.default_quality=500 afin que le noyau crédite une quantité modérée d'entropie issue des RNG matériels (par ex. un TPM) pour éviter la pénurie d'entropie au démarrage.
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
Au début du démarrage, un système peut manquer d'entropie, bloquant les opérations cryptographiques (génération de clés, TLS, getrandom()) jusqu'à ce que le pool aléatoire soit alimenté. rng_core.default_quality=500 indique au noyau de créditer l'entropie issue des RNG matériels (tel qu'un TPM) à un niveau de confiance modéré, aidant à remplir le pool plus vite afin que le système atteigne plus tôt un état cryptographique exploitable. Une valeur non nulle inférieure au maximum équilibre disponibilité et confiance partielle envers une source matérielle unique.
Ce que vérifie Pavois
Pavois lit la ligne de commande noyau active depuis /proc/cmdline et vérifie la présence de rng_core.default_quality=500. C'est la ligne de boot analysée par le noyau, et non /etc/default/grub, une modification de fichier jamais régénérée passerait à tort alors que le noyau en cours crédite encore zéro entropie matérielle. La valeur d'exécution est exposée dans /sys/module/rng_core/parameters/default_quality.
describe command('cat /proc/cmdline') do
its('stdout') { should match(/(^| )rng_core\.default_quality=500( |$)/) }
end
describe command("grep -hwsF 'rng_core\.default_quality=500' /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 de rng_core.default_quality=500. Recoupez la valeur d'exécution avec :
cat /sys/module/rng_core/parameters/default_quality
La sortie attendue est 500.
Inspecter et investiguer
L'activité du RNG matériel est journalisée au démarrage, dmesg | grep -i 'hwrng\|rng' ou journalctl -k | grep -i rng. L'état de remplissage du pool d'entropie s'observe via cat /proc/sys/kernel/random/entropy_avail.
Remédiation
pavois harden apply utilise la ressource kernel_cmdline pour ajouter rng_core.default_quality=500 à la configuration du bootloader et la régénérer, afin que l'option soit présente au prochain démarrage. Un redémarrage est requis pour qu'il prenne effet.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| param | rng_core.default_quality=500 |
|---|---|
| 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
Ce paramètre est à faible risque et améliore généralement la fiabilité du démarrage pour les services dépendant de la cryptographie. Précautions :
- Il crédite l'entropie depuis le RNG matériel / TPM ; sur les hôtes sans source matérielle de confiance, la qualité créditée est une hypothèse de confiance, gardez une valeur modérée (500/1000) plutôt que le maximum.
- Aucun impact applicatif ; il n'affecte que la rapidité de mise à disposition du pool aléatoire.
- S'applique uniquement après redémarrage, planifiez une fenêtre de maintenance.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R8 | direct | 2.0 | 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.