Website-Suche

So überprüfen Sie die Integrität von Dateien und Verzeichnissen mit „AIDE“ unter Linux


In unserem Mega-Leitfaden zum Härten und Sichern von CentOS 7 haben wir im Abschnitt „System intern schützen“ eines der nützlichen Sicherheitstools für den internen Systemschutz vor Viren, Rootkits, Malware und die Erkennung von Unbefugten aufgeführt Aktivitäten ist AIDE.

AIDE (Advanced Intrusion Detection Environment) ist ein kleines, aber leistungsstarkes, kostenloses Open-Source-Intrusion-Detection-Tool, das vordefinierte Regeln verwendet, um die Datei- und Verzeichnisintegrität in Unix-ähnlichen Betriebssystemen zu überprüfen wie Linux. Es handelt sich um eine unabhängige statische Binärdatei für vereinfachte Client/Server-Überwachungskonfigurationen.

Es verfügt über zahlreiche Funktionen: Es verwendet Nur-Text-Konfigurationsdateien und eine Datenbank, was die Verwendung vereinfacht. unterstützt mehrere Message-Digest-Algorithmen wie unter anderem MD5, SHA1, RMD160 und Tiger; unterstützt allgemeine Dateiattribute; Unterstützt außerdem leistungsstarke reguläre Ausdrücke, um zu scannende Dateien und Verzeichnisse selektiv einzuschließen oder auszuschließen.

Außerdem kann es mit außergewöhnlicher Unterstützung für Gzip-Komprimierung, Posix ACL, SELinux, XAttrs und erweiterten Dateisystemattributen kompiliert werden.

Aide erstellt eine Datenbank (die lediglich eine Momentaufnahme ausgewählter Teile des Dateisystems ist) anhand der in der/den Konfigurationsdatei(en) definierten regulären Ausdrucksregeln. Sobald diese Datenbank initialisiert ist, können Sie die Integrität der Systemdateien anhand dieser überprüfen. Diese Anleitung zeigt, wie Sie Aide unter Linux installieren und verwenden.

So installieren Sie AIDE unter Linux

Aide ist in den offiziellen Repositories der Mainstream-Linux-Distributionen gepackt. Um es zu installieren, führen Sie den Befehl für Ihre Distribution mit einem Paketmanager aus.

apt install aide 	   [On Debian/Ubuntu]
yum install aide	   [On RHEL/CentOS] 	
dnf install aide	   [On Fedora 22+]
zypper install aide	   [On openSUSE]
emerge aide 	           [On Gentoo]

Nach der Installation lautet die Hauptkonfigurationsdatei /etc/aide.conf. Um die installierte Version sowie die Kompilierzeitparameter anzuzeigen, führen Sie den folgenden Befehl auf Ihrem Terminal aus:

aide -v
Beispielausgabe
Aide 0.14

Compiled with the following options:

WITH_MMAP
WITH_POSIX_ACL
WITH_SELINUX
WITH_PRELINK
WITH_XATTR
WITH_LSTAT64
WITH_READDIR64
WITH_ZLIB
WITH_GCRYPT
WITH_AUDIT
CONFIG_FILE = "/etc/aide.conf"

Sie können die Konfiguration mit Ihrem bevorzugten Editor öffnen.

vi /etc/aide.conf

Es verfügt über Anweisungen, die den Datenbankspeicherort, den Berichtsspeicherort, Standardregeln und die in die Datenbank aufzunehmenden Verzeichnisse/Dateien definieren.

Grundlegende Aide-Regeln verstehen

Mithilfe der oben genannten Standardregeln können Sie beispielsweise in der Datei aide.conf neue benutzerdefinierte Regeln definieren.

PERMS = p+u+g+acl+selinux+xattrs

Die PERMS-Regel wird nur zur Zugriffskontrolle verwendet. Sie erkennt alle Änderungen an Dateien oder Verzeichnissen basierend auf Datei-/Verzeichnisberechtigungen, Benutzern, Gruppen, Zugriffskontrollberechtigungen, SELinux-Kontext und Dateiattributen.

Dadurch werden nur der Dateiinhalt und der Dateityp überprüft.

CONTENT = sha256+ftype

Dies ist eine erweiterte Version der vorherigen Regel. Sie prüft erweiterten Inhalt, Dateityp und Zugriff.

CONTENT_EX = sha256+ftype+p+u+g+n+acl+selinux+xattrs

Die folgende DATAONLY-Regel hilft dabei, Änderungen an Daten in allen Dateien/Verzeichnissen zu erkennen.

DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256

Definieren von Regeln zum Überwachen von Dateien und Verzeichnissen

Nachdem Sie Regeln definiert haben, können Sie die zu überwachenden Dateien und Verzeichnisse angeben. Unter Berücksichtigung der oben genannten PERMS-Regel prüft diese Definition die Berechtigungen für alle Dateien im Stammverzeichnis.

/root/\..*  PERMS

Dadurch werden alle Dateien im Verzeichnis /root auf Änderungen überprüft.

/root/   CONTENT_EX

Verwenden Sie dies, um Änderungen an Daten in allen Dateien/Verzeichnissen unter /etc/ zu erkennen.

/etc/   DATAONLY 

Verwenden von AIDE zum Überprüfen der Datei- und Verzeichnisintegrität unter Linux

Beginnen Sie mit dem Aufbau einer Datenbank anhand der Prüfungen, die mit dem Flag --init durchgeführt werden. Dies wird voraussichtlich erfolgen, bevor Ihr System mit einem Netzwerk verbunden wird.

Der folgende Befehl erstellt eine Datenbank, die alle Dateien enthält, die Sie in Ihrer Konfigurationsdatei ausgewählt haben.

aide --init

Benennen Sie dann die Datenbank in /var/lib/aide/aide.db.gz um, bevor Sie mit diesem Befehl fortfahren.

mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

Es wird empfohlen, die Datenbank an einen sicheren Ort zu verschieben, möglicherweise auf einem schreibgeschützten Medium oder auf einem anderen Computer. Stellen Sie jedoch sicher, dass Sie die Konfigurationsdatei aktualisieren, um sie von dort aus lesen zu können.

Nachdem die Datenbank erstellt wurde, können Sie nun die Integrität der Dateien und Verzeichnisse mithilfe des Flags --check überprüfen.

aide --check

Es liest den Snapshot in der Datenbank und vergleicht ihn mit den auf der Systemfestplatte gefundenen Dateien/Verzeichnissen. Wenn Änderungen an Stellen festgestellt werden, die Sie möglicherweise nicht erwarten, wird ein Bericht erstellt, den Sie dann überprüfen können.

Da keine Änderungen am Dateisystem vorgenommen wurden, erhalten Sie lediglich eine Ausgabe ähnlich der oben abgebildeten. Versuchen Sie nun, einige Dateien im Dateisystem in Bereichen zu erstellen, die in der Konfigurationsdatei definiert sind.

vi /etc/script.sh
touch all.txt

Führen Sie dann noch einmal eine Prüfung durch, die die oben hinzugefügten Dateien melden sollte. Die Ausgabe dieses Befehls hängt von den Teilen des Dateisystems ab, die Sie zur Überprüfung konfiguriert haben. Dies kann längere Zeit dauern.

aide --check

Sie müssen regelmäßig Hilfsprüfungen durchführen und im Falle von Änderungen an bereits ausgewählten Dateien oder dem Hinzufügen neuer Dateidefinitionen in der Konfigurationsdatei die Datenbank immer mit der Option --update aktualisieren:

aide --update

Um die neue Datenbank nach dem Ausführen einer Datenbankaktualisierung für zukünftige Scans zu verwenden, benennen Sie sie immer in /var/lib/aide/aide.db.gz um:

mv /var/lib/aide/aide.db.new.gz  /var/lib/aide/aide.db.gz

Das ist alles für jetzt! Beachten Sie jedoch diese wichtigen Punkte:

  • Ein Merkmal der meisten Intrusion-Detection-Systeme (einschließlich AIDE) ist, dass sie keine Lösungen für die meisten Sicherheitslücken in einem System bieten. Sie tragen jedoch dazu bei, den Intrusion-Response-Prozess zu vereinfachen, indem sie Systemadministratoren dabei helfen, alle Änderungen an Systemdateien/-verzeichnissen zu untersuchen. Sie sollten daher stets wachsam sein und Ihre aktuellen Sicherheitsmaßnahmen ständig aktualisieren.
  • Es wird dringend empfohlen, die neu erstellte Datenbank, die Konfigurationsdatei und die AIDE-Binärdatei an einem sicheren Ort aufzubewahren, z. B. auf einem schreibgeschützten Medium (möglich, wenn Sie von der Quelle installieren).
  • Erwägen Sie für zusätzliche Sicherheit, die Konfiguration und/oder die Datenbank zu signieren.

Weitere Informationen und Konfigurationen finden Sie in der Manpage oder auf der AIDE-Homepage: http://aide.sourceforge.net/