AIDE: File Integrity Monitoring (Artikel 349)
Implementierung von File Integrity Monitoring (FIM) mit AIDE. Erfahren Sie, wie Sie Manipulationen an Systemdateien erkennen und eine revisionssichere Datenbank Ihrer Infrastruktur aufbauen.
# AIDE Mastery: Den Fingerabdruck des Systems schützen
TL;DR / Management Summary Ein Angreifer, der Root-Rechte erlangt hat, wird versuchen, seine Spuren zu verwischen, indem er System-Binaries (z.B.
/bin/lsoder/usr/sbin/sshd) durch manipulierte Versionen (Rootkits) ersetzt. AIDE (Advanced Intrusion Detection Environment) verhindert das. Es erstellt eine kryptografische Datenbank aller Systemdateien. Ein Senior Admin nutzt AIDE, um regelmäßige Abgleiche durchzuführen und jede noch so kleine Änderung an Dateigröße, Hashwert oder Berechtigungen sofort zu melden.
# 1. Einführung & Architektur
Der digitale Wächter.
AIDE ist ein statischer Scanner. Er vergleicht den aktuellen Zustand des Dateisystems mit einer zuvor erstellten “Goldenen Datenbank”.
# Der Integritäts-Check (Mermaid)
graph TD
A[Initial State: Clean System] --> B[Command: aide --init]
B --> C[Trusted Database: aide.db.gz]
C --> D[Secure Storage: Read-only / Remote]
E[Current State: Potential Compromise] --> F[Command: aide --check]
D --> F
F --> G{Match?}
G -->|Yes| H[System Integrity OK]
G -->|No| I[ALERT: File modified / replaced]
# 2. Erste Schritte: Datenbank initialisieren
Den Nullpunkt setzen.
# Installation
sudo apt install aide # Debian
sudo dnf install aide # RHEL
# Initialisierung
Führen Sie dies nur auf einem garantiert sauberen System aus!
sudo aideinit
# Unter RHEL: aide --init
Das Tool erstellt eine Datei unter /var/lib/aide/aide.db.new.gz.
Sicherheit: Verschieben Sie diese Datenbank nach der Initialisierung auf ein externes, schreibgeschütztes Medium (z.B. ein schreibgeschützter USB-Stick oder ein gehärteter Log-Server). Wenn der Angreifer die Datenbank auf dem Server ändern kann, kann er auch AIDE täuschen.
# 3. Der tägliche Check
Manipulationen aufdecken.
Lassen Sie AIDE automatisiert (via Cron) laufen.
sudo aide --check
Der Output zeigt Ihnen genau, welche Dateien hinzugefügt, gelöscht oder verändert wurden.
# 4. Day-2 Operations: Datenbank-Pflege
Updates legitimieren.
Nach jedem gewollten Software-Update (z.B. zypper up) wird AIDE tausende Änderungen melden. Sie müssen die Datenbank danach aktualisieren.
sudo aide --update
# Benennen Sie die neue Datenbank zur aktiven Datenbank um
sudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# 5. Troubleshooting & “War Stories”
Wenn der Wächter zu laut schreit.
# Story 1: “Die Log-File Inflation”
Symptom: AIDE meldet jeden Tag hunderte Änderungen in /var/log und /var/spool. Der Admin ignoriert die Berichte wegen zu vieler “False Positives”.
Ursache: Standard-Konfigurationen überwachen oft zu viele flüchtige Verzeichnisse.
Lösung: Passen Sie /etc/aide/aide.conf an. Schließen Sie Verzeichnisse mit flüchtigen Daten (!/var/log/.*) aus oder nutzen Sie weniger strikte Regeln (nur Attribute, keine Hashes) für diese Pfade.
# Story 2: “Das Rootkit im Backup”
Symptom: Ein Server wurde gehackt und neu aufgesetzt. Nach dem Einspielen des Backups meldet AIDE sofort wieder Alarme an den gleichen Stellen wie vor dem Hack. Ursache: Das Rootkit war im Backup-Stream enthalten und wurde mit wiederhergestellt. Lösung: Nutzen Sie AIDE-Berichte, um den genauen Zeitpunkt der ersten Manipulation zu finden. Greifen Sie auf ein Backup zurück, das vor diesem Zeitpunkt erstellt wurde.
# 6. Fazit & Empfehlung
- Pflicht: AIDE ist Pflicht für jeden Server, der sensible Daten verarbeitet.
- Wartung: Aktualisieren Sie die AIDE-Datenbank sofort nach jedem Patch-Vorgang.
- Wahl: Nutzen Sie Samhain oder Tripwire, wenn Sie eine Client-Server-Architektur mit Echtzeit-Überwachung benötigen. AIDE ist die schlanke Standalone-Alternative.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Initiale DB | aide --init |
| System Check | aide --check |
| DB Update | aide --update |
| Config Test | aide --config-check |
| Nur bestimmte Files | aide --check --limit <regex> |
| Hilfe | man aide.conf |
| DB-Speicherort | /var/lib/aide/ |
| Config-Speicherort | /etc/aide/ |