Ein kleiner Schritt für einen Wurm, ein grosser Schritt für den Programmierer Marc Ruef | 24.08.2009 Als man in unseren Breitengraden anfing das Thema Computersicherheit im kommerziellen Umfeld bewusst wahrzunehmen, fokussierte man sich in erster Linie auf Netzwerksicherheit. Durch Security Audits sollten auf der Netzwerkebene unsichere Dienste ausgemacht werden, um sich diesen anzunehmen und damit die Sicherheit der Umgebungen zu erhöhen. Heutzutage ist der Bereich der Computersicherheit einiges vielfältiger geworden. Eine nach wie vor besondere und nicht nur deshalb besonders spannende Form der Sicherheitsüberprüfung sind sogenannte Backdoor Inside/Out Tests (http://www.scip.ch/?dienstleistungen.backdoortest). Dabei wird eigens für den Kunden ein individueller Computerwurm entwickelt, der durch eine bestehende Schwachstelle in die Zielumgebung eingebracht und diese semi-automatisch (Remote-Controlling) oder komplett automatisch (geskripted) kompromittieren soll. Diese Technik hat einige entscheidende Vorteile gegenüber klassischen Methoden wie dem Vulnerability Scanning und Config Reviews. Und zwar lässt sich damit der Gesamtverbund der etablierten Sicherheitsmechanismen im echten Einsatz überprüfen. Seien dies nun die Administratoren oder das Monitoring Team, die die verdächtigen Aktivitäten erkennen, melden und auf sie reagieren können sollten. Oder halt eben typische Schutzmassnahmen wie Firewall-Systeme, Antiviren-Lösungen und strenge Authentisierungen, die eine Rechteausweitung und den Missbrauch von Ressourcen verhindern können sollten. In meinem Leben passiert es eher selten, dass ich ob einem Projekt angespannt bin. Ich denk meine Leistungen und Schwächen gut einschätzen zu können, so dass ich mit einer Auftragsannahme sehr wohl weiss, ob ich der Sache gewachsen bin oder halt eben nicht. Dennoch sind es gerade diese Backdoor-Tests, die meinen Puls und den Adrenalinspiegel gut und gerne in die Höhe schnellen lassen. Die grosse Arbeit eines Backdoor Inside/Out Tests ist nicht die Infektion der Zielumgebung und die Entgegennahme der gestohlenen Daten als solche. Viel mehr ist es das Entwickeln des individuellen Wurms, der in besonderes geschickter, eleganter und sicherer Weise den Proof-of-Concept antreten können soll. Ein Höchstmass an Aufmerksamkeit wird den zu etablierenden Mechanismen gewidmet, was durchaus 90 % der Arbeitszeit in Anspruch nehmen kann. Im Gegensatz zu Entwicklern, die "hobbymässig" ihre Viren und Würmer schreiben oder rein destruktive Absichten haben, habe ich als Sicherheitsberater einige zwingende Verpflichtungen gegenüber dem Kunden zu erfüllen. So muss ich gewährleisten, dass meine Hintertür keinen Schaden anrichtet. Ebenso muss ich zu jedem Zeitpunkt in exakter Weise nachvollziehen können, an welcher Stelle eine Infektion stattgefunden hat und wie weit die Verbreitung fortgeschritten ist. Die intelligente Kommunikation von und zu den Wurm-Instanzen ist unabdingbar. Kann diese nämlich nicht mehr gewährleistet werden, wäre der Kunde der Willkür der Software überlassen. Eine Identifikation und Desinfektion wäre nur noch mit erheblichem Aufwand möglich. Bevor die Infektion der Zielumgebung stattfindet, führe ich eine Vielzahl an Software-Tests durch. Alle erdenklichen Spezialfälle werden dabei durchgespielt: Von alternativen Betriebssystem-Installationen (mit unterschiedlichen API-Definitionen) und fehlenden Libraries über fehlende Schreibrechte (z.B. bei Read-Only Datenträgern) und multiple Infektionen bis hin zum Weitertragen des Wurms ausserhalb des Kudnennetzwerks (eine Verbreitung muss zwingend unterbunden werden) und ein abruptes Trennen der Netzwerkverbindung (z.B. Ziehen des Netzwerkkabels) wird ausprobiert. Ich habe noch keine Software gesehen, die ein solch detailliertes und mehrstufiges Error-Handling vorzuweisen hat, wie diese Backdoor-Entwicklungen. Schlägt bei der Verbreitung des Wurms irgendetwas fehl und es müssen Massnahmen ergriffen werden, bedroht dies unmittelbar den Erfolg des Projekts. Jenachdem müssen nämlich die Administratoren und Benutzer miteinbezogen werden, wodurch das Real World Testing als solches nicht mehr gewährleistet werden kann. Auch nicht in einem zweiten Durchgang mit verbesserter Software. Aus diesem Grund komme ich mir manchmal fast ein bisschen vor wie ein Racketenwissenschaftler bei NASA/ESA. Diese arbeiten ebenfalls sehr hart daran, sämtliche Eventualitäten für den Start einer Rakete bzw. dessen Satelliten zu berücksichtigen. Und ist es dann soweit, dass der Countdown des Starts auf Null gezählt wird und die Triebwerke gezündet werden, liegt es nicht mehr direkt in den Händen der Ingenieure, was mit ihrer Entwicklung passiert. Ihr Sieg oder ihre Niederlage haben sich nämlich schon vor Wochen, wenn nicht sogar vor Monaten manifestiert. Bis jetzt bin ich zum Glück davon verschont geblieben, dass einer meiner Würmer einen Fehlstart erlebt (http://www.nzz.ch/nachrichten/panorama/start_der_discovery_wegen_tanklecks_verschoben__1.2184557.html), ins Meer gestürzt (http://www.nzz.ch/nachrichten/international/usa_nordkorea_rakete_1.2334824.html) oder die Kommunikationsverbindung abgerissen ist (http://www.nzz.ch/nachrichten/panorama/technisches_problem_verzoegert_einsatz_von_phoenix_1.744754.html). Es liegt leider in der Natur der Sache, dass der Mensch Fehler - vor allem im komplexen Umfeld moderner Computersysteme - macht. Aus diesem Grund bete ich zum Gott der "Raketenwürmer", dass er mich vor dieser Schmach bewahrt. Ramen!