ADMIN
2024
06
2024-05-30T12:00:00
Datenbanken
PRAXIS
054
Security-Tipp
Sicherheit
Advanced Intrusion Detection Environment
Integritätschecks von Dateien mit AIDE
Auf Spurensuche
von Dr. Matthias Wübbeling
Veröffentlicht in Ausgabe 06/2024 - PRAXIS
Hacker abzuwehren ist eines der wichtigsten Ziele im Bereich IT-Security. Was aber, wenn ein Angreifer an den etablierten Maßnahmen vorbei Zugriff auf Systeme erlangt? Dann geht es darum, die vorhandenen Spuren zeitnah zu erkennen, um die weiteren Möglichkeiten für den Eindringling zumindest einzuschränken. Der Security-Tipp in diesem Monat zeigt, wie Sie mit dem Linux-Werkzeug AIDE Änderungen von Dateien überwachen.

AIDE (Advanced Intrusion Detection Environment) verwendet verschiedene Techniken, um eine Manipulation von Dateien zu erkennen. Dazu gehören zunächst reguläre Ausdrücke zur Auswahl der Files, die in die Integrationsprüfung einbezogen werden sollen. Die Dateien werden dann mit Hashverfahren zur Erzeugung von Prüfsummen verarbeitet, aber auch die dazugehörigen Eigenschaften des Dateisystems wie Zugriffsrechte, Inodes, SELinux, EFS und andere eXtended Attributes finden hier Berücksichtigung.
AIDE einrichten und nutzen
Damit Sie AIDE für Integritätsprüfungen verwenden können, installieren Sie es über den Paketmanager Ihrer Distribution. AIDE ist in den gängigen Distributionen enthalten, falls Ihre Umgebung nicht unterstützt wird, können Sie das Release einfach aus dem GitHub-Projekt [1] herunterladen.
Nach der Installation könnten Sie AIDE direkt starten, dafür benötigen Sie natürlich die Rechte des Benutzers root, entweder mittels sudo oder indem Sie eine root Shell starten. Wenn Sie dies ohne Argumente tun, beginnt AIDE direkt mit der Überprüfung beziehungsweise beschwert sich, dass keine Datenbank für die Prüfung unter dem in der Konfiguration angegebenen Pfad vorhanden ist. Das liegt daran, dass Sie die AIDE-Datenbank natürlich erst einmal mit dem Status Quo vorbereiten müssen. Starten Sie dafür die Initialisierung der Datenbank mit dem Kommando
AIDE (Advanced Intrusion Detection Environment) verwendet verschiedene Techniken, um eine Manipulation von Dateien zu erkennen. Dazu gehören zunächst reguläre Ausdrücke zur Auswahl der Files, die in die Integrationsprüfung einbezogen werden sollen. Die Dateien werden dann mit Hashverfahren zur Erzeugung von Prüfsummen verarbeitet, aber auch die dazugehörigen Eigenschaften des Dateisystems wie Zugriffsrechte, Inodes, SELinux, EFS und andere eXtended Attributes finden hier Berücksichtigung.
AIDE einrichten und nutzen
Damit Sie AIDE für Integritätsprüfungen verwenden können, installieren Sie es über den Paketmanager Ihrer Distribution. AIDE ist in den gängigen Distributionen enthalten, falls Ihre Umgebung nicht unterstützt wird, können Sie das Release einfach aus dem GitHub-Projekt [1] herunterladen.
Nach der Installation könnten Sie AIDE direkt starten, dafür benötigen Sie natürlich die Rechte des Benutzers root, entweder mittels sudo oder indem Sie eine root Shell starten. Wenn Sie dies ohne Argumente tun, beginnt AIDE direkt mit der Überprüfung beziehungsweise beschwert sich, dass keine Datenbank für die Prüfung unter dem in der Konfiguration angegebenen Pfad vorhanden ist. Das liegt daran, dass Sie die AIDE-Datenbank natürlich erst einmal mit dem Status Quo vorbereiten müssen. Starten Sie dafür die Initialisierung der Datenbank mit dem Kommando
aide --init
Dieser Durchlauf dauerte in unserem Versuch bei etwa 318.000 Dateien gut anderthalb Minuten. AIDE verbrauchte dabei auf einer CPU mit zwölf Kernen kaum merkbar Ressourcen. Anschließend befand sich die Datei mit dem Namen "aide.db.new" unter "/var/lib/aide/" und musste dort noch in "aide.db" umbenannt werden, damit sie für Checks benutzt werden kann. Zusätzlich erhalten Sie in der Ausgabe noch die Prüfsummen der verschiedenen unterstützten Hashverfahren. Diese müssen Sie natürlich auch im Blick behalten, um eine heimliche Manipulation durch einen Angreifer zu erkennen. Es werden mehrere Hashwerte gebildet, damit ein Angreifer nicht über Schwachstellen einzelner Hashfunktionen unbemerkte Manipulationen vornehmen kann.
Starten Sie nun direkt nach dem Erstellen der Datenbank einen Prüfungsdurchlauf, erwarten Sie natürlich zunächst, dass AIDE keine Änderungen an den Dateien findet. Aber schon nach einer kurzen Wartezeit kann es auf Basis der Standardkonfiguration zu Änderungen an Ordnern oder Dateien kommen, die AIDE Ihnen dann entsprechend anzeigt. Natürlich können Sie eine entsprechende Ausgabe wie im Bild auch provozieren, indem Sie einfach eine der überprüften Dateien selbst ändern. Probieren Sie verschiedene Änderungen aus, erhalten Sie ein Gefühl für die Ausgabe und wie Sie diese nutzen können. Wichtig ist, dass Sie bei jedem Durchlauf auch die Hashwerte der unkomprimierten Datenbank überprüfen.
Für unser Beispiel haben wir die Datei "/etc/security/access.conf" geändert. Das führt natürlich auch zu Änderungen an den Ordnern "/etc" und "/etc/security", die AIDE hier meldet. Der Buchstabe "d" steht hier für "directory", "f" entsprechend für "file". Das "=" bedeutet, dass dem Ordner keine Dateien hinzugefügt oder entfernt wurden, das würde mit "<" und ">" dargestellt werden.
Die einzelnen Punkte sind Platzhalter für die verschiedenen Prüfungen, die AIDE anbietet. Die Buchstaben "m" und "c" zeigen Änderungen der Zeitstempel im Dateisystem, einmal für die "modification time" (Änderung der Datei-/Verzeichnisinhalte) und einmal für die "change time" (Änderung der Statusinformationen im Dateisystem). Die Indikatoren "i" und "h" für die Datei selbst zeigen eine Änderung der Inode und eine Abweichung bei mindestens einem der kontrollierten Hashwerte. Direkt nach der Zusammenfassung finden Sie für jede Änderung weitere Details.
Wenn Sie AIDE automatisiert einsetzen, müssen Sie natürlich vor allem die Rückgabewerte des Programms auswerten. Wie bei (fast) allen Anwendungen bedeutet ein Rückgabewert 0, dass alles funktioniert hat und es keine Fehler bei der Ausführung gab. Bei Überprüfungen oder Updates der Datenbank werden die Werte 1 bis 7 auch bei Erfolg zurückgegeben. Mit den damit vorhandenen drei Bits informiert AIDE, ob es neue Dateien gab, ob Dateien gelöscht wurden oder ob Dateien verändert wurden. Fehlercodes beginnen bei AIDE erst mit Rückgabewerten größer oder gleich 14.
Konfiguration und Updates
Die Konfigurationsdatei für AIDE liegt in "/etc/aide/". Darin finden Sie noch einmal die Dokumentation der verfügbaren Prüfverfahren und vordefinierte Kombinationen für unterschiedliche Dateitypen, etwa für Konfigurationsdateien, Binärdateien oder Logdateien. Anschließend werden über reguläre Ausdrücke die Dateien definiert, die Sie von AIDE prüfen lassen möchten. Mit einem "!" vor dem Ausdruck werden die Dateien, die mit vorhergehenden Regeln inkludiert wurden, später wieder ignoriert.
Für einen produktiven Betrieb benötigen Sie einige Zeit und müssen immer wieder auch Dateien Ihrer Systeme aus der Prüfung herausnehmen, wenn diese sich im Normalbetrieb regelmäßig verändern. Insbesondere bei Updates der eingesetzten Software ändern sich sowohl Binärdateien als auch Konfigurationsdateien. In diesen Fällen müssen Sie also nach dem Update die Datenbank von AIDE aktualisieren.
Natürlich könnten Sie auch einfach eine neue Datenbank initialisieren, allerdings erhalten Sie dann keine Übersicht der veränderten Dateien. Diese sollten Sie aber augenscheinlich prüfen, ob sich auch nur die beim Update aktualisierten Dateien geändert haben. Mit aide --update
aktualisieren Sie die Datenbank und erhalten eine entsprechende Ausgabe mit veränderten Dateien.
Manipulationssicherheit
Leider bietet AIDE von Haus aus keine Prüfung von entfernt liegenden Dateien an. Damit ist es einem Angreifer natürlich grundsätzlich möglich, das AIDE-Binary selbst zu verändern und etwa die Ausgabe so zu manipulieren, dass Ihnen schadhafte Änderungen eben nicht angezeigt werden. Um das auszuschließen, können Sie das Binary selbst über Prüfsummen absichern und vor dem Start die Werte abgleichen. Das macht es, wie bei hostbasierter Angriffserkennung immer, natürlich nicht zu 100-prozentig sicher, schränkt die Möglichkeiten des Angreifers aber deutlich ein.
Fazit
Änderungen von Binärdaten und Konfigurationen sind Artefakte von Cyberangriffen. Fallen Ihnen diese rechtzeitig auf, können Sie einen Angreifer vielleicht noch stoppen und die weitere Verbreitung in Ihrem Netzwerk aufhalten. Der Security-Tipp hat Ihnen gezeigt, wie Sie mit AIDE entsprechende Änderungen entdecken.
(dr)