Allgemein

Dateien und Verzeichnisse auf Integrität prüfen

security-265130_1920

Viele kennen das …

Man betreibt ein kritisches IT System, setzt Härtungsmaßnahmen für Netzwerk, Hardware, OS, Software und Dienste um, damit der Angriffsvektor möglichst gering bleibt. Allerdings stellen sich mir u.a. folgende Fragen:

  • Wie werde ich informiert, wenn das System doch kompromittiert wird und diese Schutzmechanismen ausgehebelt werden?
  • Wie werden Änderungen auf dem System erkannt?

Eine Möglichkeit ist es, Dateien und Verzeichnisse auf ihre Integrität zu prüfen. Dabei wird ein Sollzustand definiert und regelmäßig mit dem Istzustand verglichen. Aber wie setze ich das um? Muss ich mir selber ein Programm schreiben, welches die Anforderungen umsetzt?

Nein… zum Glück nicht, allerdings habe ich in der Vergangenheit schon mehrmals erlebt, dass Kollegen aus der IT viel Zeit und Mühe in Eigenentwicklungen investiert haben. Am Ende scheiterte das Vorhaben an der Pflege und somit verlief die Umsetzung im Sande.

Zum Glück bieten zahlreiche Linux Distributionen (u.a. Red Hat/Centos, Debian usw.) schon von Haus aus passende Tools an. Einem davon widme ich diesen Artikel.

Advanced Intrusion Detection Environment (AIDE)

AIDE ist ein Intrusion Detection System, welches Dateien und Verzeichnisse auf Integrität prüft. Dabei wird initial eine Datenbank mit allen Prüfsummen erstellt, gegen die dann der aktuelle Systemzustand verglichen wird.

Was machts?

In der Konfiguration gibt man an, welche Dateien und Verzeichnisse und welche Attribute geprüft werden sollen. Nach der Initialisierung  wird eine Datenbank angelegt, die den Sollzustand pro Host definiert. Außerdem erstellt AIDE kryptografische Checksummen, die ebenfalls in der Datenbank abgelegt werden.

Durch ein sogenannten “rebase” lässt sich dieser Sollzustand manuell aktualisieren. Das ist dann sinnvoll, wenn z.B. geplante Änderungen am System stattfinden.

Der Administrator kann nun beliebig oft (im besten Fall automatisiert) den Check starten und sich über Änderungen am System informieren lassen.

Attribute

Die folgenden Attribute können für die Prüfungen verwendet werden:

Zur Praxis

Zur Installation gehört nicht viel dazu, denn AIDE ist schon in den Standard-Repositories vieler Distributionen (u.a. RHEL, Centos, Debian, u.s.w) enthalten.

Nach der Installation muss AIDE initialisiert werden, damit die Datenbank angelegt wird, die den Sollzustand pro Host darstellt.

Die Hostprüfung kann mit dem Parameter –check gestartet werden. Es ist ratsam, diese Prüfung regelmäßig zu starten, um Veränderungen am System rechtzeitig zu erkennen.

Die Konfiguration ist ebenfalls kein Hexenwerk. Man gibt lediglich an, in welchem Verzeichnis die Datenbank abgelegt werden soll, stellt das Logging ein, definiert Regelwerke und erstellt eine Liste von Verzeichnissen und Dateien, die geprüft werden sollen. Natürlich lassen sich aus Ausnahmen einstellen, um einzelne Unterverzeichnisse oder Dateien nicht zu prüfen.

Nachdem das Regelwerk angepasst wurde, muss man die AIDE Datenbank aktualiseren.

Abschließend muss man die neue DB Datei im Datenbankverzeichnis (z.B. /var/lib/aide/aide.db.new.gz) mit der bestehenden Datenbank überschreiben.

Fazit

AIDE ist für mich eine einfache Möglichkeit zur Prüfung von Änderungen auf Zielsystemen. Die Umsetzung ist rasch erfolgt und zeitaufwändige Konfiguration bleibt uns erspart.

Durch die Integration von CI Tools (z.B. Jenkins mit Kombination Ansible) lässt sich die Installation, Konfiguration und die Steuerung zentral erledigen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.