Leistungsstarkes Überwachungstool für Linux Linux-Systeme mit Auditd überwachen

Von Thomas Joos 5 min Lesedauer

Auditd ist ein leistungsstarkes Werkzeug zur Überwachung und Protokollierung von Aktivitäten auf einem Linux-System. Wir zeigen, aus welchen Komponenten das Audit-Framework von Linux besteht und wie man sie richtig zur Überwachung von Systemintegrität, Benutzeraktivitäten und Konfigurationsänderungen nutzt.

Auditd ist das ideale Werkzeug zur Überwachung von Linux-Systemen.(Bild:  Lila Patel - KI-generiert_stock.adobe.com / KI-generiert)
Auditd ist das ideale Werkzeug zur Überwachung von Linux-Systemen.
(Bild: Lila Patel - KI-generiert_stock.adobe.com / KI-generiert)

Auditd bietet umfassende Überwachungsfunktionen, einschließlich der Überwachung von Systemaufrufen, Dateizugriffen und Benutzeraktionen. Es ermöglicht die Definition spezifischer Regeln zur Erfassung von sicherheitsrelevanten Ereignissen, was die Sicherheit und Compliance erhöht. Zu den Einsatzbereichen gehören unter anderem die Überwachung von Systemintegrität, Benutzeraktivitäten und Konfigurationsänderungen.

Auditd ist damit ein ideales Werkzeug zur Überwachung von Linux-Systemen. Die Installation kann mit apt install auditd erfolgen. Nach der Installation ist der Konfigurationsordner /etc/audit von besonderer Bedeutung. Dieser Ordner enthält wichtige Dateien wie auditd.conf und audit.rules. Hierüber erfolgt die Konfiguration der Umgebung. Generell sind für die Verwaltung von Auditd Root-Rechte erforderlich, das heißt die Befehle werden entweder mit einem "sudo" verwendet, oder Admins eröffnen per SSH oder auf der lokalen Shell eine Root-Shell mit sudo -s.

Bildergalerie
Bildergalerie mit 5 Bildern

Komponenten des Audit-Frameworks

Das Audit-Framework von Linux besteht aus mehreren Komponenten. Die zentrale Komponente ist der Audit-Daemon (auditd), der die vom Kernel gesendeten Audit-Daten sammelt und speichert. Weitere wichtige Komponenten sind auditctl, das zur Verwaltung der Audit-Regeln verwendet wird, und ausearch sowie aureport, die zur Analyse und Berichterstellung der Audit-Daten dienen.

Die Hauptkonfigurationsdatei von Auditd ist auditd.conf, die sich im Verzeichnis /etc/audit/ befindet. Diese Datei enthält Parameter wie log_file (Pfad zur Logdatei), log_format (Format der Logeinträge) und max_log_file (maximale Größe der Logdatei). Die Audit-Regeln werden in der Datei audit.rules definiert, die ebenfalls im Verzeichnis /etc/audit/ liegt. Diese Regeln bestimmen, welche Ereignisse überwacht und protokolliert werden sollen.

Um den Auditd-Dienst zu starten, wird der Befehl sudo systemctl start auditd verwendet. Um sicherzustellen, dass der Dienst bei jedem Systemstart aktiviert ist, wird sudo systemctl enable auditd ausgeführt. Diese Befehle stellen sicher, dass Auditd kontinuierlich läuft und alle definierten Audit-Regeln anwendet.

Auditd konfigurieren

Die Datei auditd.conf enthält grundlegende Konfigurationsparameter, einschließlich des Speicherorts der Protokolldateien, die standardmäßig in /var/log/audit/audit.log abgelegt werden. Diese Protokolle können bei Bedarf mit Syslog an einen externen Server gesendet werden. Die Datei audit.rules definiert die Überwachungsregeln, die Auditd beim Start lädt. Änderungen in der audit.rules-Datei werden bei jedem Neustart von Auditd angewendet.

Um den aktuellen Status von Auditd zu überprüfen, kann der Befehl auditctl -s verwendet werden. Dieser zeigt an, ob das Auditing aktiviert (1), deaktiviert (0) oder aktiviert, aber unveränderbar bis zum nächsten Neustart (2) ist. Der Status kann mit auditctl -e 1 aktiviert werden.

Bildergalerie
Bildergalerie mit 5 Bildern

Erstellen von Überwachungsregeln

Auditd ermöglicht die Überwachung spezifischer Dateien oder Verzeichnisse. Zum Beispiel kann die Datei /etc/passwd überwacht werden, um alle Lese-, Schreib-, Ausführungs- oder Attributänderungen zu protokollieren. Dies kann durch den Befehl auditctl -w /etc/passwd -p rwxa -k passwd_watch erreicht werden.

Dabei steht -w für den Überwachungspfad, -p für die zu überwachenden Berechtigungen (lesen, schreiben, ausführen, Attributänderung) und -k für einen benutzerdefinierten Schlüssel, der in den Protokollen erscheint, um die Einträge leichter auffindbar zu machen.

Definieren von Audit-Regeln

Audit-Regeln werden verwendet, um spezifische Ereignisse zu überwachen. Die Regeln können temporär mit auditctl oder persistent in der Datei audit.rules definiert werden. Ein weiteres Beispiel für eine temporäre Regel, die Änderungen an der Datei /etc/passwd überwacht, ist:

auditctl -w /etc/passwd -p wa -k user-modify

Diese Regel überwacht Schreib- und Attributänderungen an der Datei und versieht sie mit dem Schlüssel user-modify.

Durchsuchen der Protokolle und Persistente Regeln

Zum Durchsuchen der Audit-Protokolle kann der Befehl ausearch verwendet werden. Um beispielsweise nach Ereignissen zu suchen, die mit der Datei /etc/passwd zusammenhängen, kann der Befehl ausearch -f /etc/passwd genutzt werden. Für eine Suche nach spezifischen Schlüsselwörtern, die bei der Erstellung der Regeln definiert wurden, kann ausearch -k passwd_watch verwendet werden.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Damit Überwachungsregeln auch nach einem Neustart von Auditd bestehen bleiben, müssen diese in der Datei rules.d gespeichert werden. Eine neue Regel kann in die Datei /etc/audit/rules.d/audit.rules hinzugefügt werden. Zum Beispiel kann die vorher erstellte Regel durch Hinzufügen von -w /etc/passwd -p rwxa -k passwd_watch in dieser Datei persistent gemacht werden. Nach einem Neustart von Auditd durch systemctl restart auditd wird diese Regel automatisch angewendet.

Bildergalerie
Bildergalerie mit 5 Bildern

Verhindern von Manipulation

Es ist wichtig, die Integrität und Sicherheit der Auditd-Konfiguration zu gewährleisten. Ein Angreifer könnte versuchen, die Protokollierung zu deaktivieren, indem er beispielsweise die audit.rules-Datei manipuliert. Eine Möglichkeit, dies zu verhindern, besteht darin, sicherzustellen, dass keine Regel wie -e 0 am Anfang der Datei steht, die das Auditing beim Start deaktivieren würde. Stattdessen sollte diese auf -e 1 gesetzt oder vollständig entfernt werden.

Die Datei auditd.conf enthält grundlegende Einstellungen für den Audit-Daemon. Wichtige Parameter sind:

  • log_file definiert den Speicherort der Audit-Logs.
  • log_format bestimmt das Format der Logs, wie RAW oder ENRICHED.
  • flush gibt an, wie oft die Logs auf die Festplatte geschrieben werden sollen.

Ein Beispiel für eine auditd.conf-Datei könnte folgendermaßen aussehen:

log_file = /var/log/audit/audit.loglog_format = RAWflush = INCREMENTALfreq = 20num_logs = 5max_log_file = 8max_log_file_action = ROTATE

Überwachung von Benutzeraktivitäten

Ein häufiges Szenario ist die Überwachung von Änderungen an der Datei /etc/passwd, um Benutzeraktivitäten zu protokollieren. Die folgende Regel überwacht Schreib- und Attributänderungen an der Datei:

auditctl -w /etc/passwd -p wa -k user-modify

Nach dem Hinzufügen eines neuen Benutzers mittels sudo useradd testuser kann überprüft werden, ob die Änderung protokolliert wurde:

sudo cat /var/log/audit/audit.log | grep user-modify
Bildergalerie
Bildergalerie mit 5 Bildern

Überwachung von Systemaufrufen

Ein weiteres Beispiel ist die Überwachung des Systemaufrufs clock_settime, der verwendet wird, um die Systemzeit zu ändern:

auditctl -a exit,always -S clock_settime -k changetime

Diese Regel erzeugt ein Ereignis, jedes Mal wenn der Systemaufruf clock_settime erfolgt.

Ein Bericht über alle ausführbaren Ereignisse kann mit dem folgenden Befehl erstellt werden:

sudo aureport -x

Die Performance des Auditd-Systems kann durch sorgfältige Planung der Audit-Regeln verbessert werden. Es ist wichtig, unnötige Regeln zu vermeiden und die Reihenfolge der Regeln zu optimieren. Regeln, die häufiger angewendet werden, sollten am Anfang der Konfigurationsdatei stehen, um die Verarbeitungsgeschwindigkeit zu erhöhen.

Auditd kann effektiv mit anderen Sicherheitswerkzeugen integriert werden, um eine umfassendere Sicherheitsüberwachung zu gewährleisten. Ein Beispiel hierfür ist die Integration mit Auditbeat, einem Datensammler, der Auditd-Daten an Elasticsearch weiterleitet und eine erweiterte Analyse ermöglicht.

Umgang mit großen Log-Dateien und Speicherproblemen

Eine Herausforderung bei der Nutzung von Auditd ist der Umgang mit großen Log-Dateien. Um Speicherprobleme zu vermeiden, können Logrotation und Speicheroptimierungen implementiert werden. Die Konfigurationsparameter num_logs und max_log_file in der Datei auditd.conf helfen dabei, die Größe der Log-Dateien zu kontrollieren und sicherzustellen, dass alte Logs automatisch rotiert werden.

Ein häufiges Problem bei der Verwendung von Auditd ist die Überlastung des Systems durch zu viele oder ineffiziente Regeln. Es ist wichtig, die Audit-Regeln sorgfältig zu planen und regelmäßig zu überprüfen, um sicherzustellen, dass sie effizient und effektiv sind. Bei Problemen kann die Dokumentation und die Community-Unterstützung hilfreich sein, um Lösungen zu finden und Best Practices zu implementieren.

Bildergalerie
Bildergalerie mit 5 Bildern

(ID:50121472)