Gut Gewappnet?!
Durch die Hintertür
Such das Rootkit
Scheuen Sie den Aufwand, den AppArmor oder SELinux erfordern, und hegen Sie zugleich den Verdacht, dass Sie ein Rootkit an Bord haben, suchen Sie mit verschiedenen Werkzeugen nach dem Schädling.
Neben Hausmitteln wie ls, netstat, lsof stehen Ihnen auch einige Spezialwerkzeuge zur Verfügung, denn mit den Hausmitteln kommen Sie häufig nicht weit. Versteckt ein Kernel-Rootkit einen offenen Port, zeigen netstat und lsof diesen nicht mehr an. Die Suche bleibt vergebens. Das bekannteste Spezialwerkzeug heißt chkrootkit, ein vergleichbares Tool nennt sich rkhunter. Die Programme suchen nach Anzeichen bereits veröffentlichter und analysierter Rootkits. Leider kennen fähige Einbrecher auch diese Werkzeuge und passen den Code des Rootkits entsprechend an. Daher suchen chkrootkit und rkhunter auch nach weiteren generischen Merkmalen eines installierten Rootkits. Speziell bei Kernel-Rootkits haben die Helfer häufig Erfolg.
Sie spielen die Werkzeuge recht einfach und mit Root-Rechten auf Ihr System. Als Nutzer von Ubuntu oder Suse Linux installieren Sie die Software auch direkt über den jeweiligen Paketmanager, erhalten dann aber nicht unbedingt die neueste Version.
Alternativ laden Sie eine aktuelle Version von Chkrootkit [6] als tar.gz-Archiv von der Webseite herunter. Entpacken Sie das Archiv, übersetzen Sie das Programm mit make und rufen Sie anschließend mit Root-Rechten ./chkrootkit auf. Geben Sie dem Aufruf die Option -q mit, spuckt Chkrootkit nur Warnungen aus.
Rkhunter [7] entpacken Sie ebenfalls und installieren es – als Root – über den Aufruf ./installer.sh. Der Befehl rkhunter startet das Tool, mit der Option --quiet gibt es nur Warnungen aus. Die Abbildungen 3 und 4 zeigen jeweils die Ausgaben der Befehle unter Fedora Core 6.
Die Ergebnisse zeigen, dass die Werkzeuge durchaus Probleme mit der Analyse haben. So stuft Chkrootkit einige Dateien und Prozesse zu Unrecht als verdächtig ein; Rkhunter verfügt noch nicht über aktualisierte MD5-Prüfsummen, um die Dateien der Distribution zu verifizieren. Speziell bei Chkrootkit müssen Sie selbst tätig werden, um Prozesse und Dateien zu analysieren, wozu Sie jedoch entsprechendes Hintergrundwissen brauchen. Bei Rkhunter besteht weniger Handlungsbedarf. Unterstützt Rkhunter Ihre Distribution, dient es als recht ordentliches Mittel, um Ihren Rechner zu überprüfen, und erfordert nur wenig manuelle Korrekturen.
Fazit
Besser fahren Sie generell, wenn Sie einen Einbruch verhindern und so die Installation eines Rootkits ausschließen. Spielen Sie also alle Updates zeitnah ein und schalten Sie nicht benötigte Dienste ab. Jeder zusätzliche erreichbare Dienst auf einem System stellt ein mögliches Sicherheitsrisiko dar.
Diese Vorsichtsmaßnahmen schützen Sie allerdings nicht vor Angreifern, die bislang unbekannte Sicherheitslücken ausnutzen. Hier helfen – richtig konfiguriert – Werkzeuge wie AppArmor, LIDS oder SELinux.
Der Autor
Ralf Spenneberg arbeitet als freier Unix/Linux-Trainer und Autor. Er veröffentlichte die Bücher "Intrusion Detection für Linux-Server" und "VPN mit Linux", entwickelte Kursunterlagen und bietet Inhouse-Schulungen an.
Glossar
Rootkit
Eine Sammlung von Programmen, die es einem Einbrecher erleichtern, seine Spuren im System zu verwischen und Hintertüren einzubauen, ohne dass Sie es merken.
Inetd-Superserver
startet unter Linux Netzwerkdienste. Trifft eine Anfrage an einem bestimmten Netzwerk-Port ein, reicht Inetd sie an den zuständigen Dienst weiter.
LKM
Loadable Kernel Module. Üblicherweise besteht der Linux-Kernel aus Modulen. Das ermöglicht es, zur Laufzeit die benötigten Treiber auszuwählen und nachzuladen. Auf diese Weise unterstützt auch ein kleiner Kernel eine Vielzahl von Treibern, denn er lädt nicht benötigte Treiber einfach nicht.
AppArmor
Während SELinux und LIDS das gesamte System überwachen, kontrolliert AppArmor nur wenige exponierte Applikationen. Es verhindert den Einbruch in ein System, indem es zum Beispiel dem Webserver untersagt, eine Shell zu starten. Der Einbrecher kann so keine Befehle mehr auf dem System ausführen. Hat er aber einen Weg auf den Rechner gefunden, bietet AppArmor keinen Schutz mehr. Das Laden von Modulen oder das Schreiben in den Kernel-Speicher überwacht AppArmor indes nicht.
LIDS
Das Linux Intrusion Detection System. Das Werkzeug erlaubt es Ihnen, dem Benutzer Root sämtliche Rechte zu entziehen und diese fein granuliert auf die entsprechenden Dienste zu verteilen. Normalerweise müssen Sie den Webserver mit Root-Rechten starten, damit er den Port 80 nutzt. Alle Ports unter 1024 heißen privilegierte Ports und stehen nur Root zur Verfügung. LIDS entzieht dem Nutzer Root das Recht für Port 80 und übergibt es dem Binärprogramm /usr/sbin/httpd. Dies funktioniert auch mit allen anderen Root-Privilegien. Ein Einbrecher darf dann selbst mit Root-Rechten keinerlei administrative Aktionen auf dem System ausführen. Es ist ihm nicht erlaubt, Module zu laden und in den Kernel-Speicher zu schreiben.
SELinux
Security Enhanced Linux. Diese Linux-Erweiterung bestimmt mit einer sehr fein granulierten Richtlinie, welcher Prozess auf welche Dateien wie zugreifen darf. Sie behandelt dabei alle Benutzer und Dateien zunächst gleich. Auch Root erhält keine Sonderbefugnisse. Die Richtlinie legt fest, wer wie auf welche Datei zugreifen darf und verbietet das Laden von Modulen oder das Schreiben in den Kernel-Speicher.
[1] Vista-Rootkit-Demo: http://www.blackhat.com/html/bh-usa-06/bh-usa-06-speakers.html#Rutkowska
[2] Marc André Selig, "Private Feuerwände", LinuxUser 05/2002, S. 30, http://www.linux-user.de/ausgabe/2002/05/030-firewall/firewall-4.html
[3] Ralf Spenneberg: "Linux Firewalls mit Iptables & Co.", Addison-Wesley 2006
[4] Ralf Spenneberg: "SELinux und AppArmor", Addison-Wesley 2007
[5] Ralf Spenneberg: "Intrusion Detection und Prevention mit Snort & Co.", Addison Wesley 2005
[6] Chkrootkit: http://www.chkrootkit.org
[7] Rkhunter: http://rkhunter.sf.net



