|
|
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| | | *[[chkrootkit und rkhunter]] |
| = Viren- und Rootkit-Scanner =
| | *[[debsums]] |
| | | *[[rpm verify]] |
| 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.
| | *[[clamav Verzeichnis scannen]] |
| | |
| == 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 ==
| |
| | |
| {| class="wikitable"
| |
| ! Werkzeug !! Typ !! Stärke !! Schwäche
| |
| |-
| |
| | <code>chkrootkit</code> || Rootkit-Scanner || einfach, schnell || veraltet, wenige Updates
| |
| |-
| |
| | <code>rkhunter</code> || Rootkit-/Backdoor-Scanner || umfangreicher, konfigurierbar || viele False Positives
| |
| |-
| |
| | <code>ClamAV</code> || Virenscanner || aktive Datenbank, gut für Dateiserver || kein Rootkit-Fokus
| |
| |}
| |
| | |
| == Installation ==
| |
| | |
| <code>apt install chkrootkit rkhunter clamav clamav-daemon -y</code>
| |
| | |
| == chkrootkit ==
| |
| | |
| === Grundnutzung ===
| |
| | |
| <code>chkrootkit</code> prüft Systembinaries auf bekannte Rootkit-Modifikationen per Shell-Skript.
| |
| | |
| <code>sudo chkrootkit</code>
| |
| | |
| Relevante Ausgabezeilen:
| |
| | |
| * <code>INFECTED</code> – Treffer (unbedingt verifizieren, oft False Positive)
| |
| * <code>not infected</code> – unauffällig
| |
| * <code>not found</code> – Binary nicht vorhanden
| |
| | |
| Ausgabe in Datei umleiten:
| |
| | |
| <code>sudo chkrootkit | tee /root/chkrootkit-$(date +%F).log</code>
| |
| | |
| === Vorführung: False Positive provozieren ===
| |
| | |
| <code>chkrootkit</code> meldet unter Debian häufig einen Alarm beim Paket <code>sysstat</code>:
| |
| | |
| <pre>
| |
| apt install sysstat -y
| |
| sudo chkrootkit | grep -i infected
| |
| </pre>
| |
| | |
| Typische Ausgabe:
| |
| | |
| Checking `sniffer'... lo: PACKET SNIFFER(/usr/lib/xorg/Xorg PID)
| |
| | |
| Das ist ein bekannter False Positive – <code>Xorg</code> verwendet Raw Sockets, was <code>chkrootkit</code> 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''':
| |
| | |
| <code>sudo rkhunter --propupd</code>
| |
| | |
| Diese Datenbank wird bei späteren Scans als Referenz verwendet.
| |
| | |
| === Scan durchführen ===
| |
| | |
| <code>sudo rkhunter --check --sk</code>
| |
| | |
| * <code>--check</code> – führt alle Tests durch
| |
| * <code>--sk</code> – überspringt Enter-Bestätigungen (Skip Keypress)
| |
| | |
| Ergebnis im Log:
| |
| | |
| <code>sudo grep -i warning /var/log/rkhunter.log</code>
| |
| | |
| === Vorführung: Verdächtige SUID-Datei anlegen ===
| |
| | |
| Um zu zeigen, was rkhunter erkennt, wird manuell eine SUID-Datei erstellt:
| |
| | |
| <pre>
| |
| sudo cp /bin/bash /tmp/backdoor
| |
| sudo chmod u+s /tmp/backdoor
| |
| </pre>
| |
| | |
| Jetzt Scan ausführen:
| |
| | |
| <code>sudo rkhunter --check --sk 2>/dev/null | grep -A2 -i "suid"</code>
| |
| | |
| rkhunter meldet die neue SUID-Datei als auffällig. Danach aufräumen:
| |
| | |
| <code>sudo rm /tmp/backdoor</code>
| |
| | |
| === Whitelist für False Positives ===
| |
| | |
| Bekannte False Positives können in <code>/etc/rkhunter.conf</code> whitegelistet werden:
| |
| | |
| <pre>
| |
| SCRIPTWHITELIST=/usr/bin/prelink
| |
| ALLOWHIDDENDIR=/dev/.udev
| |
| </pre>
| |
| | |
| Nach Änderungen an der Konfiguration:
| |
| | |
| <code>sudo rkhunter --propupd</code>
| |
| | |
| == 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 ===
| |
| | |
| <pre>
| |
| sudo systemctl stop clamav-freshclam
| |
| sudo freshclam
| |
| sudo systemctl start clamav-freshclam
| |
| </pre>
| |
| | |
| === Verzeichnis scannen ===
| |
| | |
| <code>sudo clamscan -r --infected /home</code>
| |
| | |
| * <code>-r</code> – rekursiv
| |
| * <code>--infected</code> – nur infizierte Dateien ausgeben
| |
| | |
| === Vorführung: Testdatei EICAR ===
| |
| | |
| Der EICAR-Testvirus ist eine harmlose Datei, die von allen Virenscannern als Bedrohung erkannt werden soll:
| |
| | |
| <pre>
| |
| echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicar.txt
| |
| sudo clamscan /tmp/eicar.txt
| |
| </pre>
| |
| | |
| Erwartete Ausgabe:
| |
| | |
| /tmp/eicar.txt: Eicar-Signature FOUND
| |
| | |
| Danach aufräumen:
| |
| | |
| <code>sudo rm /tmp/eicar.txt</code>
| |
| | |
| == Automatisierung mit Cron ==
| |
| | |
| Regelmäßige Scans können per Cronjob eingerichtet werden:
| |
| | |
| <code>sudo crontab -e</code>
| |
| | |
| 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. <code>postfix</code>) muss konfiguriert sein.
| |
| | |
| == Fazit und Einordnung ==
| |
| | |
| {| class="wikitable"
| |
| ! Szenario !! Empfehlung
| |
| |-
| |
| | Schneller Einmal-Check || <code>chkrootkit</code> + <code>rkhunter</code> kombinieren
| |
| |-
| |
| | Dateiserver für Windows-Clients || <code>ClamAV</code> 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]]).
| |
| | |
| == Weblinks ==
| |
| | |
| * [http://www.chkrootkit.org/ chkrootkit Projektseite] | |
| * [https://rkhunter.sourceforge.net/ rkhunter Projektseite] | |
| * [https://www.clamav.net/ ClamAV]
| |