Aide – Advanced Intrusion Detection in 5 Minuten unter Debian Squeeze

Mit dem hostbasierten Einbruchserkennungs-System AIDE monitoren Sie Dateiveränderungen und Datei-Zugriffe. Das unter GNU/GPL lizensierte Aide 0.15.1 ist ein Dateiintegritätschecker, der mit Hilfe von Checksummen Dateien auf Veränderungen und Zugriffe hin überwacht. Aide benachrichtigt den Serveradministrator über Veränderungen per E-Mail und ist in den meisten unixnahen Betriebssystemen bereits als fertiges Paket über den Paketmanager installierbar.

Das Intrusion-Detection System (IDS) liegt beispielsweise in den Ports von OpenBSD und Freebsd sowie in den Standardsoftware-Repositories von CentOS, Redhat, Debian und Ubuntu. Der Fileintegritätschecker bewahrt Sie keinesfalls vor einer feindlichen Übernahme des Systems, er benachrichtigt Sie nur via Mail darüber, dass jemand sich am System vergangen hat.

Loggen Sie sich auf der Maschine ein und wechseln Sie zum User Root:
su

Installieren Sie aide aus den Standardsoftwarearchiven mit
apt-get update && apt-get install aide

Tragen Sie folgende Konfigurationsparameter in die  Datei /etc/aide/aide.conf ein

nano /etc/aide/aide.conf

#Eigenes Ruleset
custor = s+m+b+p+i+n+g+u+c+l+sha256
# Auszulassende Verzeichnisse
# Aide überschüttet einen mit Fehlermeldungen, wenn man diese Verzeichnisse nicht
# exkludiert.
!/var/log/.*
!/tmp
!/etc/mtab
!/dev
!/usr/share/terminfo
!/usr/src
!/usr/mnt
!/etc/adjtime
!/proc
!/mnt
!/usr/lib/python*
!/etc/network/run

# Zu überwachende Verzeichnisse
# Überwache den /Ordner mit dem Ruleset “custor”
/etc custor
/bin custor
/sbin custor
/usr/bin custor
/usr/local custor
/usr/sbin custor

TIPP!

TIPP!

-Nutzen Sie den Befehl man aide.conf und schauen Sie sich die verschiedenen Trigger (p i n g u) für die Rules im Abschnitt “Default Groups”  an.

-Widmen Sie einen kurzen Augenblick den Regular Expressions, die verwendet werden, um z.B. rekursive Regeln für Ordnerstrukturen zu erstellen.

Editieren Sie im nächsten Schritt die Datei /etc/default/aide mit einem Editor und setzen Sie die nachfolgenden Werte
nano /etc/default/aide

# Ändern Sie Ihre Mailadresse in der Datei etc/default/aide
MAILTO=Ihre@MailAdresse13342.de

# Die alte Datenbank wird automatisch mit der neu erstellten Datenbank
# überschrieben

COPYNEWDB=YES

Speichern Sie die eben erstellten Konfigurationsdateien und initialisieren Sie die Aide Datenbank:
# update-aide.conf verbindet die Dateien /etc/aide/aide.conf und /etc/aide/aide.conf.d zur gemeinsamen Konfigurationsdatei /var/lib/aide/config-autogenerated
update-aide.conf && aideinit -y -f

Laden Sie die eben erstellte Datei “aide.db.new” auf Ihren lokalen Rechner und brennen Sie sie auf eine CD.
Sollten Sie keine Root Logins auf dem Server erlauben, kopieren Sie die eben erstellte Datei in einen Ordner, auf den Ihr Loginuser Zugriff hat und chownen (Eigentümeränderung) Sie diese aus der Rootshell:
chown loginuser:loginuser /var/lib/aide/aide.db.new && cp /var/lib/aide/aide.db.new /home/loginuser/aide.db.new

Erstellen Sie einen Cronjob, der täglich eine Reportmail über (nicht vorhandene) Änderungen auf dem Server verschickt.

Öffnen Sie die Datei /etc/cron.daily/aide.cron

nano /etc/cron.daily/aide.cron

Tragen Sie folgenden Inhalt in die Datei ein.
/usr/bin/aide –c /etc/aide/aide.conf | /usr/bin/mail -s “Aides Daily Log” a@web.de

Testen Sie die Funktion des Cron Aufrufes, indem Sie folgendes in der Rootshell eingeben:
/etc/cron.daily/aide.cron

Testen Sie im nächsten Schritt den manuellen Check mit folgendem Befehl aus einer Rootshell:

touch /etc/evilroot

aide –c /etc/aide/aide.conf | less

Schliessen Sie das Outputfenster mit q

Neue Einträge in der /etc/aide/aide.conf aktivieren Sie mit dem Befehl:

update-aide.conf

Eine neue Konfigurationsdatei und neue Datenbankhashes erstellen Sie mit:
rm /var/lib/aide/aide* && update-aide.conf && aideinit -f -y

Fazit: Aide ist ein nützlicher Helfer, stellt jedoch keinen 100%igen Garant für Sicherheit dar.

Ein Angreifer kann sein Rootkit beispielsweise in genau den Ordnern ablegen, die Sie in der aide.conf nicht angegeben haben.

Überdenken Sie die Option, Ihre anfänglich erstellte aide.db Datenbank stets extern zu lagern und bei Bedarf zu uploaden oder alternativ die aide.db Datei mit Pgp zu signieren.

Aide stellt eine wunderbare Ergänzung zu einem Virenscanner dar und bietet eine elegante Möglichkeit seine Dropboxdaten zu überwachen.

Kompiliert man aide von Hand, stehen optional  z.B. Postgresanbindungsmöglichkeiten, das Signieren der aide.conf und der generierten Datenbank zur Verfügung. Weitere Flags, bzw. “./configure –with” Optionen erlauben die Einbindung von Syslog und Syslog-ng in ein Security Information Event System (SIEM),  das Herunterladen von Homepageinhalten und dessen Integritätscheck via curl von einem lokalen System aus.

Fallstricke “Known Errors”

  •   “open_dir():No such file or directory: /dev/.udev/db/bsg:0.0.0.0”

Die aide.conf braucht einige Konfigurationseinträge, wie !/proc

  • Punkte in Dateinamen müssen escaped werden -hier am Beispiel /home/loginuser/.ssh      /home/loginuser/\.ssh
  •   Nach der Eingabe von aideinit erscheint die Fehlermeldung:

30: Error in expression: XXX    Configuration Error   AIDE –init return code 17
Die Regel (oben im Beispiel “custor”) muss vor den gelisteten Verzeichnissen stehen

  • Old db contains a entry that shouldn’t be there, run –init or –update

Verwenden Sie aktuelle Hashsummen, nicht md5!

Die Aide Rule-Konfigurationsparameter im Detail:

p permissions    / Dateizugriffsrechte

i inodes            / Inodes enthalten Metainformationen, wie zB permissions

n nodes            / Anzahl Links, die auf die relevante Datei zeigen

g group            / Eigentümergruppe

u user              / Eigentümer

c access           / Letzte Zugriffszeit

s size               / Dateigrösse

m modification / Letze Bearbeitungszeit der Datei

b block count   / Anzahl belegter Blöcke im Dateisystem

l links              / Anzahl Links

> Logs            /  Überwachung eines Logs auf Zuwachs

md5 md5 hash  / md5 Checksummenhash

sha256 sha256 hash/ sha256 Checksummenhash

Eine neue Konfigurationsdatei und neue Datenbankhashes erstellen Sie mit:
rm /var/lib/aide/aide* && update-aide.conf && aideinit -f -y

Einen manuellen Check auf Änderungen und Zugriffe starten Sie mit
aide -c /etc/aide/aide.conf

1 thought on “Aide – Advanced Intrusion Detection in 5 Minuten unter Debian Squeeze”

Kommentare sind geschlossen.