Spurensucher
Hostbasierte Angriffserkennung mit AIDE
Konfiguration
Ein Beispiel für eine /etc/aide.conf finden Sie in Listing 1. Die Konfiguration beginnt mit einigen Parametern (Zeile 3 bis 6), die unter anderem festlegen, wo AIDE seine Datenbank ablegt. Die Zeilen 7 bis 9 definieren neue Gruppen von zu überprüfenden Attributen (siehe Tabelle "AIDE-Attribute").
Bei den Prüfregeln geben Sie das Objekt an, gefolgt von den Attributen, die AIDE überwachen soll (Zeile 18). Lassen Sie dabei größte Sorgfalt walten: Sind zu wenig Objekte oder unzureichende Attribute angegeben, fällt ein Einbruch unter Umständen gar nicht auf. Achten Sie auch darauf, dass AIDE keine Objekte überwacht, die auf dem eigenen System gar nicht existieren: Das Programm würde in diesem Fall überflüssigerweise Alarm schlagen und das Fehlen von Objekten direkt in der Datenbank vermerken.
Die Zeilen 12 bis 15 weisen AIDE an, die angegebenen Verzeichnisse nicht zu überprüfen. Das Ausrufezeichen (!) dient generell zur Ausschließen einzelner Dateien oder Verzeichnisse.
#/etc/aide.conf (Beispiel) # database=file:/var/lib/aide/aide.db database_out=file:/var/lib/aide/aide.db.new verbose=20 report_url=stdout All=R+a+sha1+rmd160+tiger Norm=s+n+b+md5+sha1+rmd160+tiger R=p+i+n+u+g+s+m+c+md5 # # Folgende Verzeichnisse nicht überwachen !/dev !/tmp !/proc !/usr/src # # Das komplette Root-Verzeichnis kontrollieren / R #
AIDE-Attribute
| Attribut | Bedeutung |
|---|---|
| p | Permissions (Zugriffsrechte) |
| i | Inode |
| n | Anzahl der Hardlinks |
| u | User |
| g | Gruppe |
| s | Size (Dateigröße) |
| m | Mtime (Modifikation des Dateiinhalts) |
| a | Atime (Access, Zugriff) |
| c | Ctime (Change, Änderung der Inode-Informationen) |
| S | Growing Size (wachsende Dateigröße) |
| md5 | MD5-Checksumme |
| sha1 | SHA1-Checksumme |
| rmd160 | RMD160-Checksumme |
| tiger | Tiger-Checksumme |
| R | p+i+n+u+g+s+m+c+md5 |
| L | p+i+n+u+g |
| E | Empty Group (Leere Gruppe) |
| > | Wachsendes Logfile (p+u+g+i+n+S) |
AIDE bedienen
Das Kommando aide --init erzeugt in unserem Beispiel die Soll-Datenbank im Verzeichnis /var/lib/aide. Sie sollten die neue Datenbank zusammen mit der Konfigurationsdatei und dem Programm direkt nach dem Erstellen an einen sicheren Ortkopieren – beispielsweise auf eine CD oder einen schreibgeschützten USB-Stick –, um sie vor Manipulationen zu schützen. Der Aufruf aide --check (Abbildung 1) überprüft das System auf Veränderungen.
Dieses Kommando rufen Sie in regelmäßigen Abständen immer wieder auf, um den Ist-Zustand des Systems mit dem Soll-Zustand zu vergleichen. Ein täglicher Aufruf genügt in den meisten Fällen. Meldet der Check eine Änderung am Dateisystem, so gilt es, zu entscheiden, ob es sich um eine gewollte Änderung handelt (beispielsweise durch ein Software-Update), oder ob tatsächlich ein nicht autorisierter Zugriff stattgefunden hat.
Bei einer legitimen Änderung nehmen Sie den neuen Ist-Zustand mit dem Befehl aide --update in die Soll-Datenbank auf. Das ist wichtig, da AIDE sonst bei jedem Check aufs Neue die gewollte Veränderung am System anzeigt. Meldet das Programm einen nicht autorisierten Zugriff, überprüfen Sie zunächst, um welche Regelverletzung es sich handelt, und wodurch diese möglich wurde. Anschließend suchen und schließen Sie das Sicherheitsloch, über das der Angreifer Zugriff auf das System bekommen hat. Bei dieser Aufgabe gewährt AIDE jedoch keine Hilfestellung, da sich das Programm ausschließlich auf das Aufspüren von Veränderungen versteht.
Grundsätzlich sollten Sie jedes System mit den aktuellsten Paketen auf Stand halten, da veraltete Programmversionen oft bekannte Sicherheitslöcher enthalten, die ein Angreifer zum Einbruch in Ihr System nutzen kann. Nicht verwendete Software deaktivieren oder – noch besser – deinstallieren Sie: Das gilt ganz besonders für Netzwerkdienste. Eine Übersicht, welche Dienste das Betriebssystem beim Systemstart automatisch aktiviert, erhalten Sie unter Suse und Fedora mit dem Befehl chkconfig --list. Das Kommando chkconfig --del Dienst
sorgt dafür, dass der Dienst zukünftig beim Booten nicht mehr startet.



