Rootkit Detection: rkhunter Mastery (Artikel 350)
Beherrschung des Rootkit Hunter (rkhunter). Erfahren Sie alles über das Aufspüren von Stealth-Malware, die Verifizierung von System-Binaries und den Schutz vor Hintertüren.
# rkhunter Mastery: Den lautlosen Feind entlarven
TL;DR / Management Summary Ein Rootkit ist eine besonders heimtückische Form von Malware: Es versteckt sich im Kernel oder manipuliert Systembefehle (
ls,ps), um seine Anwesenheit zu verschleiern. rkhunter (Rootkit Hunter) ist das Standard-Tool, um diese Bedrohungen aufzuspüren. Es vergleicht Systemdateien mit einer globalen Datenbank bekannter Signaturen und prüft auf verdächtige Verhaltensweisen (z.B. versteckte Ports). Ein Senior Admin nutztrkhunterwöchentlich, um die Integrität seiner Server zu garantieren.
# 1. Einführung & Architektur
Wie rkhunter scannt.
rkhunter arbeitet in Phasen:
- System Binaries: Prüft MD5/SHA Hashes gegen bekannte Werte.
- Rootkit Checks: Sucht nach Dateinamen und Pfaden, die typisch für bekannte Exploits sind.
- Local Host Checks: Prüft auf verdächtige Kernel-Module, Sockets und Netzwerk-Interfaces.
# Der Scan-Prozess (Mermaid)
graph TD
A[Start: rkhunter --check] --> B[Phase 1: Binary Hashes]
B --> C[Phase 2: Known Rootkit Paths]
C --> D[Phase 3: Kernel & Network Scan]
D --> E{Result}
E -->|Warning| F[Manual Review: /var/log/rkhunter.log]
E -->|Clean| G[Status: System OK]
subgraph "The Gold Standard"
H[rkhunter --propupd] -->|Baseline| B
end
# 2. Erstes Setup: Die Baseline setzen
Wem vertrauen wir?
Bevor Sie den ersten Scan durchführen, müssen Sie rkhunter sagen, wie ein “sauberes” System aussieht.
# Schritt 1: Pakete installieren
sudo apt install rkhunter # Debian
sudo dnf install rkhunter # RHEL
# Schritt 2: Datenbanken aktualisieren
sudo rkhunter --update # Lädt Signaturen aus dem Netz
sudo rkhunter --propupd # Erstellt die Baseline Ihres aktuellen Systems
# 3. Der System-Scan
Die Suche nach dem Unbekannten.
sudo rkhunter --check --sk # --sk: Überspringt das Warten auf 'Enter'
Wichtig: rkhunter meldet oft Warnungen bei Konfigurationsdateien oder legitimen Skripten. Ein “Warning” bedeutet nicht sofort “Hack”, sondern “Prüfung erforderlich”.
# 4. Day-2 Operations: Whitelisting
Rauschen minimieren.
Wenn rkhunter einen Dienst (z.B. eine legitime Bridge-Config) immer als verdächtig meldet, setzen wir ihn in die Whitelist.
Datei: /etc/rkhunter.conf
ALLOW_SSH_ROOT_USER=no
ALLOW_SYSLOG_REMOTE_LOGGING=1
RTKT_FILE_WHITELIST="/pfad/zu/legitimem/file"
# 5. Troubleshooting & “War Stories”
Wenn der Jäger sich irrt.
# Story 1: “Der False-Positive nach dem Upgrade”
Symptom: Nach einem normalen dnf upgrade meldet rkhunter bei fast allen Core-Binaries (ls, cp, ssh) “Warning: File has changed”.
Ursache: Die Binaries wurden durch das Update rechtmäßig ersetzt. rkhunter kennt aber noch die Hashes der alten Version.
Lösung: Führen Sie nach jedem System-Update sudo rkhunter --propupd aus, um die neue Baseline zu setzen.
# Story 2: “Das unentdeckte Kernel-Rootkit”
Symptom: Der Server verhält sich seltsam (Netzwerk-Traffic zu unbekannten IPs), aber rkhunter meldet “System OK”. Ursache: Moderne Rootkits verstecken sich im Kernel-Memory. Wenn der rkhunter-Prozess selbst manipuliert wird (Syscall Hooking), sieht er nur das, was der Angreifer ihn sehen lässt. Lösung: Nutzen Sie rkhunter von einem schreibgeschützten Live-Medium oder kombinieren Sie es mit Auditd (Artikel 337) und AIDE (Artikel 349). Ein Jäger allein ist nicht genug.
# 6. Fazit & Empfehlung
- Routine: Automatisieren Sie rkhunter via Cron und lassen Sie sich Berichte per E-Mail senden.
- Wartung: Halten Sie die Signaturen mit
--updateaktuell. - Wahl: Nutzen Sie zusätzlich chkrootkit für eine zweite Meinung. Beide Tools ergänzen sich hervorragend.
# Anhang: Cheatsheet
| Aufgabe | Befehl |
|---|---|
| Scan starten | rkhunter --check |
| Baseline setzen | rkhunter --propupd |
| Signaturen updaten | rkhunter --update |
| Nur Warnungen zeigen | rkhunter --check --report-only |
| Hilfe anzeigen | rkhunter --help |
| Log-Datei | /var/log/rkhunter.log |
| Konfigurationsdatei | /etc/rkhunter.conf |
| Rootkits listen | rkhunter --list tests |