Morris (Computerwurm)

Der ComputerwurmMorris wurde am 2. November 1988 ins damals noch junge Internetfreigesetzt. Er wurde von dem zu dieser Zeit dreiundzwanzigjährigen amerikanischenInformatikerRobert T. Morris programmiert.[2] Aufgrund eines Programmierfehlers verbreitete sich die Malware rasant und verursachte im Lauf der nächsten Monate hohe Schäden durch Systemüberlastungen und -ausfälle.

Morris Worm
Name Morris Worm
Aliase Great Worm, Internet Worm
Bekannt seit 1988
Herkunft USA
Typ Netzwerkwurm
Autoren Robert Morris
Dateigröße ca. 3.200 Programmzeilen[1]
Speicherresident ja
Verbreitung Exploits, Brute-Force
System DEC– und SUN-Systeme mit
BSDUNIX (SunOS, Ultrix etc.)
Programmiersprache C
Info War ursprünglich zum Zählen von
Rechnern im Netzwerk gedacht

. . . Morris (Computerwurm) . . .

Auszug aus dem kommentierten Code des Wurms

Der Wurm ist in zwei Programme unterteilt, ein sogenanntes grappling hook (auch Bootstrap oder Vector genannt). Der Grappling Hook bestand aus 99 Zeilen C-Code. Das Ziel dieses Programmes ist es lediglich auf den zu infizierenden Rechner zu gelangen und von dort den Wurm hochzuladen. Dies tut es, indem es vom schon infizierten Rechner den Wurm anfragt (request), der bereits infizierte Rechner schickt den Wurm dann auf den zu infizierenden Rechner. Dieser Wurm bildet das Main Programm namens l1.c . Dieses Main Programm versucht dann die Zielsysteme mit den nachher genannten Verbreitungs Methoden zu infizieren.[3]

Die Existenz aktiver Wurm-Prozesse auf einem Remote-Rechner sollte vor einer weiteren Ausbreitung bestimmt werden, und nur in einem von 15 Fällen sollte eine Reinfektion stattfinden. Dadurch sollten Abwehrmaßnahmen, die nur die Existenz eines Wurm-Prozesses vortäuschten, unterlaufen werden. Aufgrund eines Programmierfehlers geschah die Reinfektion jedoch in 14 von 15 Fällen. Dadurch wurden viele Rechner überlastet und der Wurm wurde wahrscheinlich schneller entdeckt, als dies anderenfalls möglich gewesen wäre. Auch noch über ein Jahr nach der Freisetzung wurden Aktivitäten von Wurm-Prozessen im Internet festgestellt. Dies kann auf die Verfügbarkeit des Quellcodes bzw. der zugehörigen Dateien zurückgeführt werden. In einigen Fällen waren die offensichtlichen Programmierfehler korrigiert worden.[4]

Verletzlich waren alle Rechner der Firmen DEC und SUN (SUN-3-Systeme) des Netzwerks, die mit BSD UNIX betrieben wurden. Unter UNIX System V betriebene Rechner konnten nur infiziert werden, wenn mit den Programmen SENDMAIL, FINGERD oder REXEC eine Kompatibilität zu BSD UNIX geschaffen worden war. Für die Funktion wurden verschiedene Eigenschaften und Sicherheitslücken auf der Anwendungsebene der TCP/IP-Protokollfamilie genutzt. Insgesamt wurden vier unterschiedliche Verfahren für die Ausbreitung eingesetzt:[4]

  • FINGERD

Eine bestimmten Funktion der Standard-C-Bibliothek, die die Länge der Parameter nicht überprüft, wurde im FINGER-Daemon verwendet. Beim Aufruf des Daemon auf einem Remote-Rechner durch einen aktiven Wurm-Prozess wurde eine Zeichenkette als Parameter übergeben, deren Länge den zur Verfügung stehenden Puffer-Bereich überstieg. Dadurch wurden Teile des Daemon-Prozesses im Hauptspeicher überschrieben, darunter auch die Rücksprungadresse der gerade ausgeführten Funktion. Die neue Rücksprungadresse zeigte auf einen Teil des überschriebenen Speichers, in dem jetzt eine Shell mit den Rechten des Daemon aufgerufen wurde. Mit dieser Shell wurde dann eine Kopie der für den Start des Wurms auf diesem Rechner benötigten Dateien übertragen und ausgeführt. Die Existenz dieser Sicherheitslücke war seit langer Zeit bekannt, trotzdem wurden die allgemein verfügbaren Fixes nicht überall eingespielt.[4]

  • SENDMAIL

Auch dieser Fehler war bereits seit langer Zeit bekannt; nur ein Teil der Systeme wies ihn noch auf. Die betroffenen Versionen dieses Mail-Daemon waren mit der DEBUG-Option kompiliert worden. Dabei wurde eine durch den Entwickler eingebaute Falltür aktiviert, die auf dem Remote-System die Interpretation einer über Electronic Mail empfangenen Nachricht als Befehl erlaubte. So konnte ein Wurm-Prozess auf einem Remote-Rechner eine Shell starten.[4]

  • RSH

Eine wichtige Eigenschaft vieler UNIX-Systeme ist das Konzept des distributed trust , das mit den sogenannten ‘r’-Protokollen der BSD-Implementation eingeführt wurde. Inzwischen werden diese Protokolle auch in anderen UNIX-Derivaten eingesetzt. Mit ihrer Hilfe wird es möglich, auf anderen Rechnern bestimmte Befehle oder eine Remote-Shell aufzurufen, wenn der lokale Rechner dort als vertrauenswürdig eingestuft ist. Diese Einstufung erfolgt durch den Eintrag der Rechnernamen in eine spezielle Datei. Da in der Regel eine solche Einstufung auf Gegenseitigkeit beruht, versuchte der Wurm-Prozess, auf den in der lokalen Datei angegebenen Rechnern eine Remote-Shell zu starten.[4]

  • Passwörter

Durch die Möglichkeit, auf die gespeicherten Benutzer-Identifikationen und die zugehörigen, verschlüsselten Passwörtern zuzugreifen, konnte der Wurm-Prozess einen Brute-Force-Angriff auf einen Account durchführen. Gelang die Bestimmung des verwendeten Passworts, wurde mit der Benutzer-Identifikation versucht, auf einem anderen Rechner des Netzwerks eine Shell zu starten. Dies gelang, wenn der jeweilige Benutzer auf diesem Rechner das gleiche Passwort verwendete.[4]

. . . Morris (Computerwurm) . . .

Dieser Artikel stammt von der Website Wikipedia. Der Originalartikel kann etwas gekürzt oder modifiziert sein. Einige Links wurden möglicherweise geändert. Der Text ist lizenziert unter “Creative Commons – Attribution – Sharealike” [1] und ein Teil des Textes kann auch unter den Bedingungen der “GNU Free Documentation License” [2] lizenziert werden. Für die Mediendateien können zusätzliche Bedingungen gelten. Durch die Nutzung dieser Website stimmen Sie unseren rechtlichen Seiten zu . Weblinks: [1] [2]

. . . Morris (Computerwurm) . . .

Previous post Warschau/Muranów
Next post Mandelholz