Worm
nach Bedarf die Anweisungen für muskuläre Anpassungen erteilen, um zu verhindern, dass Sie zur Seite kippen. Bis Sie das Zimmer durchquert, eine Tasse aus dem Schrank geholt, die Kaffeekanne aus der Kaffeemaschine herausgezogen haben, hat Ihre CPU unzählige binäre Entscheidungen gefällt. Die einzelnen Quellcodes oder Programmiersprachen sind Steno-Versionen des Objektcodes, die dazu dienen, das Programm menschlichen Programmierern zugänglich zu machen. Wenn aufstehen, den Raum durchqueren und sich eine Tasse Kaffee einschenken eine Routineaufgabe ist, könnte sie im Quellcode schlicht durch die Worte »Hol Kaffee« ausgedrückt werden, was die CPU automatisch auf eine standardisierte, vorab festgelegte Sequenz verweist. (Wir alle kennen das Gefühl, alltägliche Aufgaben quasi im Autopilotenmodus zu erledigen.) Damit er aber selbst die einfachsten Aufgaben ausführen kann, muss der Computer – genauso wie das Gehirn einer Person, die einen Raum durchquert und sich eine Tasse Kaffee einschenkt – eine Vielzahl von Dingen im Gedächtnis behalten, manche nur für Sekundenbruchteile, andere für längere Zeiträume. Um zum Beispiel eine Tasse Kaffee zuzubereiten, müssen wir dauerhaft abgespeicherte Informationen abrufen, etwa über die verschiedenen Zutaten und ihr Mischungsverhältnis oder über die Funktionsweise der Kaffeemaschine; für das Aufstehen und Durchqueren des Raums, das Anheben der Kanne und das Einschenken des Kaffees müssen wir wiederum Kurzzeitspeicher anlegen, beispielsweise für fortlaufende Statusmeldungen aus dem Innenohr, mit deren Hilfe wir das Gleichgewicht halten. In dem Betriebssystem eines modernen Computers finden sich ähnliche vielschichtige Speicherfunktionen, die gleichzeitig und entlang der von dem Programm genauestens vorgeschriebenen Pfade operieren.
Um diesen neuen Wurm zu verstehen, musste Hassen ihn entweder einer dynamischen Analyse unterziehen, sprich, ihn ausführen und dabei Schritt für Schritt sorgfältig beobachten, oder er musste in einer statischen Analyse seine Programmiersprache aufdröseln, was ihm erlaubte, das Programm Schritt für Schritt zu lesen. Aber zuerst einmal musste er ihn aufspüren. Der Wurm mochte geschickt verpackt sein, doch um in dem Host-Computer aktiv werden zu können, musste der infizierte Computer wissen, wie der Wurm zu öffnen war. Falls es gelang, diesen Vorgang Schritt für Schritt zu beobachten, wusste man, wie man den Wurm selbst öffnen könnte. Die Frage war nun, wo innerhalb des Betriebssystems eines neu infizierten Computers der Wurm sich eingenistet hatte.
Schadprogramme sind aus zwei Gründen verpackt. Erstens zur Datenkomprimierung, denn ein Datenpaket, das sich durch die Weiten des Internets verbreiten soll, muss möglichst klein sein. Zweitens dient es dem Selbstschutz – das Verpacken soll Antivirenprogrammen die Erkennung erschweren und Leute wie Hassen daran hindern, den Code zu zerpflücken und zu analysieren. Der Wurm selbst bestand nur aus ein paar Hundert Zeilen Code, nicht mehr als 35 Kilobyte, kaum größer als ein Dokument mit 2000 Worten. Ein durchschnittlicher Heimcomputer hat heutzutage einen Arbeitsspeicher von rund zwei Gigabyte, das ist über eineinhalb Millionen Mal mehr. Würde man nicht nach dem Wurm suchen und wüsste man nicht, wie man nach ihm suchen muss, man würde ihn nie finden. Der Wurm schwebt herein wie ein Staubkorn. Um die Art von Analyse zu verhindern, die Hassen vorzunehmen gedachte, hatten seine Entwickler Vorkehrungen getroffen, dass man ihm nach dem Eindringen in einen neuen Rechner möglichst nicht mehr folgen konnte. Sie hatten dafür gesorgt, dass der Wurm sozusagen seine Fährte verwischte und eine falsche Spur auslegte, die den Verfolger in die Irre führte. Zudem hatten sie ein Zwei-Ebenen-Verschlüsselungsverfahren nach dem Prinzip der russischen Matrjoschka-Puppen verwendet, das in der Lage war, den meisten Entpackungsprogrammen und Sicherheits-Ninjas zu widerstehen.
Den meisten.
Hassen lässt sich nicht so leicht austricksen. Mit äußerster Akribie spürte er dem trickreichen Weg des Codes in seinen virtuellen Computer nach. Der Wurm hatte den chinesischen Exploit benutzt, um in Port 445 einzudringen und sich mit Hilfe des Pufferüberlaufs selbst als eine Dynamic-Link Library ( DLL ) anzulegen – das von Microsoft-Programmierern entwickelte Verfahren, das Computern den Datenaustausch ermöglicht. Normale Anwender kennen sich weder mit Programmiersprachen noch mit den
Weitere Kostenlose Bücher