AIDE ist ein sogenanntes Host-based intrusion Detection System, kurz HIDS welches Veränderungen an Dateien überwacht und den Administrator darüber informiert. Durch berechnen eines Hashes für jede überwachte Datei sollen auch Veränderungen an Dateien auffallen, bei denen weder Größe noch Zeitstempel verändert wurden. Ein HIDS kann somit nicht helfen einen Einbruch zu verhindern, es hilft aber zu erkennen dass überhaupt ein Einbruch stattgefunden hat, bzw. hilft herauszufinden worüber der Einbruch stattgefunden hat. Um zu viele falsche Alarme zu verhindern bringt AIDE standardmäßig einige Regeln mit, so erwartet es z.B. von Logfiles dass diese sich täglich ändern und täglich größer werden.
AIDE kann unter Ubuntu direkt aus den Paketquellen installiert werden. Bevor das Programm gestartet werden kann muss es allerdings konfiguriert werden.
sudo apt-get install aide
Die Konfiguration wird über die Dateien /etc/aide/aide.conf und /etc/default/aide vorgenommen
sudo nano /etc/aide/aide.conf
Wie immer lohnt es sich die Konfigurationsdatei einmal komplett zu lesen, um einen Überblick zu bekommen was das Programm an Einstellmöglichkeiten bietet. Ich werde hier nur auf einige Einstellungen eingehen, das bedeutet jedoch nicht dass die anderen nicht auch interessant sind.
Die erste Einstellung die es zu überdenken gilt sind die verwendeten Hashingalgorithmen. In den Standardeinstellungen bildet AIDE sieben verschiedene Checksummen für jede überwachte Datei. Ob der dafür nötige Rechenaufwand und Zeit gerechtfertigt ist muss jeder selbst entscheiden. Ich denke jedoch dass zwei Hashes pro Datei mehr als ausreichend sind. In diesem Fall kann die Zeile
Checksums = sha256+sha512+rmd160+haval+gost+crc32+tiger
geändert werden auf z.B.
Checksums = sha512+tiger
Jetzt kann die Datei gespeichert und geschlossen werden. Als nächstes wird die /etc/default/aide geöffnet
sudo nano /etc/default/aide
Auch hier wieder einige der wichtigsten Einstellungen
CRON_DAILY_RUN=yes
Hier wird angegeben ob AIDE einmal täglich automatisch von einem Cronjob ausgeführt werden soll. Tauscht man yes gegen no, wird diese Funktion deaktiviert.
MAILTO=mainname@example.com
Hier wird die Mailadresse angegeben auf die man die Berichte von AIDE erhalten möchte. Das System muss hierzu so konfiguriert sein dass es Emails versenden kann, wie z.B. in Postfix mit Gmail als Smarthost konfigurieren beschrieben.
COPYNEWDB=no
AIDE speichert die Hashes aller überwachten Dateien in einer Datenbank. Beim nächsten Lauf werden die neu berechneten Hashes mit den alten Hashes aus der Datenbank verglichen und Veränderungen so bemerkt. Mit COPYNEWDB=no wird die alte Datenbank nie überschrieben. Im Idealfall hat man die erste Datenbank auf einem neu installierten sauberen System erstellt. Somit wird bei jeden Lauf von AIDE die Veränderungen seit der Neuinstallation aufgezeigt. Mit COPYNEWDB=yes überschreibt die neu erstellte Datenbank die alte. Die Dateien werden also immer mit dem letzten Lauf (i.d.R. also dem Vortag) verglichen. Veränderungen über einen längeren Zeitraum kann man in den Logfiles von AIDE oder in den täglichen Emailreports feststellen.
TRUNCATEDETAILS=yes
FILTERUPDATES=yes
FILTERINSTALLATIONS=yes
Wenn diese drei Punkte auf yes gesetzt werden erhält man täglich einen verkürzten Emailreport. AIDE überprüft dafür das Logfile /var/log/dpkg.log und blendet Änderungen durch Paketinstallationen und Sicherheitsupdates aus. Diese Einstellung betrifft nur den Email Report, das Logfile von AIDE enthält weiterhin sämtliche Veränderungen am System.
Die Konfiguration von AIDE ist hiermit abgeschlossen. Nun kann AIDE zum ersten Mal gestartet werden. Mit dem Befehl
sudo aideinit
wird die erste Datenbank unter /var/lib/aide/aide.db.new erstellt. Je nach größe des Systems und zur Verfügung stehende Rechenleistung kann dies eine ganze Weile dauern. AIDE benötigt immer zwei Datenbanken die es miteinander verlgleichen kann, und zwar immer die neue aide.db.new mit der alten Datenbank aide.db. Daher müssen wir die soeben erstellte Datenbank umbenennen mit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
AIDE ist hiermit fertig installiert und konfiguriert. Der erste reguläre Lauf wird vom Cronjob automatisch gestartet. Wer darauf nicht warten will kann diese auch manuell auslösen mit
sudo /etc/cron.daily/aide
2 Comments
WHen I run this manually I get an error:
„`
# /etc/cron.daily/aide
/etc/cron.daily/aide: line 79: update-aide.conf: command not found
/etc/cron.daily/aide: line 21: onexit: command not found
„`
Ich habe den Fehler mal hier gepostet: https://github.com/aide/aide/issues/76