Computerwurm
Ein Computerwurm (kurz Wurm) ist ein Computerprogramm oder Skript mit der Eigenschaft, sich selbst zu vervielfältigen, nachdem er ausgeführt wurde. In Abgrenzung zum Computervirus verbreitet sich der Wurm, ohne fremde Dateien oder Bootsektoren mit seinem Code zu infizieren.
Würmer verbreiten sich über Netzwerke oder über Wechselmedienwie USB-Sticks. Dafür benötigen sie gewöhnlich (aber nicht zwingend) ein Hilfsprogramm, wie einen Netzwerkdienst oder eine Anwendungssoftware als Schnittstelle zum Netz; für Wechselmedien benötigen sie meist einen Dienst, der nach dem Anschluss des belasteten Mediums den automatischen Start des Wurms ermöglicht.
Der Wurm könnte beispielsweise eine E-Mail-Anwendung fernsteuern, um sich an alle dort eingetragenen E-Mail-Adressen zu verteilen. Je nach Art des Hilfsprogramms kann sich der Wurmcode auf den Zielsystemen manchmal sogar selbst ausführen, weshalb dann keine Interaktion mit dem Benutzer mehr notwendig ist, um sich von dort aus weiter zu verbreiten. Daher ist diese Methode im Vergleich zur Ausbreitungsgeschwindigkeit eines Virus sehr effizient. Auf Systemen, die dem Wurm keinen Zugriff auf das benötigte Hilfsprogramm ermöglichen, kann sich der Wurm allerdings nicht, oder zumindest nicht automatisiert, reproduzieren.
Der Wurm zählt zur Familie unerwünschter bzw. schädlicher Programme, der so genannten Malware, was Schutzmaßnahmen gegen Würmer notwendig macht. Neben der geheimen Verbreitung, die bereits ungefragt Ressourcen bindet, kann eine mögliche Schadfunktion des Wurms vom Anwender nicht kontrollierbare Veränderungen am System vornehmen. Auf diese Weise ist es möglich, zahlreiche miteinander vernetzte Computer zu kompromittieren.
Automatische Ausführung
Robert T. Morris schrieb 1988 ein Programm, das unter anderem eine Remote Shell nutzt, um sich auf andere Systeme zu kopieren und dort auszuführen, mit dem Ziel, sich von dort aus auf weitere Systeme zu kopieren und dort auszuführen. Als sein Programm außer Kontrolle geriet, sah sich die Welt mit dem ersten Internetwurm konfrontiert. Sein Programm versuchte sich der Entdeckung und Analyse auf den befallenen Systemen zu entziehen, enthielt aber keine explizite Schadroutine. Dessen permanent arbeitende Verbreitungsroutine legte (wohl unbeabsichtigt) dennoch zahlreiche Systeme lahm. Moderne Würmer nutzen mitunter noch immer solche oder ähnliche Automatisierungsmechanismen eines Programms, wie sie beispielsweise die Remote Shell zur Verfügung stellt, um ihren Code auf ein entferntes System zu kopieren und dort auszuführen.
Der Morris Wurm zeigte darüber hinaus einen Weg auf, wie man Programmierfehler ausnutzt, um einen solchen Mechanismus in Programmen zu erschaffen, die normalerweise eine derartige Automatisierung gar nicht vorsehen (Command-Execution-Exploit durch einen Fehler im Netzwerkdienst finger über einen buffer overflow in der Funktion gets()).[11] Als weiteres Beispiel nutzt der Wurm Blaster einen Exploit in der RPC/DCOM-Schnittstelle von Windows 2000 und XP, um Computer über Netzwerke zu suchen und zu infizieren, auf denen die von dem Wurm genutzte Sicherheitslücke existiert.
Alternativ dazu können Würmer auch Sicherheitslücken im Design einer Anwendung nutzen, wenn die Anwendung beispielsweise Funktionen vorsieht, die den Komfort der Anwendung erhöhen, dafür aber die üblichen Sicherheitseinschränkungen durchbrechen. Dazu gehört Programmcode, der als „Objekt" in eine Webseite oder eine HTML-E-Mail eingebunden werden kann und ähnliches. Bei Letzterem wird der Wurmcode dann bereits beim Lesen der E-Mail gestartet, ohne einen Anhang öffnen zu müssen. Konkret kann die Verwendung von ActiveX-Objekten sowie die Implementierung von JScript und VBScript eine gewisse Benutzerfreundlichkeit ermöglichen, birgt aber die genannten Risiken. Letztlich führte dies dazu, bestimmte vom Entwickler eigentlich gewollte Funktionen wieder zu blockieren; der Anwender muss sie nun explizit in seiner Anwendung freischalten, wenn er sie trotzdem nutzen möchte. Demgegenüber gibt es die Methode, bestimmte Quellen mit Hilfe von digitalen Zertifikaten als vertrauenswürdig einzustufen und ihnen den Zugriff auf sonst blockierte Mechanismen zu erlauben. Bei all diesen Methoden, angefangen von der Softwareimplementierung der Blockade bis hin zum Regelwerk, kommt es hin und wieder zu Fehlern, die bei der Verbreitung von Würmern genutzt werden.
Konkret gibt es beispielsweise eine Reihe von Würmern, die einen Fehler einer älteren Version des E-Mail-Programm Microsoft Outlook Express in der folgenden Form ausnutzen: Die Anlagen von HTML-E-Mails werden von Outlook Express üblicherweise inline, also direkt in der Nachricht selbst, dargestellt. Alternativ kann der Quelltext der E-Mail auch eine Referenz enthalten, unter der die betreffende Datei online hinterlegt ist, und dann in einem Inlineframe dargestellt wird. Innerhalb eines HTML-Quelltextes können Dateiformate, die nicht dem Internetstandard entsprechen und deshalb normalerweise nicht direkt in eine HTML-Seite eingebunden werden können, als „Objekte" definiert werden. Dazu wird dem System mitgeteilt, welcher Art das „Objekt" ist und wie das System damit zu verfahren hat. Der HTML-Parser mshtml.dll müsste jetzt abfragen, ob diese Art von „Objekt" bekannt ist und ausgeführt werden darf. Diese Abfrage ist der Schwachpunkt des Systems, da eine bestimmte fehlerhafte Abfrage zu einem Systemfehler und daraufhin zur Ausführung des „Objektes" führt, obwohl das Gegenteil zu erwarten wäre. Allein das Betrachten des E-Mail-Textes startete also — ohne weiteres Zutun des Anwenders — die Schadsoftware. Dieser Fehler wurde durch eine Aktualisierung der Software behoben. Eine ähnliche Sicherheitslücke existierte auch im E-Mail-Programm „Eudora".