
Best-Practice-Linux-Auditd-Regelsatz mit 14.956 MITRE-ATT&CK-zugeordneten Regeln, Ansible-Deployment-Rolle und Lint-/Test-Tooling für Sicherheitsüberwachung und Compliance-Auditing.
Dieses Repository bietet umfassende Best Practices für die Konfiguration und das Deployment des Linux Audit Daemon (Auditd), einschließlich eines umfangreichen Satzes sicherheitsorientierter Audit-Regeln, einer Ansible-Rolle für das automatisierte Deployment und der Werkzeuge, die die Regeln auf realen Kerneln testen.
Die Änderungen am Regelsatz, an der Rolle und an den Tests sind in CHANGELOG.md aufgeführt.
Auditd ist ein leistungsfähiges Linux-Auditing-System, das umfassende Systemüberwachungs- und Protokollierungsfunktionen bietet. Es ist darauf ausgelegt, sicherheitsrelevante Ereignisse zu verfolgen, und ist unerlässlich für:
Unsere umfassenden Audit-Regeln (/ndaal/audit_best_practices.rules oder /dataset/audit_best_practices.rules) sind darauf ausgelegt, verschiedene Sicherheitsstandards und Best Practices zu erfüllen, darunter:
| Datei | Inhalt |
|---|---|
dataset/audit_best_practices.rules | Der Hauptregelsatz: 14.956 aktive Regeln mit 903 Schlüsseln, geschrieben als arch=b32/arch=b64-Paare. Dies ist die Datei, die die Ansible-Rolle herunterlädt. |
dataset/audit_best_practices_high_volume.rules | Begleitdatei mit der ungefilterten Sammlung: jedes execve eines Nicht-Systembenutzers, kill/tkill/tgkill und ausgehendes connect. Jede Regel darin ist auskommentiert, sodass die Datei standardmäßig deaktiviert ist. Ihr Header erklärt, wie man einen Block nach dem anderen aktiviert. |
ndaal/ | Byte-identische Kopien beider Dateien. |
*.rules.sha-256 | SHA-256-Sidecar-Dateien im sha256sum-Format. Die Ansible-Rolle prüft jeden Download gegen sie. Nach der Bearbeitung einer Regeldatei führen Sie tools/update_rules_checksums.sh aus, um sie neu zu generieren. |
tools/key-decisions.tsv | Eine Entscheidung pro Schlüssel-Kollisionspaar, angewendet durch tools/resolve_key_collisions.py. |
Eine Regel, die durch eine Messung als falsch erwiesen wurde, wird mit einer datierten Notiz auskommentiert, die den Grund angibt. Nichts wird gelöscht, sodass die Datei die Historie jeder Entscheidung bewahrt.
Ein Schlüssel, der mit einer Technik-ID beginnt, folgt MITRE ATT&CK Enterprise 19.2. ATT&CK v19 hat sechs IDs widerrufen, die die Datei verwendet hat. Am 2026-09-27 wurden ihre Schlüssel auf die Nachfolger umbenannt, die MITRE für sie benennt. Ändern Sie jede SIEM-Abfrage und jeden Alarm, der einen alten Schlüssel verwendet:
| Alter Schlüssel | Neuer Schlüssel |
|---|---|
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 |
Die Überwachung von /var/log/audit/ trägt T1685.004_Disable_or_Modify_Tools_Disable_or_Modify_Linux_Audit_System_Log, die v19-Sub-Technik für das Audit-Log selbst, anstelle von T1685.006. Datierte Notizen, die vor der Umbenennung geschrieben wurden, und die auskommentierten Regeln, die sie erklären, behalten die alten Namen.
Ebenfalls am 2026-09-27 wurden Schlüssel korrigiert, die die falsche Technik benannten. Ändern Sie auch die SIEM-Abfragen und Alarme für diese Regeln:
| Regel | Alter Schlüssel | Neuer Schlüssel |
|---|---|---|
Schreibvorgänge und Attributänderungen an /etc/passwd (ein neues Paar; Lesezugriffe behalten T1087) | T1087_Account_Discovery | T1098_Account_Manipulation |
Schreibvorgänge und Attributänderungen an /etc/shadow | T1087_Account_Discovery | T1098_Account_Manipulation |
Eine Person, die /etc/shadow liest | 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 |
| Die Python-Interpreter (pip, pipx, conda und npm behalten T1072) | T1072_Software_Deployment_Tools | T1059.006_Command_and_Scripting_Interpreter_Python |
| mysql und psql, ausgeführt von einer Person | T1213_002_database_access | T1213.006_Data_from_Information_Repositories_Databases |
Schreibvorgänge und Attributänderungen an /etc/group | T1087_Account_Discovery | T1098_Account_Manipulation |
Schreibvorgänge und Attributänderungen an /etc/gshadow (ein neues Paar; Lesezugriffe behalten T1087) | T1087_Account_Discovery | T1098_Account_Manipulation |
/usr/lib/systemd/system/ (/run/systemd/transient/ behält 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 |
Schreibvorgänge in /var/log/tomcat10/, 64-Bit (ein Tippfehler) | tomcattomcat | tomcat |
Schreibvorgänge in /etc/mandiant/, 32-Bit (ein Tippfehler) | mmandiant_config | mandiant_config |
unix_chkpwd, die Passwortprüfung von sudo und von Bildschirmsperren, liest /etc/shadow mit der Audit-ID der Person, sodass jede Passwortprüfung nun als T1003.008 eintrifft. Filtern Sie exe=/usr/sbin/unix_chkpwd in der SIEM-Regel für Credential Dumping. Die anderen 34 Regeln mit einem Schlüssel in der Schreibweise T1234_567 haben nie einen Datensatz gekennzeichnet, weil eine frühere Regel dieselben Ereignisse abgleicht. Sie sind mit einer Notiz auskommentiert, die diese Regel benennt.
32-Bit-Aufrufe von kexec_load, capset, perf_event_open und semtimedop_time64 tragen jetzt KEXEC, capability_change_ebpf, perf_event_ebpf und T1559_Inter-Process_Communication anstelle von 32bit_abi. Die Überwachung elasticsearch-data auf das gesamte Datenverzeichnis ist auf beiden ABIs deaktiviert: Ihre Warnung macht sie zu einem Opt-in. Auf 64-Bit-Hosts erscheinen die Schlüssel elasticsearch-nodes und elasticsearch-data-deletion, die sie bis dahin übernommen hatte, wieder.
Der Kernel hängt den Schlüssel der zuerst geladenen Regel an, die ein Ereignis abgleicht. Dies gilt sowohl für Syscall-Regeln als auch für Pfadüberwachungen (kernel/auditfilter.c, kernel/auditsc.c). Eine früh platzierte breite Regel nimmt daher den Schlüssel von jeder spezifischen Regel nach ihr. Bis zum 2026-09-20 stand die ungefilterte procmon-execve-Regel in Zeile 1.575, und 368 Schlüssel erschienen nie auf einem Datensatz.
Die Catch-all-Regeln schließen die Datei nun ab, in dieser Reihenfolge: