
Meilleure pratique de configuration Auditd
___ ___ __ __
/ | __ ______/ (_) /_____/ /
/ /| |/ / / / __ / / __/ __ /
/ ___ / /_/ / /_/ / / /_/ /_/ /
/_/ |_\__,_/\__,_/_/\__/\__,_/
Configuration Auditd de référence
L'idée de cette configuration auditd est de fournir une base de référence de bonnes pratiques qui
L'ensemble de règles simplifié conserve intentionnellement certaines télémétries de grande valeur mais potentiellement volumineuses, notamment la création de processus, la création de sockets et les événements d'échec d'accès aux fichiers. Adaptez ces sections à votre environnement si nécessaire.
La configuration actuelle se concentre sur les domaines de couverture suivants :
ptracememfd_createbpfio_uringuserfaultfdexecve, execveat, création de socket, suppression de fichiers et utilisation de l'ABI 32 bitsCet ensemble de règles vise à rester indépendant de la logique de détection en aval. Il se concentre sur la collecte d'une télémétrie d'audit largement utile qui peut ensuite être analysée de différentes manières, par exemple avec des outils basés sur Sigma ou des requêtes SIEM.
Un projet open source qui peut utiliser ces données d'audit est Aurora Linux, un agent léger et personnalisable basé sur Sigma pour Linux qui combine la télémétrie basée sur eBPF avec un enrichissement en espace utilisateur et la correspondance de règles Sigma.
Cet ensemble de règles inclut intentionnellement -i afin que les chemins facultatifs spécifiques à la distribution
n'interrompent pas le chargement sur les systèmes où certains binaires ou répertoires sont absents.
Cela simplifie le déploiement par défaut, mais signifie également que les erreurs de chargement des règles sont
ignorées.
Si vous souhaitez une validation stricte avant le déploiement, testez une copie temporaire avec la
ligne -i supprimée, par exemple :
grep -v '^-i$' audit.rules > /tmp/audit.rules.strict
auditctl -R /tmp/audit.rules.strict
Le dépôt inclut également des vérifications GitHub Actions qui lint les règles et valident qu'une copie portable CI et une copie stricte peuvent toutes deux être chargées sur Ubuntu.
Plusieurs règles dans audit.rules utilisent auid>=1000 -F auid!=unset pour se concentrer sur
l'activité des utilisateurs interactifs et exclure les sessions de connexion non définies.
1000 est le UID_MIN commun sur de nombreuses distributions Linux, mais il n'est pas
universel. Si votre hôte utilise un UID_MIN différent, vérifiez /etc/login.defs
et remplacez 1000 dans audit.rules avant le déploiement :
awk '$1=="UID_MIN" { print $2 }' /etc/login.defs
Le 29 avril 2026, Xint a publié Copy Fail (CVE-2026-31431), une
technique d'élévation de privilèges locale qui abuse de l'interface utilisateur de la crypto du noyau
(AF_ALG) avec splice() pour corrompre en mémoire des fichiers sauvegardés par le cache de pages.
Cet ensemble de règles inclut un petit bloc af_alg pour collecter les parties stables et peu bruyantes
de cette configuration à partir de sessions utilisateur attribuables :
socket(AF_ALG, ...)bind() utilisant le struct sockaddr_alg de taille fixe communsetsockopt(..., SOL_ALG, ...)Ceci est intentionnellement plus générique qu'une signature ponctuelle pour
authencesn(hmac(sha256),cbc(aes)) car les filtres d'appels système d'audit ne peuvent pas correspondre
aux arguments chaîne de caractères. En pratique, le nom de l'algorithme se trouve dans l'enregistrement SOCKADDR
émis par bind(), donc la détection recommandée en aval est :
key=af_algSOCKADDR.saddr / SADDR={ saddr_fam=alg ... }salg_type=aead avec salg_name contenant authencesn(pid, exe ou auid émet plusieurs de ces bind dans
un laps de temps courtLa preuve de concept décrite par Xint repose également sur des opérations splice() répétées.
Ces appels système sont trop bruyants pour l'ensemble de règles par défaut sur de nombreux
systèmes, donc le dépôt ne fournit qu'une superposition splice_user commentée dans
audit.rules. Activez-la uniquement si splice / vmsplice sont rares dans votre
environnement et corrélez-la avec une activité af_alg récente du même
processus ou de la même session utilisateur.
La configuration est basée sur les sources suivantes et des années d'améliorations fusionnées de l'ensemble de règles par défaut :
Règles auditd de Gov.uk https://github.com/gds-operations/puppet-auditd/pull/1
Renforcement de CentOS 7 https://highon.coffee/blog/security-harden-centos-7/#auditd---audit-daemon
Dépôt Linux audit https://github.com/linux-audit/audit-userspace/tree/master/rules
Auditd haute performance pour l'audit Linux https://linux-audit.com/tuning-auditd-high-performance-linux-auditing/
Copy Fail : 732 octets pour devenir root sur toutes les principales distributions Linux. https://xint.io/blog/copy-fail-linux-distributions
Interface utilisateur de la crypto du noyau Linux (AF_ALG) https://docs.kernel.org/crypto/userspace-if.html
Toutes ces règles n'ont pas été incluses.
Pour la conformité PCI DSS, voir : https://github.com/linux-audit/audit-userspace/blob/master/rules/30-pci-dss-v31.rules
Pour la conformité NISPOM, voir : https://github.com/linux-audit/audit-userspace/blob/master/rules/30-nispom.rules
IppSec a réalisé une vidéo qui explique comment détecter l'exploitation de la
vulnérabilité OMIGOD à l'aide d'auditd. Les concepts de base d'auditd dans cette vidéo sont
toujours utiles, mais l'ensemble de règles de ce dépôt a depuis été considérablement simplifié.
Considérez la vidéo comme un contexte historique et une introduction aux
idées de détection basées sur auditd, et non comme une documentation ligne par ligne de audit.rules actuel.
Merci de soumettre vos modifications sous forme de pull requests.