Das perfekte Backdoor? Marc Ruef | 04.02.2008 Als ich mich intensiver mit dem Thema Netzwerksicherheit auseinandersetzen begann, wurde gerade erst das Zeitalter der Remote-Control-Utilities eingeläutet. Client/Server-basierte Trojanische Pferde wie BackOrifice, NetBus oder SubSeven wurden als die Hacker-Tools schlechthin verstanden. Ein mit einem Server infizierter Host liess sich über das Netzwerk mit dem entsprechenden Client fernsteuern. Die totale Kontrolle über das System, als sässe man direkt davor, wurde als neue Dimension verstanden. Derartige Hintertüren (engl. Backdoors), vor allem die vorhin genannten, wurden aufgrund ihrer einfachen Bedienung schnell so populär, dass etwas gegen sie unternommen werden musste. Die Hersteller von Antiviren-Lösungen fügten die jeweiligen Produkte in ihre Pattern-Datenbank ein und die Nützlichkein von Firewall-Systemen, nun auch im Privatbereich, wurde zunehmends hervorgehoben. Heutzutage ist es fast nicht mehr möglich, ein in einem professionellen Umfeld genutztes System mit SubSeven zu infizieren. Die mittlerweile als selbstverständlich verstandenen Schutzmechanismen erkennen den Schädling früh genug und können gegen ihn vorgehen. Grundsätzlich ist das Prinzip von Client/Server-basierten Hintertüren nach wie vor ein Thema. Und das Thema darf nicht unterschätzt werden. Wir bieten mitunter ein Modul an, bei dem wir ein individuell für einen Kunden entwickeltes Backdoor anstreben, das als Proof-of-Concept die gegebenen Mängel einer Umgebung eruieren können soll. Dabei werden verschiedene Techniken kombiniert, um die Möglichkeiten und Schwächen auf allen Ebenen determinieren zu können. Mittels Polymorphie wird der Entdeckung durch pattern-basierte Antiviren-Lösungen entgegengewirkt. Die Hintertür tritt immerwieder anders auf und weist damit keine nachvollziehbare Charakteristik auf. Diese Option ist gar nur in den seltensten Fällen erforderlich, denn die Antiviren-Hersteller wurden noch gar nicht auf unsere Entwicklung, die es so "in-the-wild" auch gar nicht anzutreffen gibt, aufmerksam. Sollte unsere Lösung dennoch irgendwann als korrupter Programmcode geführt werden wollen, muss das Prinzip der Polymorphie verstanden und entsprechend erkannt werden. Der Aufwand ist enorm und untragbar, weshalb die Antiviren-Hersteller voraussichtlich davon absehen werden. Firewall-Systeme werden als umfassende Schutzmassnahmen für unerlaubten Netzwerkverkehr angepriesen. Grundsätzlich stimmt dies, obschon auch da Mittel gegeben sind, um sich einer Entdeckung und den damit verbundenen Einschränkungen zu entziehen. Erstens kann der Agent sowohl im Push- als auch im Pull-Verfahren betrieben werden. Mit Push ist eine klassische Funktion gegeben, bei der der Client die zu verarbeitenden Daten an den Server schickt. Dies erfordert jedoch, dass in einem Netzwerk eingehender Datenverkehr (inbound) auf das Zielsystem und den genutzten Zielport erlaubt ist. Dies ist, vor allem bei der Infektion von Arbeitsplatzrechnern in grösseren Unternehmen, praktisch nie der Fall. Aus diesem Grund wird Pull eingesetzt, bei dem der Agent sich die zu verarbeitenden Informationen vom Server holt. Da hierbei aus Sicht der angegriffenen Umgebung von Innen initiierter ausgehender Verkehr generiert wird (outbound), ist dieser nur sehr selten unterbunden. Schliesslich funktionieren nach dem gleichen Prinzip populäre Dienste wie das World Wide Web (WWW) oder Email. Die zur Nutzung freigegebenen Ports sind dabei gerne limitiert. So werden in gut eingerichteten Umgebungen lediglich die erforderlichen Ports zugelassen. Ausgehend sind dies von einem Client typischerweise Port tcp/80, um sich mit dem Webbrowser im WWW bewegen zu können. Die Hintertür versucht die zugelassenen Ports zu identifizieren. Dabei entscheidet sie sich für einen unauffälligen Port, der nur schwer überwachbar (grosse Datenmengen oder komplexe Protokolle) ist. Durch Application Gateways werden einzelne Dienste mittels Proxies entkoppelt. Dies bedeutet, dass eine Kommunikation nicht mehr nur einfach weitergeleitet wird. Der Proxy überprüft, ob die Formalitäten (z.B. Befehlssyntax und Kommunikationsablauf) des genutzten Protokolls eingehalten werden. Mittels Tunneling wird das eigens entwickelte Protokoll (scip Remote Protocol, Abk. SRP) auch an derartigen Lösungen vorbeigeschleust. Ob dabei als Trägerprotokoll nun HTTP, SMTP, DNS oder ICMP zum Einsatz kommt, ist irrelevant. Aufgrund der architektonischen Modularität konnten wir in der Vergangenheit eine Vielzahl unterschiedlicher Implementierungen bereitstellen. Selbst ein Remote-Controlling ueber NNTP-Kommunikationen (Usenet) wurde schon demonstriert. Hostbasierte Schutzfunktionen, die als Intrusion Prevention (HIPS) verkauft werden, machen den meisten Schädlingen zu schaffen. Da werden Funktionen und System Calls abgefangen und unterbunden. Um einer solchen Limitierung zu entgehen, wird ausschliesslich auf legitime Aufrufe zurückgegriffen. Ist auf einem Windows-System der Microsoft Internet Explorer installiert, werden die Netzwerkkommunikationen über eine legitime Instanz dessen durchgeführt. Die Überwachungsprogramme können dabei nicht unterscheiden, ob der Internet Explorer-Verkehr nun durch eine normale Applikation oder eine Hintertür initiiert wurde. Die Hintertür ist relativ komplex, weist sie doch Grundzüge einer künstlichen Intelligenz auf. Auf welche Mechanismen (Push oder Pull) zurückgegriffen wird und welche Kommunikationswege eingesetzt werden (HTTP, SMTP, ...) wird automatisch ermittelt. Dabei wird dem Prinzip gefolgt, dass eine möglichst zuverlässige und effiziente Verbindung etabliert werden soll. Notfalls wird aber auch auf sehr exotische Techniken, die im Gegensatz besonders in Bezug auf Effizienz weniger vertretbar sind, zurückgegriffen. Die Applikation ist dabei modular aufgebaut und die jeweiligen Module lassen sich zur Laufzeit dank eines Reloaders ersetzen. Dies bedeutet, dass Programmcode mitten im Betrieb nachgeladen und damit die Funktionalität angepasst werden kann. Dadurch lässt sich quasi eine manuell gesteuerte Polymorphie durchsetzen. Ebenso können damit sehr individuelle Insider-Attacken durch nachgeladene Exploits initiiert werden. Diese Eigenschaften machen die Backdoor zu einem sehr mächtigen Werkzeug. Solange sie ausgeführt wird und in irgendeiner Weise Netzwerkverkehr generieren sowie empfangen kann, kann sie ihre Aufgabe wahrnehmen. Eine technische Lösung zur Bekämpfung derartiger Ansätze gibt es praktisch nicht: Firewall-Systeme sollten enorm restriktiv betrieben, Antiviren-Lösungen auf dem aktuellen Stand und die Rechte bei der Programmausführung im Betriebssystem extrem eingeschränkt (GPO und NTFS) werden. Der Aufwand ist aber für ein modernes Unternehmen, vor allem aus wirtschaftlicher Sicht, fast nicht durchsetzbar. Zum Schluss bleibt halt die Empfehlung, dass die Benutzer regelmässigen Awareness-Trainings unterzogen werden sollten, damit sie nicht versehentlich oder fahrlässig ein Trojanisches Pferd einbringen. Denn dann, wenn der Agent einmal ausgeführt ist, ist es nur noch eine Frage der Zeit, bis von Extern darauf zugegriffen werden kann.