Wie entdeckt man Rootkits?

23.08.2005

Es existieren einige Methoden für das Eindringen der Rootkits in den Kernel des Systems:

1. Verwendung von LKM

Das Linux Kernel lässt es zu, wie viele andere Betriebssysteme auch, Module (oder Treiber) im laufenden Betrieb (on-the-fly) zu laden, was es dem Übeltäter erlaubt, die System-Aufrufe des Kernel zu verändern damit dieser falsche Information herausgibt, etwa eine nachgebesserte Dateiliste.

Eine solchen Herangehensweise lässt sich abblocken, wenn man den monoliten Kernel ohne LKM-Unterstützung kompiliert. Eine derartig Entscheidung bringt jedoch einen wesentlichen Mangel mit sich - man muss in den Kernel alle erforderlichen Treiber manuell einschließen;

2. Einträge in /dev/kmem

Dort ist der Zugang in Speicherbereiche gergelt, die normalerweise vom Kernel belegt sind. Einträge in /dev/kmem überschreiben den Kernel ebenfalls im laufenden Betrieb. Der Angreifer muss für die Veränderung des Kernels lediglich einen geeigneten Speicher-Platz finden.

Doch diese Gefahr ist leicht zu bannen. Es existiert eine Patch, der einen direkten Eintrag in /dev/kmem unterbindet. Genauso kann man das den Zugang über mmap schützen.

3. Infizierung vorhandener Module

Diese Methode unterscheidet sich von der ersten dadurch, dass das Rootkit keine eigenen Module enthält, sondern selbst Routinen befällt. Das Anwenden dieser Vorgehensweise macht Rootkits resistent bei einem Neustart, indem einige Module infiziert werden, welche auf jeden Fall geladen werden (z.B. den Treiber des Dateisystems).

Erkennen der Rootkits

Zum Erkennen von Rootkits kann man leider keine universellen Ratschläge geben, doch mit den folgenden Tipps lassen sich die meisten de aktuellen Rootkits nachweisen:

1. Beobachtung von anomalem Verhaltens von Programmen, von ungewöhnlicher Nutzung des Netzkapazitäten, von zusätzlich auszuführende Aufgaben beim Systemstart und der registrierten Einträge der Anwender

2. Folgenden Anwendungen helfen Rootkits zu erkennen: Saint Jude, Chrootkit, RkScan, Carbonite, Kstat, Rootkithunter, Tripware, Samhain und andere.

Resümee

Alle für Windows betrachteten Methoden zum Entdecken der aktiven Rootkits setzen bei deren Eindringen in das System und bei Störungen während des laufenden Betriebs. Genau diese Auswirkungen werden von Kaspersky-Produkten genutzt und ermöglichen es so, auch unbekannte Rootkits zu erkennen. In den jüngsten Windows-Versionen wird den Rootkit-Entwicklern das Leben noch schwerer gemacht, da Veränderungen im System-Code und in den sonstigen Infrastruktur-Ressourcen nicht zulässig sind. Damit wird sich die Ausbreitung von Rootkits zumindest für bestimmte Zeit auf die aktuellen Windows-Versionen beschränken.

Der Überhang an Schadcodes für Windows im Vergleich zu Unix ist in der gegenwärtig größeren Verbreitung des Microsoft-Betriebssystems begründet. Im Falle eines Ansteigens der Popularität von Unix oder Linux dürfte sich die Situation allmählich ändern - es werden neue Rootkits für Unix/Linux erscheinen und genauso die Methoden zu deren Erkennung und Beseitigung.

Der effektivste Schutz im Kampf gegen Rootkits bleibt nach wie vor die Prävention (rw)

Quelle: Kaspersky Lab

Zur Startseite