Windows Rootkits 2005, Teil 3

Der dritte und letzte Teil dieser Serie untersucht fünf verschiedene Techniken, um installierte Windows-Rootkits aufzuspüren. Dazu werden neun Tools vorgestellt, die dem Administrator bei dieser Aufgabe helfen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 19 Min.
Von
  • James Butler
  • Sherri Sparks
Inhaltsverzeichnis

Dieser Artikel erschien ursprünglich auf SecurityFocus in Englisch. Wir veröffentlichen die deutsche Übersetzung mit freundlicher Genehmigung der Redaktion und der Autoren.

In den letzten Jahren wurden Rootkits immer raffinierter und 2005 gab es eine wahre Welle von Spyware, Würmern, Bot-Netzen und sogar Musik-CDs, die Rootkits installierten. Auch wenn es extrem schwer ist, ein Rootkit aufzuspüren oder gar zu entfernen, wenn es den Computer einmal unterwandert hat, gibt es einige Methoden, das trotzdem zu bewerkstelligen – mit wechselnden Erfolgsaussichten.

Der erste Teil erklärte, was ein Windows-Rootkit ausmacht und warum sie so gefährlich sind. Teil zwei beschäftigte sich mit den neuesten Rootkit-Techniken und wie sie sich verstecken. Dieser dritte Teil untersucht fünf Techniken zum Aufspüren von Rootkits und stellt verschiedene Tools dazu vor.

Antivirenprodukte setzen bereits seit Jahren signaturbasierte Erkennungsmethoden ein. Das Konzept ist einfach: Man durchsucht Dateien auf bestimmte, eindeutige Byte-Folgen, die eine Art Fingerabdruck eines Rootkits darstellen. Wird er gefunden, signalisiert das eine Infektion. Da diese Technik traditionell auf Dateien angewendet wird, ist sie bei der Entdeckung von Rootkits wenig nützlich, zumindest sofern sie nicht mit fortgeschritteneren Methoden kombiniert wird. Denn Rootkits neigen dazu, Dateien beispielsweise über Hooking-Techniken zu verstecken.

Man kann diese eigentlich antiquierte Technik jedoch sinnvoll einsetzen, wenn man zusätzlich den Hauptspeicher untersucht. Denn interessanterweise sind die meisten veröffentlichten Rootkits anfällig für Signatur-Scans des Kernel-Speichers. Als Kernel-Treiber liegen sie normalerweise im Non-Paged-Speicher, und wenige unternehmen überhaupt Anstrengungen, ihren Code durch Polymorphismus zu verschleiern. Somit sollte ein einfacher Speicher-Scan die meisten bekannten Kernel-Rootkits identifizieren – egal ob sie DKOM, SSDT- oder IDT-Hooking oder ähnliches in ihrer Trickiste haben. Die Schlüsselwörter im letzten Satz waren jedoch "bekannte Rootkits", denn Signatur-Scans sind per Definition machtlos gegen Schadcode, für den keine Signatur vorliegt. Des Weiteren helfen Signatur-Scans nicht gegen Rootkits wie Shadow Walker, die das Virtual Memory Management unterwandern, da diese die Lesezugriffe des Scanners auf den Speicher kontrollieren [1].

Wo Signatur-Scans scheitern, springt die heuristische Erkennung ein. Ihr primärer Vorteil liegt darin, dass sie auch neue, bislang unbekannte Rootkits aufspüren kann. Sie erkennt Abweichungen von "normalen" Verhaltensmustern. Es sind bereits mehrere Heuristiken bekannt, um Rootkits aufzuspüren, die sich in den Ausführungspfad einklinken. Im Folgenden stellen wir zwei davon vor: VICE und Patchfinder.

VICE ist ein Freeware-Tool, das Hooks aufspüren soll [2]. Es ist ein Standalone-Tool, das einen Gerätetreiber installiert, um sowohl Applikationen im User Mode als auch den Kern des Betriebssystems zu analysieren. Im Kernel sucht VICE in der System Service Descriptor Table (SSDT) nach Funktionszeigern, die nicht auf ntoskrnl.exe zeigen. Des weiteren kann man Gerätetreiber in der Datei "driver.ini" hinzufügen, damit VICE deren IRP Major Function Table überprüft. (Anm. d. Ü.: Diese Tabelle listet die Funktionen, die der Treiber für die Behandlung von I/O Request Packets bereitstellt.) Verweist einer dieser Zeiger auf Code außerhalb des Treibers, hat sich ein externer Treiber oder eine Betriebssystemkomponente in die IRP-Behandlung einklinkt. Im User Mode überprüft VICE den Adressraum jeder Applikation auf IAT-Hooks in allen DLLs, die die Applikation benutzt. Inline Function Hooks in den importierten Bibliotheken entdeckt VICE ebenso wie in den Funktionen der SSDT. Es zeigt dabei an, welche Funktion umgeleitet wird und wohin. Wann immer möglich, zeigt das Tool auch den Pfad des Treibers oder der DLL-Datei an, die das Hooking durchführt, damit der Administrator diese entfernen kann. VICE entdeckt heute die meisten veröffentlichten Rootkits und alle Stealth-Techniken, die auf Hooking beruhen. Um VICE einzusetzen, muss auf dem Host-System Microsofts kostenloses .NET-Framework installiert sein.

Die aktuelle Version von VICE wurde allerdings bereits von mindestens einem bekannten Rootkit ausgetrickst. Es nutzte die Tatsache, dass VICE immer mit einem festen Prozessnamen ausgeführt wird. Wenn das Rootkit den VICE-Prozess entdeckte, leitete es keine Funktionen um, sodass VICE nichts finden konnte. Ein anderer Angriff zielte auf den Kommunikationskanal zwischen dem Gerätetreiber und der User-Mode-Applikation. Die größte Schwäche von VICE sind jedoch die vielen Fehlalarme, die es erzeugt. VICE spürt Hooks auf, aber es gibt auch viele legitime Einsatzgebiete für solche Hooks. Microsoft selbst nutzt sie beim Hot Patching und DLL Forwarding. Und es ist sehr schwer, einen bösen Hook von einem legitimen, gutartigen zu unterscheiden.