Nachdem das System installiert und konfiguriert ist, gibt es, abgesehen von Sicherheitsaktualisierungen, normalerweise keinen Grund, dass Dateien und Verzeichnisse sich weiterentwickeln, Daten ausgenommen. Es ist daher interessant sicherzustellen, dass Dateien sich in der Tat nicht ändern: jede unerwartete Veränderung wäre daher eine Untersuchung wert. Dieser Abschnitt stellt einige Hilfsprogramme vor, die Dateien überwachen und den Administrator warnen können, wenn eine unerwartete Veränderung auftritt (oder einfach derartige Veränderungen auflisten).
14.3.3.1. Pakete auditieren: debsums
und seine Grenzen
debsums
ist ein interessantes Hilfsprogramm, da es mit ihm möglich ist, herauszufinden, welche der installierten Dateien verändert worden sind (möglicherweise von einem Angreifer). Jedoch sollten diese Informationen mit Vorsicht aufgenommen werden, insbesondere weil nicht alle Debian-Pakete die von diesem Programm benötigten digitalen Fingerabdrücke bereitstellen (sie sind, falls vorhanden, in
/var/lib/dpkg/info/paket
.md5sums
zu finden).
Zur Erinnerung: ein Fingerabdruck ist ein Wert, häufig eine Zahl (wenn auch in hexadezimaler Schreibweise), die eine Art Signatur für den Inhalt der Datei enthält. Diese Signatur wird mit einem Algorithmus berechnet (MD5 und SHA1 sind bekannte Beispiele), der mehr oder weniger garantiert, dass selbst kleinste Veränderungen des Dateiinhalts eine Änderung des Fingerabdrucks bewirken; dies wird als „Lawineneffekt“ bezeichnet. Er ermöglicht es, einen einfachen numerischen Fingerabdruck als Lackmustest zu verwenden, um zu überprüfen, ob der Inhalt einer Datei verändert wurde. Diese Algorithmen sind nicht umkehrbar; mit anderen Worten, bei den meisten von ihnen ermöglicht die Kenntnis eines Fingerabdrucks es nicht, den dazugehörigen Inhalt zu finden. Jüngste mathematische Fortschritte schwächen anscheinend die absolute Gültigkeit dieser Prinzipien, aber ihre Verwendung ist bisher nicht infrage gestellt, da es wohl nach wie vor eine recht schwierige Aufgabe ist, einen anderen Inhalt zu erstellen, der denselben Fingerabdruck ergibt.
Außerdem sind die md5sums
-Dateien auf der Festplatte gespeichert; ein sorgfältiger Angreifer wird daher diese Dateien aktualisieren, so dass sie die neuen Kontrollsummen für die unterwanderten Dateien enthalten.
Der erste Missstand kann dadurch vermieden werden, dass man debsums
anweist, seine Überprüfungen auf ein .deb
-Paket zu gründen, anstatt sich auf die md5sums
-Datei zu verlassen. Hierzu müssen jedoch zunächst die passenden .deb
-Dateien heruntergeladen werden:
#
apt-get --reinstall -d install `debsums -l`
[ ... ]
#
debsums -p /var/cache/apt/archives -g
Es sei auch darauf hingewiesen, dass debsums
in seiner Standardkonfiguration automatisch die fehlenden md5sums
-Dateien erstellt, wann immer ein Paket mit APT installiert wird.
Das andere Problem kann in ähnlicher Weise vermieden werden: die Überprüfung muss einfach auf einer tadellosen .deb
-Datei beruhen. Da dies voraussetzt, dass man über alle .deb
-Dateien für alle installierten Pakete verfügt und ihrer Unversehrtheit sicher ist, besteht der einfachste Weg darin, sie sich von einem Debian-Spiegelserver zu beschaffen. Dieser Vorgang kann langsam und mühsam sein und sollte daher nicht als eine regelmäßig zu nutzende proaktive Vorgehensweise angesehen werden.
#
apt-get --reinstall -d install `grep-status -e 'Status: install ok installed' -n -s Package`
[ ... ]
#
debsums -p /var/cache/apt/archives --generate=all
Man beachte, dass in diesem Beispiel der Befehl grep-status
aus dem Paket grep-dctrl verwendet wird, das nicht standardmäßig installiert ist.
14.3.3.2. Dateien überwachen: AIDE
Das Hilfsprogramm AIDE (Advanced Intrusion Detection Environment) ermöglicht es, die Unversehrtheit von Dateien zu überprüfen und jede Veränderung durch einen Vergleich mit einem zuvor festgehaltenen Abbild des intakten Systems zu entdecken. Dieses Abbild ist als Datenbank (/var/lib/aide/aide.db
) abgespeichert, die relevante Informationen über alle Dateien des Systems enthält (Fingerabdrücke, Berechtigungen, Zeitstempel und so weiter). Diese Datenbank wird erstmals mit dem Befehl aideinit
initialisiert; sie wird dann täglich (mit dem Skript /etc/cron.daily/aide
) genutzt, um nachzuprüfen, dass sich nichts Relevantes verändert hat. Wenn Veränderungen entdeckt werden, hält AIDE diese in Protokolldateien fest (/var/log/aide/*.log
) und sendet seine Befunde per E-Mail an den Administrator.
Viele Optionen in /etc/default/aide
können dazu verwendet werden, das Verhalten des Pakets aide zu justieren. AIDEs eigentliche Konfiguration ist in /etc/aide/aide.conf
und /etc/aide/aide.conf.d/
gespeichert (diese Dateien werden genau genommen nur von update-aide.conf
dazu benutzt, die Datei /var/lib/aide/aide.conf.autogenerated
zu erstellen). Die Konfiguration gibt an, welche Eigenschaften welcher Dateien überprüft werden sollen. Der Inhalt von Protokolldateien verändert sich zum Beispiel regelmäßig, und derartige Veränderungen können ignoriert werden, solange die Berechtigungen dieser Dateien die gleichen bleiben. Aber sowohl der Inhalt als auch die Berechtigungen von ausführbaren Dateien müssen unverändert bleiben. Obwohl die Konfigurationssyntax nicht sehr komplex ist, ist sie nicht völlig intuitiv. Daher wird empfohlen, die Handbuchseite aide.conf(5) zu lesen.
Eine neue Version der Datenbank wird täglich in /var/lib/aide/aide.db.new
erstellt; falls alle aufgenommenen Veränderungen legitim waren, kann sie als Ersatz für die Referenzdatenbank verwendet werden.