ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

rkhunter

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

rkhunter 🇬🇧 (Rootkit Hunter) ist ein Linux-Werkzeug, welches nach Rootkits, Hintertüren und möglichen lokalen Exploits sucht. Dabei vergleicht es vorhandene Dateien anhand von MD5-hashes mit kompromittierten Dateien, sucht nach von Rootkits angelegten Ordnern, falschen Dateirechten, versteckten Dateien, verdächtigen Strings in Kernelmodulen und führt eine Reihe weiterer Tests durch.

rkhunter richtet sich dabei an professionelle Linux-Administratoren, wobei das Programm natürlich jeder benutzen kann. Um die Ausgabe verstehen zu können, bedarf es aber mindestens Grundkenntnissen der tieferen Schichten des Betriebssystems.

Installation

Aus den Paketquellen

Das Programm kann aus den Paketquellen von Ubuntu über das Paket

  • rkhunter

Befehl zum Installieren der Pakete:

sudo apt-get install rkhunter 

Oder mit apturl installieren, Link: apt://rkhunter

installiert [1] werden. Danach sollte ein mandatorisches Update der known-bad-Hash-Datenbank von rkhunter durchgeführt werden. Dies geht von der Konsole [3] aus durch den Befehl

sudo rkhunter --update 

Manuelle Installation

Zuerst lädt man sich das aktuelle rkhunter-Paket von Sourceforge 🇬🇧 herunter und entpackt [5] es in ein Verzeichnis seiner Wahl. Danach öffnet man zuerst mit einem Editor [4] die Datei installer.sh und ändert die erste Zeile in

#!/bin/bash

um. Jetzt installiert man rkhunter vom Terminal [6] aus mit:

sudo ./installer.sh --layout /usr/local --install 

Um nun die Probleme der Version aus den Paketquellen zu beheben, bringt man rkhunter 1.3 mit einem zusätzlichen Parameter auf den aktuellen Stand:

sudo rkhunter --propupd --update 

Hinweis:

Durch den Parameter --propupd werden die Hash-Werte für "known-good"-Dateien vom momentanen System erstellt. Bei einem Scan werden dann die gefundenen Werte mit diesen Hash-Werten verglichen. Dabei gilt zu beachten, dass dies nur funktioniert, wenn das System zu dem Zeitpunkt der Durchführung des Updates durch --propupd noch nicht kompromittiert war. Es empfiehlt sich also, diesen Schritt auf einer neuen Ubuntu-Installation anzuwenden, da somit sichergestellt wird, dass die Hash-Werte auch richtig sind.

Benutzung

Jetzt kann man das komplette System mit folgendem Befehl scannen:

sudo rkhunter -c 
Einige Parameter
-c kompletter System-Scan
--display-logfile zeigt eine Zusammenfassung des Scans am Ende
--skip-keypress man muss zwischen den einzelnen Scan-Abschnitten nicht mehr Enter drücken
--updateführt ein Update der known-bad Hash-Datenbank durch
--propupdführt ein Update der known-good Hash-Datenbank durch (nur bei der manuell installierten Version bzw. > 1.3 möglich )

Eine vollständige Liste der möglichen Parameter findet man in den manpages von rkhunter.

Achtung!

Alleine durch die Benutzung von rkhunter kann nicht garantiert werden, dass sich nicht doch ein Rootkit auf dem System befindet. Die Anwendung von nur einem einzigen Tool ist nicht sehr effektiv, da ein Autor sein Rootkit dagegen immun gemacht haben könnte. Es sollten immer noch weitere Tests durchgeführt werden, wie zum Beispiel mit chkrootkit bzw. andere Maßnahmen vorgenommen werden. Desweiteren sollte rkhunter, um dessen Integrität und damit die Verlässlichkeit sicherzustellen, immer von einem 100%ig unkompromitierten System ausgeführt werden, wie z.B. einer Live-CD.

Automatische Tests per Cron-Job

Gerade bei Servern ist es nicht immer möglich, von einer Live-CD zu booten und dann nach Rootkits zu fanden. Hierfür haben die Programmierer die Möglichkeit geschaffen, rkhunter als Cron-Job auszuführen.

Bevor man rkhunter als Cron-Job einplant, sollte man sich jedoch sicher sein, das Programm auf einem nicht kompromittierten System zu installieren, um die entsprechenden MD5-Fingerprints anzulegen (zum Beispiel nach einer Neuinstallation).

Nach der Installation von rkhunter sollte man zuerst

sudo rkhunter --propupd --update  

ausführen, um das Programm auf den aktuellen Stand zu bringen.

sudo rkhunter -c  

startet dann einen umfassenden interaktiven Prüflauf. Hierbei kann es durchaus zu Fehlalarmen kommen. Diese überprüft man in der Logdatei /var/log/rkhunter.log und passt gegebenenfalls die Konfigurationsdatei /etc/rkhunter.conf an, Zum Beispiel, um inetd Dienste wie „swat“ hinzuzufügen.

Whitelist erstellen

Nach dem ersten Scan sollte man /var/log/rkhunter.log genau ansehen und /etc/rkhunter.conf so ändern, dass keine Warnungen mehr kommen. Vorher aber alle Warnungen genau untersuchen und erst dann die Konfiguration anpassen. Wie /etc/rkhunter.conf angepasst werden kann, zeigt folgendes Skript, das aus der FAQ von rkhunter entstanden ist. Es wird nichts angepasst, nur die Zeilen angezeigt, welche dann in die Konfiguration kopiert werden können.

#!/bin/sh
# http://rkhunter.cvs.sourceforge.net/viewvc/rkhunter/rkhunter/files/FAQ
LOG=/var/log/rkhunter.log
cat <<EOF
6. WHITELISTING EXAMPLES
========================

6.1) After Rootkit Hunter has run you may encounter items in the log
     file you would like to whitelist. First verify that the entries
     are safe to add. The results of running these commands can be
     added to your 'rkhunter.conf.local' configuration file. Please
     adjust the commands, and the location of your 'rkhunter.log' log
     file, and verify the results before adding them. Do not automate
     adding whitelist entries to your configuration file.

EOF

echo '
     Allow script replacements ("properties" test):'
     awk -F"'" '/replaced by a script/ {print "SCRIPTWHITELIST="$2}' $LOG
echo '
     Allow processes using deleted files ("deleted_files" test):'
     awk '/Process: / {print "ALLOWPROCDELFILE="$3}' $LOG | sort -u
echo '
     Allow Xinetd services:'
     awk '/Found enabled xinetd service/ {print $NF}' $LOG |
      xargs -iX grep -e "server[[:blank:]]" 'X' | awk '{print "XINETD_ALLOWED_SVC="$NF}'
echo '
     Allow packet capturing applications ("packet_cap_apps" test):'
     awk -F"'" '/is listening on the network/ {print "ALLOWPROCLISTEN="$2}' $LOG
echo '
     Allow "suspicious" files ("filesystem" test):'
     grep '^\[..:..:..\][[:blank:]]\{6\}.*/dev/shm/.*:' $LOG |
      awk '{print "ALLOWDEVFILE="$2}' | sed -e "s|:$||g"
echo '
     Allow hidden directories ("filesystem" test):'
     awk '/Warning: Hidden directory/ {print "ALLOWHIDDENDIR="$6}' $LOG
echo '
     Allow hidden files ("filesystem" test):'
     awk '/Warning: Hidden file/ {print "ALLOWHIDDENFILE="$6}' $LOG |
      sed -e "s|:$||g"
 

Läuft alles sauber, d.h. man bekommt keine Fehlalarme mehr, kann man rkhunter als Cron-Job in /etc/crontab eintragen:

10 3    * * *   root    /usr/bin/rkhunter --cronjob 

Wer aus den Paketquellen installiert hat, verwendet aber direkt /etc/cron.daily und muss nichts Weiteres einstellen. Eine weitere Anpassung der Konfigurationsdatei /etc/rkhunter.conf benachrichtigt bei Warnungen komfortabel per E-Mail. Außerdem ist es sinnvoll, einen weiteren Scanner wie chkrootkit regelmäßig einzuplanen.

Diese Revision wurde am 10. Oktober 2011 18:12 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit