Viren- und Rootkit-Scanner
Viren- und Rootkit-Scanner
Unter Linux sind klassische Viren-Infektionen deutlich seltener als unter Windows – dennoch existieren Bedrohungen: Rootkits, Trojaner, Web-Shells auf Servern oder kompromittierte Binaries. Dieser Artikel stellt grundlegende Werkzeuge zur Erkennung solcher Bedrohungen vor und zeigt deren Einsatz in der Praxis.
Hintergrund
Braucht Linux einen Virenscanner?
Die kurze Antwort: Nicht zwingend, aber situationsabhängig. Für Desktop-Systeme mit aktuellem Kernel und eingeschränkten Nutzerrechten ist das Risiko gering. Relevanter wird das Thema bei:
- Servern mit vielen Nutzern oder Webdiensten
- Systemen, die Dateien für Windows-Clients bereitstellen (Samba)
- Umgebungen mit Compliance-Anforderungen (z.B. PCI-DSS)
Was ist ein Rootkit?
Ein Rootkit ist Schadsoftware, die sich gezielt versteckt – oft durch Manipulation von Systembinaries, Kernelmodulen oder Bibliotheken. Ziel ist es, dauerhaften, unentdeckten Zugriff auf ein System zu sichern. Erkennungswerkzeuge suchen daher nach:
- veränderten Systembinaries (Hashvergleich)
- bekannten Rootkit-Signaturen
- verdächtigen SUID-Dateien und versteckten Prozessen
- auffälligen Netzwerkverbindungen
Grenzen signaturbasierter Scanner
Alle hier vorgestellten Tools arbeiten signaturbasiert oder prüfen gegen eine bekannte Baseline. Das bedeutet:
- Neue, unbekannte Rootkits werden nicht erkannt
- False Positives sind häufig (legitime Tools werden als verdächtig gemeldet)
- Ein sauberer Scan schließt eine Kompromittierung nicht aus
Ein positiver Befund ist immer manuell zu verifizieren.
Werkzeuge im Überblick
| Werkzeug | Typ | Stärke | Schwäche |
|---|---|---|---|
chkrootkit |
Rootkit-Scanner | einfach, schnell | veraltet, wenige Updates |
rkhunter |
Rootkit-/Backdoor-Scanner | umfangreicher, konfigurierbar | viele False Positives |
ClamAV |
Virenscanner | aktive Datenbank, gut für Dateiserver | kein Rootkit-Fokus |
Installation
apt install chkrootkit rkhunter clamav clamav-daemon -y
chkrootkit
Grundnutzung
chkrootkit prüft Systembinaries auf bekannte Rootkit-Modifikationen per Shell-Skript.
sudo chkrootkit
Relevante Ausgabezeilen:
INFECTED– Treffer (unbedingt verifizieren, oft False Positive)not infected– unauffällignot found– Binary nicht vorhanden
Ausgabe in Datei umleiten:
sudo chkrootkit | tee /root/chkrootkit-$(date +%F).log
Vorführung: False Positive provozieren
chkrootkit meldet unter Debian häufig einen Alarm beim Paket sysstat:
apt install sysstat -y sudo chkrootkit | grep -i infected
Typische Ausgabe:
Checking `sniffer'... lo: PACKET SNIFFER(/usr/lib/xorg/Xorg PID)
Das ist ein bekannter False Positive – Xorg verwendet Raw Sockets, was chkrootkit als Sniffer interpretiert. Solche Meldungen illustrieren gut, warum Ergebnisse immer zu hinterfragen sind.
rkhunter
Konfiguration vorbereiten
Vor dem ersten Lauf muss eine Baseline der Systembinaries erstellt werden – nur auf einem nachweislich sauberen System:
sudo rkhunter --propupd
Diese Datenbank wird bei späteren Scans als Referenz verwendet.
Scan durchführen
sudo rkhunter --check --sk
--check– führt alle Tests durch--sk– überspringt Enter-Bestätigungen (Skip Keypress)
Ergebnis im Log:
sudo grep -i warning /var/log/rkhunter.log
Vorführung: Verdächtige SUID-Datei anlegen
Um zu zeigen, was rkhunter erkennt, wird manuell eine SUID-Datei erstellt:
sudo cp /bin/bash /tmp/backdoor sudo chmod u+s /tmp/backdoor
Jetzt Scan ausführen:
sudo rkhunter --check --sk 2>/dev/null | grep -A2 -i "suid"
rkhunter meldet die neue SUID-Datei als auffällig. Danach aufräumen:
sudo rm /tmp/backdoor
Whitelist für False Positives
Bekannte False Positives können in /etc/rkhunter.conf whitegelistet werden:
SCRIPTWHITELIST=/usr/bin/prelink ALLOWHIDDENDIR=/dev/.udev
Nach Änderungen an der Konfiguration:
sudo rkhunter --propupd
ClamAV
ClamAV ist primär ein Virenscanner – kein Rootkit-Detektor. Relevant für Systeme, die Dateien für Windows-Clients bereitstellen oder Mail-Server betreiben.
Datenbank aktualisieren
sudo systemctl stop clamav-freshclam sudo freshclam sudo systemctl start clamav-freshclam
Verzeichnis scannen
sudo clamscan -r --infected /home
-r– rekursiv--infected– nur infizierte Dateien ausgeben
Vorführung: Testdatei EICAR
Der EICAR-Testvirus ist eine harmlose Datei, die von allen Virenscannern als Bedrohung erkannt werden soll:
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicar.txt sudo clamscan /tmp/eicar.txt
Erwartete Ausgabe:
/tmp/eicar.txt: Eicar-Signature FOUND
Danach aufräumen:
sudo rm /tmp/eicar.txt
Automatisierung mit Cron
Regelmäßige Scans können per Cronjob eingerichtet werden:
sudo crontab -e
Beispiel: rkhunter täglich um 02:00 Uhr mit Ergebnismail:
0 2 * * * /usr/bin/rkhunter --check --sk --report-warnings-only | mail -s "rkhunter Report $(hostname)" root
Voraussetzung: Ein MTA (z.B. postfix) muss konfiguriert sein.
Fazit und Einordnung
| Szenario | Empfehlung |
|---|---|
| Schneller Einmal-Check | chkrootkit + rkhunter kombinieren
|
| Dateiserver für Windows-Clients | ClamAV mit regelmäßigem Scan
|
| Produktiver Server mit Compliance-Anforderungen | Wazuh / OSSEC als vollständiges HIDS |
| Verdacht auf aktive Kompromittierung | System offline nehmen, Forensik von externem Medium |
Wichtigste Erkenntnis: Ein sauberer Scan bedeutet nicht "sicher". Die Tools sind eine Schicht im Sicherheitskonzept, kein Allheilmittel. Ergänzend dazu gehören: aktueller Kernel, minimale Angriffsfläche, Firewall, und Monitoring von Logins und Systemänderungen (siehe Artikel Linux Security Hardening).