Ein Rootkit, dass das angegriffene System in eine virtuelle Maschine verlagert, ist nahezu nicht zu entdecken. Um dieses "nahezu"" genauer zu untersuchen, wurde bereits 2006 ein solches Rootkit entworfen - von Microsoft.

SubVirt ist ein funktionsfähiger Proof of Concept für ein virtualisierendes Rootkit, von den Entwicklern als "Hypervirus" oder "Virtual-Machine Based Rootkit" (VMBR) bezeichnet, der im Mai 2006 auf der Konferenz IEEE Symposium on Security and Privacy vorgestellt wurde.

Das Rootkit installiert eine virtuelle Maschine und startet darin das eigentliche Betriebssystem des angegriffenen Rechners. Ein bösartiges Rootkit dieses Typs könnte dann Schadsoftware in weiteren virtuellen Maschinen ausführen, ohne dass die (oder das Rootkit selbst) von herkömmlichen Virenscannern erkannt werden können. Die Forscher Samuel T. King und Peter M. Chen von der University of Michigan und Yi-Min Wang, Chad Verbowski, Helen J. Wang und Jacob R. Lorch von Microsoft Research entwickelten zwei solche Rootkits, mit denen sie sowohl Windows XP als auch Linux erfolgreich angreifen konnten. Außerdem entwickelten sie vier Beispiele für von diesen Rootkits eingesetzte Schadsoftware: Einen Webserver für Phishing-Seiten, einen Keylogger, ein Tool zur Suche nach interessanten Dateien und ein Tool zum Aushebeln einer Erkennungsfunktion für virtuelle Maschinen.

Zur Installation von SubVirt benötigt der Angreifer Administrator- bzw. root-Rechte, die er sich z.B. über eine entsprechende Schwachstelle oder durch Social Engineering verschaffen kann. Nach der Installation des Rootkits muss das System neu gestartet werden, damit das Rootkit aktiv wird. Das startet dann eine virtuelle Maschine und darin das Betriebssystem des angegriffenen Rechners.

Erkennbar oder nicht erkennbar, ...

... das ist hier die Frage. Ziel des Entwurfs war es natürlich, Möglichkeiten zur Erkennung solcher Angriffe zu entwickeln. Die besten Chancen bestehen, wenn die Schutz- bzw. Erkennungsfunktionen unterhalb bzw. außerhalb der virtuellen Maschine des Rootkits aktiv werden. Das kann z.B. durch sichere Hardware wie z.B. die damals aktuellen Ansätze zum Trustworthy Computing geschehen, die ein gestartetes Rootkit erkennen. Auch nach dem Booten von einem sicheren Medium wie CD-ROM, USB-Stick oder Netzwerk-Bootserver kann das dann nicht laufende Rootkit erkannt werden. Eine weitere Möglichkeit ist der Einsatz einer sicheren virtuellen Maschine, die dann die Kontrolle über das System hat und eine danach gestartete virtuelle Maschine eines Rootkits erkennen kann.

Software in der virtuellen Maschine des Rootkits kann dieses kaum erkennen. Einige Anhaltspunkte für die Änderungen gibt es jedoch, z.B. die unterschiedlichen Geschwindigkeiten bei Zugriffen auf die Hardware: Direkte Zugriffe sind schneller also die gleichen Zugriffe über die virtuelle Maschine. Außerdem emulieren die virtuellen Maschinen die CPUs u.U. nicht perfekt, so dass es Implementierungsunterschiede zwischen emulierter CPU und echter CPU gibt. Weitere Möglichkeiten bietet der Verbrauch an Ressourcen wie CPU-Leistung, Hauptspeicher und Festplattenplatz.

Während die Entwickler der Ansicht sind, ein virtualisierendes Rootkit sei kaum zu entdecken, sind andere der Ansicht, dass sei leicht möglich.

Blue Pill - Ein PoC ist nicht genug

Wenig später wurde das nächste virtualisierende Rootkit veröffentlicht: Joanna Rutkowska stellte in ihrem Vortrag "Subverting Vista Kernel For Fun And Profit" auf der vom 29. Juli bis 3. August stattfindenden Sicherheitskonferenz Black Hat USA 2006 ihr Rootkit Blue Pill vor (Präsentation als PDF). Einen ähnlichen Vortrag hatte sie bereits Ende Juli auf der SyScan Conference gehalten. Blue Bill wurde für Vista x64 entwickelt, könnte aber auch für Linux oder BSD angepasst werden, aber nur auf der x64-Plattform, da deren Hardware-Virtualisierung verwendet wird

"Blue Pill" bezieht sich dabei auf die blaue Pille in der Matrix, die dafür sorgt, dass der Betroffene in der virtuellen Realität bleibt und diese nicht erkennt. Falls Sie also auf der Suche nach Viagra auf dieser Seite gelandet sind, können Sie jetzt weiter klicken, z.B. hier hin.

Blue Pill hat gegenüber SubVirt einen entscheidenden Vorteil: Es ist kein Neustart notwendig, das Rootkit verschiebt das laufende System in die virtuelle Maschine. Außerdem nutzt Blue Pill die Virtualisierungsfunktionen der Hardware, während SubVirt auf die (kommerziellen) Softwarelösungen VMware und Virtual PC zurückgreift. Dadurch greift das in die virtuelle Maschine verschobene System weiterhin auf die Hardware zu, während Blue Pill als superdünner Hypervisor zwischen Hardware und System sitzt und auf interessante Aktionen wartet. Die können dann protokolliert oder manipuliert werden.

Blue Pill installiert sich nicht auf der Festplatte, sondern bleibt nur bis zum nächste Reboot im Speicher erhalten. Das ist aber kein Problem, denn bei einem Neustart des Systems simuliert Blue Pill diesen nur. Und selbst wenn ein Reboot gelingt, ist der Schaden meist bereits eingetreten und das Rootkit hat sein Ziel erreicht und z.B. Zugangsdaten ausgespäht, über die das Rootkit später erneut installiert werden kann.

Schon kurz nach der Veröffentlichung von Blue Pill gab es Streit darüber, ob das Rootkit wirklich so unerkennbar ist wie behauptet. So bestritt z.B. Anthony Liguori, einer der Entwickler des Xen Hypervisor, dass Blue Pill wie von Joanna Rutkowska behauptet "100% undetectable malware" sei. George Ou erklärte, dass das Erkennen von Blue Bill zwar möglich, aber nicht trivial ist.

Blue Pill, the next Generation

Auf der Konferenz Black Hat USA 2007 stellte Joanna Rutkowska, zusammen mit Alexander Tereshkin eine neue Version von Blue Pill vor, genannt "New Blue Pill" (Präsentation als PDF).

Und wieder gab es Streit darüber, ob so ein Rootkit erkannt werden kann oder nicht. Thomas Ptacek von Matasano Security, Nate Lawson von Root Labs und Peter Ferrie von Symantec behaupteten, dass sich virtuelle Rootkits noch leichter erkennen lassen als normale. Sie haben daher Joanna Rutkowska herausgefordert (die eigentliche Herausforderung sowie die Reaktionen von Thomas Ptacek auf Joanna Rutkowskas Antwort sind leider nach einer Störung im Blog von Matasano nicht mehr online): Sie wollten auf einer der nächsten Black Hat Konferenzen zwei identische Laptops bereitstellen, von denen einer mit dem Rootkit infiziert werden sollte. Ein Testprogramm sollte dann den infizierten Rechner identifizieren.

Joanna Rutkowska hat daraufhin einige eigene Bedingungen gestellt, unter denen sie zu einem derartigen Test bereit wäre: Es sollen fünf Laptops bereit gestellt werden, um ein zufälliges erfolgreiches Raten von einer 50-prozentigen Chance auf unter 3 Prozent zu drücken. Das Testprogramm darf die Rechner weder zum Absturz bringen noch anhalten oder länger als eine Sekunde die gesamte CPU-Leistung belegen, da ein auf einem normalen System laufendes Schutzprogramm das System ebenfalls nicht lahmlegen darf. Sowohl Erkennungsprogramm als auch Rootkit werden nach dem Test als Open Source veröffentlicht. Soweit waren alle Forderungen für Ptacek, Lawson und Ferrie noch akzeptabel. Gescheitert ist der Test an Joanna Rutkowskas letzter Forderung: Da Blue Pill noch nicht fertig entwickelt war, sondern sich noch im Prototyp-Stadium befand, wollte sie für die Entwicklung bezahlt werden. Sie rechnete mit sechs Monaten Vollzeit-Entwicklung für zwei Personen und wollte einen Stundensatz von 200 Dollar pro Person haben. Da sich niemand fand, der die Entwicklung bezahlt, ist es nie zu dem Test gekommen.

In der nächsten Folge gibt es weitere Informationen zu virtualisierenden Rootkits sowie zu SMM-Rootkits

Carsten Eilers

Übersicht über alle Artikel zum Thema