Einer der Ausbreitungswege des Internet Worm war die Übermittlung neuen Programmcodes an einen Demon. Natürlich wartet der Dämon nicht nicht auf Codemodifikationen übers Netz, und im Protokoll gibt es auch gar keine Vorkehrungen hierzu. Der Dämon enthielt einen gets-Aufruf ohne Angabe der maximalen Pufferlänge; der Internet Worm schrieb den gewünschten Code über das Ende des Lesepuffers hinaus, bis er auch die Rücksprungadresse im Stackframe von gets modifiziert hatte. Ist der erste Dienst einmal gekapert, fallen sämtliche anderen Dienste und schließlich das komplette System wie Dominaosteine hinterher.
Auch wenn dieses spezielle Loch inzwischen längst von den meisten Anbietern gestopft wurde, bleibt doch das grundsätzliche Problem bestehen: Das Schreiben korrekter Software scheint ein für die Informatik unlösbares Problem darzustellen. Es wimmelt vor Fehlern. Desto komplexer die Software wird, desto mehr Fehler und Hintertürchen sind auch enthalten.
|