Sie gelten als höchste Hackertechnik, dennoch sind Rootkits einfach und schnell zu implementieren. Moderne Vertreter unterwandern das angegriffene System auf Kernel-Ebene und entziehen sich den meisten Suchaktionen der Admins. Ein praktisches Beispiel zeigt, wie viel Kontrolle das Kit erlangt.
Nach dem Einbruch in fremde Computer wollen Angreifer ihr neu gewonnenes Terrain sichern. Kein neugieriger Nutzer und schon gar kein Administrator soll bemerken, dass sich sein treuer Rechenknecht fremden Befehlen unterwirft. Für ihre Tarnung vertrauen Eindringlinge gern auf vorgefertigte Tools. Diese so genannten Rootkits [11] verstecken verräterische Prozesse, Netzwerkverbindungen und Dateien vor den Blicken der Admins und sorgen meist dafür, dass der Angreifer jederzeit zurückkehren kann (Backdoor).
Früher war es in Cracker-Kreisen üblich, für ihre Rootkits die bereits installierten Programme zu modifizieren. Ein sabotiertes »netstat« würde die Verbindungen seines Meisters verschweigen oder »ps« seine heimtückischen Prozesse geheim halten. Da es eine ganze Reihe von Programmen auszutauschen gilt, entstanden früh spezielle Userland-Rootkits. Sie bringen eine Menge modifizierter Programme mit und lassen sich schnell vom Angreifer installieren. In den meisten Rootkits finden sich zudem Backdoors und beliebte Hacker-Tools, zum Beispiel IRC-Bouncer.
Grenzen im Userland
Aus Sicht des Angreifers leiden die Userland-Rootkits unter einem gravierenden Nachteil: Ein einfacher Vergleich mit der MD5-Prüfsumme der Originaldatei entlarvt die Sabotage. Auch spezialisierte Suchprogramme (so genannte Rootkit-Hunter) spüren diese einfachen Tools schnell auf. Zudem beschränkt sich der Einfluss auf die veränderten Programme; nachträglich installierte Software (etwa »lsof«) oder Tools, die auf nur lesbaren Medien liegen (CD-ROM), hebelt er nicht aus. Die Tarnung durch diese Art von Rootkits bleibt beschränkt.
Viel mehr Macht über das geknackte System übt ein Rootkit aus, wenn es direkt den Kernel modifiziert. Der Kernel stellt den Prozessen alle Systemdaten bereit, die diese wiederum dem Benutzer oderAdmin präsentieren.
Dynamisch im Kernel
Seit Version 2.2 lädt Linux dynamisch Kernelmodule, um Treiber und anderen Code während der Laufzeit des Betriebssystems einzubinden. Das vorher nötige Neukompilieren des Kernels und der Reboot entfallen. Kernel-Rootkits bedienen sich üblicherweise dieser Schnittstelle, um Code direkt im Kernel auszuführen [2]. Sie entfernen Informationen, die der Angreifer versteckenden will, bevor die Daten den Userspace erreichen. Damit täuschen sie alle Programme, egal ob nachträglich installiert und gegen welche Bibliotheken gelinkt.
Bis heute ist die Tarnung gut programmierter Kernel-Rootkits nahezu perfekt. Weder normale Systemwerkzeuge noch klassische forensische Tools bemerken eine Manipulation. Die Einflussmöglichkeiten und Tarneigenschaften der Kernel-Rootkits sind ihren Userland-Vorläufern weit überlegen.
Variantenreich
Mittlerweile haben sich mehrere Techniken etabliert, um im Kernel ihr Unwesen zu treiben und damit ein Kernel-Rootkit zu implementieren:
- Beim Syscall Table Patching tauscht das Rootkit einzelne
Original-Systemcalls gegen modifizierte Varianten. - Andere Rootkits setzen gleich eine neue Systemcall-Tabelle
ein. - VFS-Patching (Virtual File System, [3]) verändert Zeiger
in den Strukturen für das Root- und das Proc-Dateisystem. - Ganz verwegene Tools modifizieren direkt
Kernel-Codestrukturen.
Die Technik der Rootkits taugt nicht nur für dunkle Absichten, auch Admins profitieren davon: Sie analysieren und überwachen ihr System mit Tools wie Kstat [4] oder mit Modulen wie Saint Jude [5]. Andere Module wie Sebek [6] gleichen den Rootkits noch stärker und dienen dennoch gutartigen Zielen der Sicherheitsvorsorge (Honeynet).






