Kategorie Bild Security
Zurück zur Übersicht

Advanced Intrusion Detection Environment

Wie bemerkt man, dass Dateien auf einem Server still und heimlich manipuliert wurden, ohne sofort etwas zu sehen. Was ist File Integrity Monitoring, warum eine Baseline wichtig ist und wie AIDE dabei hilft, Hashes und Metadaten zu vergleichen. Typische Szenarien, in denen Angreifer Konfigurationen ändern, Logs löscht oder Tools nachinstalliert. Mit Tipps und Infos zu Tools die nicht viel Zeit kosten, aber die Sicherheit enorm erhöhen. Am Ende bleibt ein realistisches Bild: Sicherheit ist nie perfekt, aber mit einfachen Mitteln lassen sich viele Risiken deutlich senken.

Die Idee für diese Reihe kam nicht von mir allein. Ein Bekannter erzählte mir, dass sein Server gehackt wurde. Zum Glück war es nur das Testsystem.

Im Gespräch wurde klar, dass ihm ein paar einfache Tools geholfen hätten. Und weil der Aufwand dafür überschaubar ist, stelle ich hier als kleine Gedankenstütze ein paar davon vor.

Es gibt zwar keine 100 %ige Sicherheit, aber komplett darauf zu verzichten ist die falsche Schlussfolgerung daraus.

Gerade wenn ich "kleinere" Projekte betreue, gibt es kein Ops-Team, das mit Tools wie Datadog und zentralem Monitoring mit ELK etc. alles im Blick hat und überwachen kann.

Dieses Level ist schwer zu erreichen, ABER ich gebe nicht kampflos auf und nutze mit wenig Aufwand das ein oder andere Tool, um es Angreifern so schwer wie möglich zu machen.

Das Problem

Wie stelle ich fest, wenn jemand mein System manipuliert hat?

Oft ist es so, dass Schadcode über eine Lücke in einer Webanwendung auf den Server kommt und dadurch eine Lücke in die Verteidigung reißt. Der Angreifer kann dann z. B. Konfigurationen auf dem Server verändern, ohne dass er ein Konto auf dem Hostsystem hat, oder verschafft sich damit sogar Zugang zum Host.

Systemdateien können verändert werden, ohne dass man es sofort merkt. Die App läuft weiter, das System wirkt normal, und genau deshalb ist es so tückisch.

Die Idee dahinter: "File Integrity Monitoring"

Das Prinzip ist simpel: Man erstellt einen Zustand, also eine Baseline, und vergleicht den Inhalt der Dateien später immer wieder dagegen.

Wenn sich etwas verändert, bekommst du einen Hinweis.

Die Lösung: AIDE

Advanced Intrusion Detection Environment (AIDE) ist ein hostbasiertes IDS.

Es schaut sich Dateien an, speichert ihre Eigenschaften und vergleicht sie später mit der Referenz. Einfach gesagt: AIDE merkt, wenn eine Datei nicht mehr so aussieht wie zuvor.

Dabei wird eine Prüfsumme, zum Beispiel mit MD5 aus dem Inhalt der Datei, erstellt und in der Baseline als Referenz gespeichert. Zu einem späteren Zeitpunkt kann ich prüfen, ob die Datei verändert wurde, indem ich die alte und die neue Prüfsumme vergleiche.

Umsetzung in der Praxis

  1. AIDE installieren und eine Referenzdatenbank der Dateihashes erstellen.
  2. Kritische Pfade definieren, zum Beispiel /etc, /usr/bin und App-Konfigurationen.
  3. Regeln so setzen, dass relevante Attribute geprüft werden, zum Beispiel Berechtigungen, Eigentümer, Größe, Zeiten und Hashes.
  4. Regelmäßige Checks automatisieren, etwa per Cron-Job oder systemd-Timer.
  5. Die Ergebnisse kurz sichten und nur bei Abweichungen tiefer prüfen.

Kurz erklärt, warum das funktioniert

AIDE speichert nicht nur Hashes, sondern auch Eigenschaften wie Rechte, Eigentümer und Zeiten. Wenn eine Datei manipuliert wird, ändern sich meist mehrere dieser Werte. Dadurch fällt eine Abweichung schnell auf, selbst wenn der Inhalt nur leicht verändert wurde.

Hinweise, die man schnell übersieht

  • Nach legitimen Änderungen muss die Baseline aktualisiert werden, sonst hast du dauernd Fehlalarme.
  • AIDE ist hostbasiert. Wenn jemand Root hat, kann er auch AIDE-Dateien anfassen. Sichere die Referenzdatenbank deshalb extern oder lagere sie aus.
  • AIDE schreibt seine Logs nach /var/log/aide/aide.log. Schau da zuerst rein.
  • Automatisiere die Tests und schicke dir die Berichte per E-Mail, z. B. mit Logwatch.

Weiterführende Links

Weitere Artikel