Vérifier qu'auditd journalise l'usage des commandes privilégiées - fdisk
Garantit qu'auditd possède une règle active (clé modules) journalisant l'usage de la commande privilégiée fdisk.
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
fdisk et l'outillage disque/modules associé peuvent repartitionner le stockage et manipuler l'état bas niveau des périphériques, précisément le type d'action privilégiée qu'un attaquant emploie pour installer une persistance ou détruire des données. Auditer son usage (sous la clé modules sur cette plateforme) enregistre qui l'a invoqué et quand, afin de détecter et d'investiguer l'abus de fonctions privilégiées par des initiés ou des comptes compromis.
Ce que vérifie Pavois
Pavois exécute auditctl -l et cherche dans l'ensemble chargé une règle marquée modules. Cela inspecte l'ensemble effectif du noyau, pas les fichiers de règles : une règle présente dans /etc/audit/rules.d/ mais jamais chargée (erreur d'analyse ou rechargement oublié) tromperait un scanner de fichiers mais échoue correctement ici.
describe command('auditctl -l') do
its('stdout') { should match(/(-k +|key=)modules\b/) }
end
describe command("grep -rhwsE 'modules' /etc/audit/rules.d/*.rules /etc/audit/audit.rules 2>/dev/null") do
its('stdout') { should match(/\S/) }
endComment vérifier qu’elle est appliquée
Exécutez auditctl -l | grep modules. Attendu : au moins une ligne de règle se terminant par -k modules (ou key=modules) couvrant le binaire fdisk. Aucune sortie signifie que la règle n'est pas active.
Inspecter et investiguer
- Confirmer la règle chargée :
auditctl -l | grep modules. - Voir les exécutions enregistrées :
grep 'key="modules"' /var/log/audit/audit.log(préférez un grep brut ; ausearch est peu fiable). - État du service :
systemctl status auditd.
Remédiation
pavois harden apply utilise la ressource audit_ruleset pour écrire la surveillance de commande privilégiée pour fdisk (clé modules) dans le répertoire de règles d'auditd et recharger l'ensemble. La règle est reboot_required : un redémarrage garantit que les règles sont chargées dès le démarrage et que tout mode immuable est appliqué.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| reboot_required | true |
|---|---|
| resource | audit_ruleset |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Sans cette règle, les opérations disque privilégiées ne laissent aucune trace d'audit, gênant l'analyse forensique et faisant échouer les exigences CIS/STIG/BP-028. L'appliquer ajoute seulement une surveillance d'audit et peut nécessiter un redémarrage ; l'impact est minime car fdisk est rarement invoqué, la croissance des journaux est négligeable.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R73 | direct | 2.0 | haute |
| CIS | 6.3.3.19, 6.2.3.19 | direct | per OS, see the benchmark table | haute |
| NIST | 3.1.7 | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| DISA STIG | UBTU-22-654170, UBTU-22-654175, UBTU-22-654045, UBTU-22-654060, UBTU-24-900350, UBTU-24-900340, UBTU-24-900750, UBTU-24-900730 | 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.