linux-security security auditing rootkit rkhunter malware hardening

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 nutzt rkhunter wöchentlich, um die Integrität seiner Server zu garantieren.


# 1. Einführung & Architektur

Wie rkhunter scannt.

rkhunter arbeitet in Phasen:

  1. System Binaries: Prüft MD5/SHA Hashes gegen bekannte Werte.
  2. Rootkit Checks: Sucht nach Dateinamen und Pfaden, die typisch für bekannte Exploits sind.
  3. 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 --update aktuell.
  • 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