Hallo zusammen,
ich beschäftige mich gerade das erste Mal mit auditd. Hierbei stoße ich auf ein paar Schwierigkeiten, zu denen ich leider keine Antworten im Netz finde. Ich hoffe das hier ein paar erfahrene Admins zu finden sind, die mir da weiterhelfen können!
Erstmal tue ich mich schwer zu der Software eine "offizielle" und klar verständliche Doku zu finden. Die noch nachvollziehbarste habe ich bei Suse gefunden: https://www.suse.com/documentation/sles-12/book_security/data/sec_audit_scenauconf.html
Da stehen, meinem Verständnis nach, zwei verschiedene Dinge:
Erst:
Creating watches on a directory is not necessarily sufficient if you need events for file access. Events on directory access are only triggered when the directory's inode is updated with metadata changes. To trigger events on file access, add watches for each file to monitor.
Also: Rekursiv geht nicht; man muss jede Datei einzeln angeben. Doch dann folgt im Beispiel darunter:
-w /var/log/audit/
Set a watch on the directory where the audit log is located. Trigger an event for any type of access attempt to this directory. If you are using log rotation, add watches for the rotated logs as well.
Das bedeutet doch nun wieder, das darunter liegende Dateien doch beobachtet werden sollen ...
Da ich mir darüber unklar war, habe ich es mit folgender Konfig schlicht ausprobiert:
1 2 3 | # auditctl -l -a never,task -w /etc -p rwxa -k etc |
Wenn ich mit dieser config in's Verzeichnis /etc wechsle und dort "ls" ausführe (der Wechsel sollte meinem Verständnis nach "x" entsprechen und das "ls" "r"), wird jedoch garnichts im auditd-log vermerkt. Erste Frage also: Warum nicht, bzw.: Was macht die zweite Zeile denn sonst??
Nächster Fall: Wenn ich die Config wie folgt ändere:
1 2 3 4 | # auditctl -l -a never,task -w /etc -p rwxa -k etc -w /etc/fstab -p wa -k fstab |
Und daraufhin /etc/fstab mit vim öffne, ändere und speichere, bekomme ich, erwartungsgemäß eine Ausgabe im auditd-log:
1 2 | type=CONFIG_CHANGE msg=audit(1555143757.679:37528): auid=1285194 ses=842 op=updated_rules path="/etc/fstab" key="fstab" list=4 res=1AUID="richtm1" type=CONFIG_CHANGE msg=audit(1555143757.679:37529): auid=1285194 ses=842 op=updated_rules path="/etc/fstab" key="fstab" list=4 res=1AUID="richtm1" |
Zweite Frage: Was bedeutet "CONFIG_CHANGE" und "updated_rules"? Die auditd - config ändere ich ja garnicht, schon garnicht seine Regeln ... ?
Kommen wir zur letzten Frage: Mit derselben Config wie im Beispiel zuvor: Wenn ich /etc/fstab verändere indem ich mit "echo" und den IO-redirection Zeichen ">>" etwas /etc/fstab hinzufüge, erscheint garnichts im auditd-log:
1 | # echo "" >> /etc/fstab |
Dritte Frage: Warum das?? Ich erwarte von einem zuverlässigem Audit schon das alle Wege eine unter Beobachtung stehende Datei zu ändern abgedeckt sind. Was mache / verstehe ich hier falsch? Oder funktioniert auditd hier einfach unzuverlässig?
Vielen Dank für's lesen und ich hoffe auf erhellende Antworten.