Aufmacher

Gut Gewappnet?!

Durch die Hintertür

01.01.2007
Alle sprechen über Rootkits, reden dabei aber meist nur über Windows. Auch Linux plagen die Schädlinge seit vielen Jahren. Wie funktionieren Linux-Rootkits und wie groß ist die Gefahr tatsächlich?

Die aktuellen Nachrichten lassen kaum einen Zweifel: Rootkits verursachen Probleme für Microsofts Betriebssysteme. Auch für das kommende – sicherheitstechnisch aufgerüstete – Windows Vista demonstrieren namhafte Experten bereits erste Rootkits, um den Fortbestand des Problems zu verdeutlichen [1].

Schadenfreude ist hier aber fehl am Platz: Auch Unix- und Linux-Systeme werden seit vielen Jahren von Rootkits geplagt. Wie aber sieht ein solcher Schädling überhaupt aus und wie gelangt er auf den Rechner?

Im Grunde handelt es sich bei einem Rootkit um eine Art Baukasten für den Einbruch in Rechnersysteme. Die Schritte der Einbrecher ähneln sich bei allen Attacken; vereinfacht dargestellt, sehen sie so aus:

  • 1. Festlegung des Zielsystems
  • 2. Analyse des Zielsystems (Betriebssystem, Dienste, Benutzer, etc.)
  • 3. Recherche der Sicherheitslücken
  • 4. Einbruch (Exploit)
  • 5. Verwischen der Spuren
  • 6. Installation von Hintertüren
  • 7. Installation von (Kennwort-)Sniffern

Während die Punkte 1 bis 4 sehr individuell vom Zielsystem abhängen, gleichen sich die Schritte 5 bis 7 bei allen Einbrüchen. Ob diese über einen FTP-Server oder ein erratenes Kennwort erfolgen, spielt für die Installation einer Hintertür keine Rolle. Die Aufgabe des Rootkits besteht darin, die Schritte 5 bis 7 zu vereinfachen und teilweise zu automatisieren.

Ein Rootkit dient dabei nicht als Einbruchswerkzeug, sondern hilft dem Angreifer nach getaner Arbeit, unentdeckt zu bleiben und weiter das System zu nutzen.

Rootkit-Evolution

Über die Jahre entwickelten Hacker verschiedene Arten von Rootkits für Linux. Die erste Generation arbeitet dateibasiert und tauscht lediglich einzelne Dateien aus, um Hintertüren einzubauen. Ein neuer Inetd-Superserver stellt dann einen Telnet-Server bereit, der an einem zusätzlichen Port lauscht. Befehle wie chfn verwandeln einen normalen Benutzer bei der Eingabe eines bestimmten Kennwortes in einen Root-Benutzer.

Um die Installation vor zusätzlichen Programmen wie Sniffern und Log-Dateien zu verbergen, tauschen diese Rootkits auch Kommandos wie ls, find, ps und top aus. Die neuen Befehle zeigen die Dateien und Prozesse des Einbrechers nicht an. Einer der bekanntesten Vertreter dieser Gattung heißt Linux-Rootkit-5 (LRK5). Interessierte Leser finden dieses und weitere vorgestellte Rootkits ohne Probleme im Internet (siehe Kasten "Rootkits")

Rootkits

Als unerschöpfliche Quelle für alle Arten von Werkzeugen rund um Sicherheit dient das Packetstorm-Archiv (Abbildung 1). Unter http://www.packetstormsecurity.org finden Sie sowohl Rootkits, Exploits als auch Werkzeuge zu deren Erkennung. Dieser Webserver archiviert das LRK5, Knark, KIS und Suckit neben vielen anderen Varianten.

Abbildung 1: Die Webseite Packetstorm Security hält nicht nur Informationen zu Rootkits, sondern auch die Schädlinge zur eigenen Analyse bereit.

Werkzeuge gegen diese Rootkits gab es recht schnell. Das bekannteste heißt Tripwire (Stolperdraht). Es schützt vor solchen Angriffen, indem es zu Beginn eine Datenbank mit den Prüfsummen der auf dem System befindlichen Dateien anlegt. Dann prüft Tripwire regelmäßig die Integrität der Dateien anhand der Datenbank. Es bietet guten Schutz vor dateibasierten Rootkits (Abbildung 2), ist allerdings aufwändig zu installieren.

Abbildung 2: Tripwire schützt vor der ersten Generation von Rootkits. Es verfolgt Veränderungen an bestimmten Dateien.

Die zweite Rootkit-Generation verfolgt einen anderen Ansatz. Statt Systemdateien auszutauschen, um Dateien und Prozesse zu verstecken, modifizieren diese Rootkits den Linux-Kernel, sodass dieser bestimmte Prozesse und Dateien und auch Netzwerkverbindungen nicht mehr anzeigt. Ein Austausch der Befehle ls oder ps erübrigt sich und Tripwire erkennt den Eindringling nicht mehr.

Diese Rootkits arbeiten als Kernel-Module, man nennt sie auch LKM-Rootkits. LKM steht für Loadable Kernel Module (ladbares Kernel-Modul). Das erste weit verbreitete Rootkit dieser Art ist Knark. Um eine Hintertür einzubauen, muss ein Angreifer gewöhnlich entweder eine zusätzliche Anwendung installieren oder eine vorhandene austauschen. Diesen Austausch erkennt Tripwire aber womöglich. Hierfür bietet Knark eine zusätzliche Lösung.

Angenommen, der Angreifer möchte den Secure-Shell-Server gegen eine modifizierte Variante austauschen, die ihm automatisch Root-Rechte verleiht. In diesem Fall installiert er seine modifizierte Shell zusätzlich zur originalen Shell auf dem System. Anschließend weist er den Kernel an, den modifizierten SSH-Server zu verbergen und bei einem nur lesenden Zugriff auf den SSH-Server die originale unveränderte Datei auszuliefern. Führt der Nutzer den SSH-Server hingegen aus, kommt die vom Angreifer modifizierte Datei zum Zuge. Tripwire liest die originale Datei ja lediglich und stellt daher keinen Austausch fest.

Um sich vor diesen LKM-basierten Rootkits zu schützen, verwenden viele Administratoren keine modularen, sondern monolithische Kernel. Sie kompilieren alle benötigten Treiber fest in den Kernel ein. Will ein Angreifer dann einen Treiber austauschen oder installieren, muss er den Kernel erneut kompilieren.

Die dritte Generation von Rootkits umgeht auch diese Hürde. Sie ermöglicht es dem Angreifer, den monolithischen Kernel zu kompromittieren. Diese Fähigkeit beruht auf der Tatsache, dass der Benutzer root Schreibzugriff auf den gesamten Arbeitsspeicher und damit auch auf den Kernel-Code besitzt. Das erste Rootkit dieser Art war 2001 KIS (Kernel Intrusion System). Dieses musste der Angreifer noch speziell für den Kernel auf dem Opfersystem anpassen. Moderne Rootkits (etwa Suckit) kompromittieren indes fast jeden beliebigen Kernel. Die Rootkits enthalten Code, um sich selbst in den Kernel-Speicher zu laden, und brauchen die Unterstützung des Kernels nicht mehr. Ein monolithischer Kernel schützt hier also nicht.

Schutz vor der 3. Generation

Leider gibt es keine einfache Möglichkeit, sich vor dieser Generation von Rootkits zu schützen. Drei Ansätze kommen in Frage:

  • Kein Nachladen von Kernel-Modulen erlauben: Werkzeuge wie LIDS oder SELinux verbieten dem Benutzer root das Laden von Kernel-Modulen und das Schreiben des Kernel-Speichers. Leider erweist sich ihre Konfiguration als sehr aufwendig und fehleranfällig. AppArmor bietet keinen Schutz.
  • Einbruch auf dem System verhindern: Gelangt der Einbrecher nicht in das System, kann er auch kein Rootkit installieren. Um dies zu gewährleisten, sollten Sie alle Softwarepakete auf dem neuesten Stand halten. Zusätzlichen Schutz bieten eine Firewall und ein Intrusion Detection System [2,3,4]. Den zur Zeit besten Schutz erhalten Sie, wenn Sie weitere Werkzeuge wie AppArmor, LIDS oder SELinux einsetzen [5]. Diese Werkzeuge überwachen die laufenden Anwendungen. Nutzt ein Angreifer eine Sicherheitslücke in diesen Anwendungen aus, um eine Shell zu starten, Programme nachzuladen oder Zugriff auf das System zu erhalten, verhindern diese Tool das mit der richtigen Konfiguration. Aufgrund ihrer Komplexität würde eine ausführliche Erläuterung jedoch den Rahmen dieses Artikels sprengen.
  • Es hilft zudem immer, wenn Sie das System regelmäßig überprüfen.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...