Ensemble de règles Linux Auditd suivant les bonnes pratiques, avec 14 956 règles mappées à MITRE ATT&CK, un rôle de déploiement Ansible et des outils de lint/test pour la surveillance de sécurité et l'audit de conformité.
Ce dépôt fournit des meilleures pratiques complètes pour la configuration et le déploiement du démon d'audit Linux (Auditd), incluant un ensemble étendu de règles d'audit axées sur la sécurité, un rôle Ansible pour le déploiement automatisé et les outils qui testent les règles sur de vrais noyaux.
Les modifications apportées à l'ensemble de règles, au rôle et aux tests sont listées dans CHANGELOG.md.
Auditd est un puissant système d'audit Linux qui offre des capacités complètes de surveillance et de journalisation du système. Il est conçu pour suivre les événements liés à la sécurité et est essentiel pour :
Nos règles d'audit complètes (/ndaal/audit_best_practices.rules ou /dataset/audit_best_practices.rules) sont conçues pour répondre à diverses normes de sécurité et meilleures pratiques, notamment :
| Fichier | Contenu |
|---|---|
dataset/audit_best_practices.rules | L'ensemble de règles principal : 14 956 règles actives avec 903 clés, écrites sous forme de paires arch=b32/arch=b64. C'est le fichier que le rôle Ansible télécharge. |
dataset/audit_best_practices_high_volume.rules | Fichier compagnon avec la collection non filtrée : chaque execve d'un utilisateur non système, kill/tkill/tgkill et connect sortant. Chaque règle qu'il contient est commentée, donc le fichier est désactivé par défaut. Son en-tête explique comment activer un bloc à la fois. |
ndaal/ | Copies identiques octet pour octet des deux fichiers. |
*.rules.sha-256 | Fichiers annexes SHA-256 au format sha256sum. Le rôle Ansible vérifie chaque téléchargement par rapport à eux. Après avoir modifié un fichier de règles, exécutez tools/update_rules_checksums.sh pour les régénérer. |
tools/key-decisions.tsv | Une décision par paire de collisions de clés, appliquée par tools/resolve_key_collisions.py. |
Une règle qu'une mesure a prouvée erronée est commentée avec une note datée qui en donne la raison. Rien n'est supprimé, de sorte que le fichier conserve l'historique de chaque décision.
Une clé qui commence par un identifiant de technique suit MITRE ATT&CK Enterprise 19.2. ATT&CK v19 a révoqué six identifiants que le fichier utilisait. Le 2026-09-27, leurs clés ont été renommées vers les successeurs que MITRE leur attribue. Modifiez chaque requête SIEM et alerte qui utilise une ancienne clé :
| Ancienne clé | Nouvelle clé |
|---|---|
T1562.001_Impair_Defenses_Disable_or_Modify_Tools | T1685_Disable_or_Modify_Tools |
T1562.004_Impair_Defenses_Disable_or_Modify_System_Firewall | T1686_Disable_or_Modify_System_Firewall |
T1070.002_Indicator_Removal_Clear_Linux_or_Mac_System_Logs | T1685.006_Disable_or_Modify_Tools_Clear_Linux_or_Mac_System_Logs |
T1107_File_Deletion | T1070.004_Indicator_Removal_File_Deletion |
T1169_Sudo | T1548.003_Abuse_Elevation_Control_Mechanism_Sudo_and_Sudo_Caching |
T1079_Multilayer_Encryption | T1573_Encrypted_Channel |
La surveillance de /var/log/audit/ porte T1685.004_Disable_or_Modify_Tools_Disable_or_Modify_Linux_Audit_System_Log, la sous-technique v19 pour le journal d'audit lui-même, au lieu de T1685.006. Les notes datées écrites avant le renommage, et les règles commentées qu'elles expliquent, conservent les anciens noms.
Également le 2026-09-27, les clés qui nommaient la mauvaise technique ont été corrigées. Modifiez également les requêtes SIEM et les alertes pour ces règles :
| Règle | Ancienne clé | Nouvelle clé |
|---|---|---|
Écritures et modifications d'attributs sur /etc/passwd (une nouvelle paire ; les lectures conservent T1087) | T1087_Account_Discovery | T1098_Account_Manipulation |
Écritures et modifications d'attributs sur /etc/shadow | T1087_Account_Discovery | T1098_Account_Manipulation |
Une personne lisant /etc/shadow | T1087_Account_Discovery | T1003.008_OS_Credential_Dumping_etc_passwd_and_etc_shadow |
/etc/ssh/sshd_config | T1021_Remote_Services | T1021.004_Remote_Services_SSH |
/root/.ssh/authorized_keys | T1021_Remote_Services | T1098.004_Account_Manipulation_SSH_Authorized_Keys |
/etc/systemd/system/ | T1053.006_Scheduled_Task_Systemd_Timers | T1543.002_Create_or_Modify_System_Process_Systemd_Service |
date | T1083_File_and_Directory_Discovery | T1124_System_Time_Discovery |
| Les interpréteurs Python (pip, pipx, conda et npm conservent T1072) | T1072_Software_Deployment_Tools | T1059.006_Command_and_Scripting_Interpreter_Python |
| mysql et psql exécutés par une personne | T1213_002_database_access | T1213.006_Data_from_Information_Repositories_Databases |
Écritures et modifications d'attributs sur /etc/group | T1087_Account_Discovery | T1098_Account_Manipulation |
Écritures et modifications d'attributs sur /etc/gshadow (une nouvelle paire ; les lectures conservent T1087) | T1087_Account_Discovery | T1098_Account_Manipulation |
/usr/lib/systemd/system/ (/run/systemd/transient/ conserve T1053.006) | T1053.006_Scheduled_Task_Systemd_Timers | T1543.002_Create_or_Modify_System_Process_Systemd_Service |
/home/vagrant/.ssh/authorized_keys | T1021_Remote_Services | T1098.004_Account_Manipulation_SSH_Authorized_Keys |
Écritures dans /var/log/tomcat10/, 64 bits (une faute de frappe) | tomcattomcat | tomcat |
Écritures dans /etc/mandiant/, 32 bits (une faute de frappe) | mmandiant_config | mandiant_config |
unix_chkpwd, la vérification du mot de passe de sudo et des verrouillages d'écran, lit /etc/shadow avec l'ID d'audit de la personne, donc chaque vérification de mot de passe arrive désormais en tant que T1003.008. Filtrez exe=/usr/sbin/unix_chkpwd dans la règle SIEM pour l'extraction d'identifiants. Les 34 autres règles avec une clé à l'orthographe T1234_567 n'ont jamais étiqueté un enregistrement, car une règle antérieure correspond aux mêmes événements. Elles sont commentées avec une note qui nomme cette règle.
Les appels 32 bits de kexec_load, capset, perf_event_open et semtimedop_time64 portent désormais KEXEC, capability_change_ebpf, perf_event_ebpf et T1559_Inter-Process_Communication au lieu de 32bit_abi. La surveillance elasticsearch-data sur l'ensemble du répertoire de données est désactivée sur les deux ABI : son avertissement la rend opt-in. Sur les hôtes 64 bits, les clés elasticsearch-nodes et elasticsearch-data-deletion, qu'elle prenait jusque-là, réapparaissent.
Le noyau attache la clé de la règle chargée le plus tôt qui correspond à un événement. Cela vaut aussi bien pour les règles d'appels système que pour les surveillances de chemins (kernel/auditfilter.c, kernel/auditsc.c). Une règle large placée tôt prend donc la clé de chaque règle spécifique qui la suit. Jusqu'au 2026-09-20, la règle execve procmon non filtrée se trouvait à la ligne 1 575, et 368 clés n'apparaissaient jamais sur un enregistrement.