Windows Rootkits 2005, Teil 3
Seite 3: Integritätschecks
5. Integritätschecks
Integritätschecks sind eine Alternative zu Signaturen und Heuristiken. Sie beruhen auf dem Vergleich einer Momentaufnahme des Dateisystems oder des Speichers mit einem bekannten, vertrauenswürdigen Grundzustand – der Baseline. Unterschiede zwischen den beiden Schnappschüssen werden als Hinweise auf verdächtige Aktivitäten interpretiert. Allerdings kann ein Integritätscheck normalerweise die Ursache dieser Aktivitäten nicht lokalisieren.
5.1 Tripwire
Tripwire ist ein Integritätschecker für Festplatten [10]. Er erstellt eine zuverlässige Datenbank mit eindeutigen CRC-Hashwerten für jede Datei auf der Festplatte. Bei einem Scan errechnet er die CRCs für alle Dateien neu und vergleicht sie mit den Original-CRCs in der Datenbank. Das Verfahren beruht darauf, dass sich die Systemdateien nicht ändern sollten – außer beim Einspielen von Updates oder Service Packs. Deshalb bedeutet eine Änderung, dass das System kompromittiert wurde. Tripwire war gegen die ersten Rootkits sehr effizient, die lediglich Systemprogramme gegen neue, trojanisierte Versionen ersetzt haben. Leider haben Rootkits ihre Aktivitäten von der Festplatte in den Speicher verlegt, was Tripwire heutzutage bei der Suche nach Rootkits nahezu wertlos macht. Wenn Integritätschecks auf der Platte scheitern, können sie jedoch immer noch im Speicher Erfolg haben.
5.2 System Virginity Verifier
Der System Virginity Verifier von Joanna Rutkowska ist ein weiterer Prototyp eines Rootkit-Scanners [11]. Er kombiniert ähnliche Heuristiken wie VICE mit Integritätschecks im Speicher. Wie auch VICE testet er die Integrität von Datenstrukturen des Betriebssystems (IAT, EAT, SSDT, IRP-Tabellen). Des Weiteren enthält er erweiterte Heuristiken, um mit Fehlalarmen durch legitime Applikationen wie Virenscanner und Personal Firewalls umzugehen. Die Speicherchecks beruhen auf Vergleichen zwischen den Code-Teilen wichtiger System-Bibliotheken und Treibern auf der Festplatte mit den geladenen Abbildern im Speicher.
6. Hardware-Erkennung - Copilot
Copilot ist einzigartig, weil es auf spezieller Hardware beruht. Es begann als Projekt an der University of Maryland und wurde dann in eine eigene Firma ausgelagert. Die aktuelle Version nutzt eine PCI-Karte, um das System auf Rootkit-Aktivitäten zu überwachen [12]. Dabei soll die PCI-Karte so unabhängig wie möglich vom möglicherweise kompromittierten Betriebssystem bleiben. Dazu hat sie ihre eigene CPU und nutzt Direct Memory Access (DMA), um den physikalischen Speicher des Systems zu überwachen. Dort sucht sie nach Rootkit-Anzeichen wie Hooks in der SSDT, Änderungen an Kernel-Funktionen, die durch Integritätschecks entdeckt werden, und Veränderungen an zentralen Datenstrukturen des Kernels, wie sie DKOM-Angriffe durchführen. Die Copilot-Karte hat auch ein eigenes Netzwerkinterface, über das sie sicher mit einem Administrationsmodul kommunizieren kann.
Als Hardware-Lösung liefert Copilot einen hohen Grad an Zuverlässigkeit; hat allerdings ihren Preis. Eine Hardware-Lösung ist teurer in Anschaffung und Administration, auch wenn die Zuverlässigkeit einiges davon aufwiegen kann. Kombiniert mit einer Software-Komponente gäbe der Copilot einen noch eindrucksvolleren Gegenspieler der Rootkit-Autoren ab, denn er könnte die Integrität der eigenen Software auf dem Host überprüfen.
7. Schlussbemerkung
Die Begutachtung der verschiedenen Techniken zum Aufspüren von Rootkits hat bei allen Tools Stärken und Schwächen zutage gefördert. Jedes liefert einen weiteren Puzzlestein, aber bisher ergibt noch keines eine vollständiges Lösung des Problems. Viele der Tools sind noch Konzeptstudien und einige wurden ironischerweise von den Rootkit-Autoren selbst geschrieben. Es ist jedoch ermutigend, dass nun sowohl im kommerziellen Bereich mit Blacklight und Strider GhostBuster als auch im Bereich der High Assurance mit Copilot Anti-Rootkit-Lösungen verfügbar sind.
Die Auseinandersetzungen zwischen Rootkit-Autoren und -Scannern lassen einige interessante Schlüsse zu. Erstens sind einige der erwähnten Tools bereits viel versprechend; durch Kombination verschiedener Techniken könnten sie noch besser werden, weil dies ihre Stärken maximiert, die Auswirkungen von Schwachstellen aber minimiert. Zweitens: Das Mantra der Rootkit-Scanner könnte "tiefer ist besser" lauten. Viele Scanner bringen sich in Schwierigkeiten, weil sie sich auf System-APIs verlassen, die sie als kompromittiert betrachten müssten. Und schließlich muss man feststellen, dass derzeit noch immer die Rootkits die Oberhand haben. Denn anders als bei Rootkits, die sich kaum um die Stabilität des Opfersystems kümmern müssen, hat diese bei den Scannern oberste Priorität – vor allem bei den kommerziellen mit zahlender Kundschaft. Und das schränkt die Möglichkeiten der Anti-Rootkit-Software ein, da sie auf einige nützliche, aber gefährliche Methoden verzichten muss. Doch trotz allem legen die Scanner die Latte kontinuierlich höher. Es wird spannend, zu beobachten, wie sich die Schlacht zwischen Rootkit-Scannern und -Autoren im kommenden Jahr weiterentwickeln wird. (Übersetzt von Jürgen Schmidt)
Literatur
[1] Butler, James and Sparks, Sherri. "Shadow Walker: Raising The Bar For Windows Rootkit Detection", Phrack 63, July 2005.
[2] Butler, James, "VICE - Catch the hookers!" Black Hat, Las Vegas, July, 2004. www.blackhat.com/presentations/bh-usa-04/bh-us-04-butler/bh-us-04-butler.pdf
[3] Holy Father, Hacker Defender. http://www.hxdef.org/download/hxdef100r.zip
[4] Rutkowska, Joanna. "Detecting Windows Server Compromises with Patchfinder 2", Jan 2004.
[5] Rootkit Revealer. http://www.sysinternals.com/Files/RootkitRevealer.zip
[6] Fuzen, FU Rootkit. http://www.rootkit.com/project.php?id=12
[7] BlackLight. http://www.europe.f-secure.com/exclude/blacklight/
[8] Y. Wang, D. Beck, R. Roussev, and C. Verbowski. "Detecting Stealth Software with Strider GhostBuster". Technical Report, Feb 2005.
[9] Rutkowska, Joanna. "Thoughts about Cross-View based Rootkit Detection", June 2005 http://www.invisiblethings.org/papers/crossview_detection_thoughts.pdf and <>
[10] Tripwire, Inc. http://www.tripwire.com
[11] Rutkowska, Joanna. "System Virginity Verifier: Defining the Roadmap for Malware Detection on Windows Systems", Sept 2005. http://www.invisiblethings.org/papers/hitb05_virginity_verifier.ppt
[12] N. Petroni, T. Fraser, J. Molina, and W. Arbaugh, "Copilot - a Coprocessor-based Kernel Runtime Integrity Monitor," in Proc. Usenix Security Symposium, Aug. 2004. On the Web at http://www.komoku.com/pubs/USENIX-Copilot.pdf.
Ăśber die Autoren
James Butler ist CTO der Firma Komoku, die sich auf High Assurance, Host Integrity Monitoring und Management spezialisiert. Davor war Butler Director of Engineering bei HBGary, Inc. mit einem Schwerpunkt auf Rootkits und andere subversive Techniken. Er ist Koautor des Buchs "Rootkits: Windows-Kernel unterwandern."
Sherri Sparks studiert an der University of Central Florida. Ihre aktuellen Forschungsthemen sind offensive und defensive Techniken in Schadsoftware und verwandte Gebiete der digitalen Forensik. (ju)