Liste von Programmfehlerbeispielen

Wikimedia-Liste

Die Liste von Programmfehlerbeispielen zeigt einige medial betrachtete Beispiele von Programmfehlern, ist nach Branchen (Anwendergruppen) geordnet und beschreibt deren Folgen.

Luft- und Raumfahrt

Bearbeiten
  • Beim Kampfflugzeug F-16 brachte der Autopilot das Flugzeug in Rückenlage, wenn der Äquator überflogen wurde. Dies kam daher, dass man keine „negativen“ Breitengrade als Eingabedaten bedacht hatte. Dieser Fehler wurde sehr spät während der Entwicklung der F-16 mithilfe eines Simulators entdeckt und beseitigt.[1]
  • Am 4. Juni 1996 sprengte sich die erste Ariane-5-Rakete (Startnummer V88) der Europäischen Raumfahrtbehörde 40 Sekunden nach dem Start in vier Kilometern Höhe automatisch. Der Programmcode für (unter anderem) die Vorstart-Ausrichtung war von der Ariane 4 übernommen worden, lief unnötigerweise auch nach dem Start weiter und funktioniert dabei nur in einem von der Ariane 4 nicht überschreitbaren Bereich der Horizontalgeschwindigkeit. Als dieser Bereich von der Ariane 5 verlassen wurde, da sie höhere Horizontalgeschwindigkeiten erreicht als die Ariane 4, schlug der Fehler auf die Trägheits-Steuersysteme durch und diese schalteten sich weitgehend ab. Bei der Programmierung war es zu einem Fehler bei der Typumwandlung gekommen. Als von Float nach Integer umgewandelt wurde und der Wert 32.768 erreichte, entstand ein Überlauf.[2] Dieser Überlauf hätte durch die verwendete Programmiersprache Ada eigentlich entdeckt und behandelt werden können. Diese Sicherheitsfunktionalität ließen die Verantwortlichen jedoch abschalten. Der Schaden betrug etwa 370 Millionen US-Dollar.
  • 1999 verpasste die NASA-Sonde Mars Climate Orbiter den Landeanflug auf den Mars, weil die Programmierer unterschiedliche Maßsysteme verwendeten (ein Team verwendete das metrische und das andere das angloamerikanische) und beim Datenaustausch es so zu falschen Berechnungen kam. Eine Software wurde so programmiert, dass sie sich nicht an die vereinbarte Schnittstelle hielt, in der die metrische Einheit Newton × Sekunde festgelegt war.[3] Die NASA verlor dadurch die Sonde.[4]
  • Beim Start der als Nachfolger der Delta 2 geplanten neuen Delta-3-Rakete 1998 geriet diese 75 Sekunden nach dem Start in Schräglage zur Flugrichtung und musste gesprengt werden. Die Steuersoftware war aus der Delta 2 übernommen worden, was aber zu einer falschen Interpretation bezüglich einer 4-Hz-Eigenschwingung in Rollrichtung innerhalb der hydraulischen Steuersysteme der Booster-Raketen führte.[5]
  • Das mehrere hundert Millionen Euro teure Weltraumteleskop Hitomi geriet Ende März 2016 nach einer Verkettung von Softwarefehlern in zu schnelle Rotation und ging verloren. Die Software war fälschlicherweise von einer unerwünschten langsamen Rotation des Satelliten ausgegangen und versuchte, die scheinbare Drehung durch Gegenmaßnahmen zu kompensieren. Die Signale der redundanten Kontrollsysteme wurden falsch gedeutet, und schließlich wurde der Satellit immer stärker in Rotation versetzt, bis er wegen der zu groß werdenden Fliehkräfte schließlich zerbrach.[6][7]
  • Zwischen 1985 und 1987 gab es mehrere Unfälle[8] mit dem medizinischen Bestrahlungsgerät Therac-25. Infolge einer Überdosis, die durch fehlerhafte Programmierung und fehlende Sicherungsmaßnahmen verursacht wurde, mussten Organe entfernt werden, und es verstarben drei Patienten.
  • Im Dezember 2014 arbeitete eine Software „fehlerhaft“, die Produktpreise abhängig vom Preis bei der Konkurrenz automatisch festlegt. Auf dem Marktplatz des Online-Versandhändlers Amazon wurden die Verkaufspreise vieler Händler für Hunderte Produkte auf 0,01 Englische Pfund gesetzt. Einigen Anbietern drohten mehrere Zehntausend Pfund Verlust, mitunter befürchteten einige, die Panne könne sie in den Konkurs treiben.[9]
  • Am 12. März 1995 kam es wegen eines um wenige Byte zu klein bemessenen Stapelspeichers in der Software eines Hamburger Stellwerks, bei dem auch das Ersatzsystem aus Sicherheitsgründen abgeschaltet wurde, zu massiven Verzögerungen im bundesweiten Zugverkehr.[10] Am 16. Dezember 2009 kam es zu einem ähnlichen Fehler im Stellwerk des Hauptbahnhofs Hannover.[11]
  • Die Yorktown, ein weitgehend computerisiertes Schiff der Ticonderoga-Klasse, trieb nach Aussage der Navy bei einem Manöver im September 1997 knapp drei Stunden hilflos im Mittelmeer, nachdem ein Ingenieur 0 direkt in die Datenbank eingegeben hatte, um einen fehlerhaften Eintrag eines Sensors zu korrigieren. Die Software verwendete diesen Wert für Divisionen, die Folge waren „Division durch null“-Fehler, welche von der Software nicht korrekt abgefangen wurden. Es füllte sich im weiteren Verlauf der temporäre Speicher des Systems und als dieser voll war, wurde beim Überlauf der angrenzende Speicherbereich, der des Antriebssystems, überschrieben. Das Antriebssystem und das Rechnernetzwerk, das aus mehreren Windows-NT-Servern bestand, fielen aus, da sich der Fehler im Netzwerk ausgebreitet hatte. Es dauerte über drei Stunden, die Server zu reanimieren.[12]
  • Bei Toll Collect kam es 2003[13] unter anderem wegen der fehlenden Kompatibilität von Softwaremodulen zu drastischen Verzögerungen mit Vertragsstrafen und Einnahmeausfällen in Milliardenhöhe.
  • In den USA hatte ein Sicherheitsexperte „null“ als Kfz-Kennzeichen eintragen lassen. Dieser Begriff wird in vielen IT-Systemen als Kennzeichen für das Fehlen eines Wertes verwendet und konnte nur aufgrund eines Programmfehlers eingetragen werden. Dieses eigentlich unzulässige Kfz-Kennzeichen hat deshalb dazu geführt, dass der Besitzer Strafzettel erhielt, bei denen kein Kfz-Kennzeichen erfasst war.[14]

Finanzwesen

Bearbeiten
  • Eine im Jahr 1999 in der britischen Royal Mail eingeführte fehlerhafte Abrechnungssoftware des Unternehmens Fujitsu führte zu Anklagen gegen Leiter von Postfilialen wegen Unterschlagung und etwa 900 Verurteilungen. Nach Ausstrahlung der vierteiligen Serie Mr Bates vs The Post Office im Januar 2024 durch den britischen Sender ITV erlangte dieser Skandal eine breite Aufmerksamkeit.[15]
  • Anfang November 2005 konnte an der Tokioter Börse wegen eines Systemfehlers stundenlang kein Handel betrieben werden. Auch in den nachfolgenden Wochen gab es viele fehlerhafte Wertpapierorders; in einem Fall entstand sogar ein finanzieller Schaden von über 300 Millionen Dollar. Der Präsident der Börse, Takuo Tsurushima, trat daraufhin von seinem Amt zurück.[16]
  • Im August 2012 verlor die Firma Knight Capital innerhalb von 45 Minuten mehr als 440 Millionen US-Dollar (359 Millionen Euro) durch einen Fehler in ihrer Aktienhandels-Software. Ein neues Handelsprogramm überflutete den Markt mit fehlerhaften Handelsaufträgen und häufte einen Berg zu teuer gekaufter Aktien an. Die folgende Rettung der Firma durch Investoren kostete die Alteigentümer 70 bis 75 Prozent ihrer Anteile am Unternehmen.[17]
  • Im Oktober und November 2012 kam es auf Grund von Schwierigkeiten bei der Migration auf ein neues Kernbankensystem in den Online-Bankingsystemen der Bank Austria zu massiven Problemen.[18] Das System war nach der 2-tägigen Umstellungsphase noch einen weiteren Tag nicht erreichbar, musste mehrmals neugestartet werden und war noch Tage nach der Umstellung teilweise nicht erreichbar, oft überlastet und dadurch langsam. Geldausgabeautomaten funktionierten nicht, Überweisungen wurden fehlerhaft durchgeführt und die neue Benutzeroberfläche wurde als zu unübersichtlich und kompliziert kritisiert.[19] Neben der Zusicherung, etwaige Mahnspesen zu übernehmen, bot die Bank Austria ihren OnlineBanking- und BusinessNet-Kunden Gutscheine im Wert von jeweils 30 € an, in Summe 21 Millionen €.[20]

Kommunikation

Bearbeiten

Militär

Bearbeiten
  • Im Oktober 2007 kamen zehn Angehörige der südafrikanischen Armee durch ein vollautomatisiertes 35-mm-Flakgeschütz ums Leben. Als Ursache wurde ein defektes Computersystem vermutet.[24]

Informationstechnik

Bearbeiten
  • Der sogenannte Box-Model-Bug im Internet Explorer sorgte dafür, dass viele Webdesigner für diesen Browser spezielle Anweisungen schreiben mussten, da das Programm Maßangaben für Webseiten-Elemente fehlerhaft interpretierte.
  • Durch den Heartbleed-Bug in OpenSSL konnten über TLS- und DTLS-Verbindungen Teile des Arbeitsspeichers der Gegenseite ausgelesen werden.
  • Manche Malware testet vor dem Ausführen des Schadcodes die Erreichbarkeit von zufällig generierten Internet-Adressen (Ping). In Testumgebungen wird häufig die Erreichbarkeit sämtlicher Internet-Adressen simuliert, unabhängig von deren realer Existenz. In diesem Fall soll sich die Malware selbstständig deaktivieren, um in einer Testumgebung keine nachvollziehbaren Aktionen durchzuführen. Bei der sich am 12. Mai 2017 weltweit verbreitenden Ransomware WannaCry wurde diese (vermutliche) Anti-Analyse-Maßnahme jedoch falsch umgesetzt: die getestete Internet-Adresse wurde in das Programm hartkodiert und war somit immer gleich. Daher konnte die tatsächliche Registrierung dieser Domain die weltweite Verbreitungswelle stoppen – obwohl dies ursprünglich nicht die Intention war.[25]

Fehler bei Jahreswechseln

Bearbeiten
  • Vor dem Jahreswechsel 1999 / 2000 war das Jahr-2000-Problem ein Thema für die IT, weil im Einsatz stehende DV-Anwendungen Jahresangaben für das Jahr 2000 und höher (meist aufgrund nur 2-stelliger Speicherung) nicht korrekt verarbeiten konnten oder weil diese Fähigkeit nicht bekannt war und überprüft werden musste. Die Designentscheidungen hierzu lagen meist viele Jahre zurück, waren Entwicklern, Anwendern und Management im Prinzip bekannt, die ‚Fehler‘ traten aber (bei der Verarbeitung von Jahresangaben von 1900 bis 1999) nicht zutage. Weltweit wurde dies zum „bislang folgenreichsten und teuersten (menschlichen) Fehler im Umgang mit (High Tech) EDV-Systemen“,[26] der nahezu bei allen IT-Anwendern zu Projekten führte, die nach verschiedenen Schätzungen insgesamt „bis zu 800 Mrd. US-Dollar Aufwand“[26] verursachten, zu großen Teilen lediglich zur Überprüfung der Jahr-2000-Fähigkeit, sofern nötig zu deren Herstellung. Trotzdem konnte das Auftreten von Fehlern nicht immer verhindert werden:[27]
Die „bis zu 800 Mrd. US-Dollar Aufwand“ können jedoch nicht direkt als „Kosten eines Fehlers“ gewertet werden, da oft deutlich veraltete Software über Jahrzehnte weitergenutzt und angepasst worden war, deren Ersatz und Neuprogrammierung ursprünglich deutlich vor dem Jahr 2000 geplant war. Eine eigentlich geplante Neu-Programmierung wurde also aufgeschoben – diese Kosten waren somit keine ‚Fehlerkosten‘, sondern zum Teil Kosten zur Ersatzbeschaffung von Software, veranlasst im Zusammenhang mit Y2K. Dennoch: „Nach Ansicht vieler Experten ist Y2K der Größte Anzunehmende Unfall – GAU – der Informationstechnologie“.[33]
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Geschichte der Softwarefehler. (Memento vom 22. August 2013 im Internet Archive) certitudo; abgerufen am 23. Februar 2024.
  2. I. Giese: Vortrag über Software Reliability. (Memento vom 18. Februar 2010 im Internet Archive) GSI Helmholtzzentrum für Schwerionenforschung, unter anderem mit Ausschnitt des verursachenden Quellcodes; abgerufen am 23. Februar 2024.
  3. Nasa-Bericht der Untersuchung des Unglücks (Memento vom 27. Oktober 2009) (PDF) S. 16 “MCO Root Cause”; abgerufen am 23. Februar 2024.
  4. Mars Climate Orbiter - Inch und Fuß statt Meter. astronews.com, 1. Oktober 1999; abgerufen am 23. November 2012
  5. Frank Wunderlich-Pfeiffer/Scienceblog: Das beschwingte Ende der Delta III. In: Golem.de. 24. November 2015, abgerufen am 30. November 2015.
  6. Software error doomed Japanese Hitomi spacecraft. Nature, 28. März 2016, abgerufen am 6. Mai 2016 (englisch).
  7. Matthias Delbrück: Röntgenauge verliert Flügel – Weltraumobservatorium Astro-H/Hitomi geht nach vermeidbaren Softwarefehlern verloren. In: Physik Journal. Nummer 6, Juni 2016, S. 13.
  8. Nancy G. Leveson, Clark S. Tyler: An Investigation of the Therac-25 Accidents. In: Computer. Band 26, Nr. 7, 1993, ISSN 0018-9162, S. 18–14.
  9. Heise Newsticker Hunderte Waren für einen Penny verkauft. heise.de
  10. Software-Katastrophen - Hamburger Stellwerk. (Memento vom 28. September 2007 im Internet Archive) (PDF; 221 kB)
  11. Software-Panne: Chaos am Hauptbahnhof Hannover
  12. René Lotz: Berühmt berüchtigte Softwarefehler - USS Yorktown. (PDF; 135 kB) Seminararbeit, Institut für Informatik, Universität Koblenz-Landau (2003)
  13. Pressemitteilung Toll Collect@1@2Vorlage:Toter Link/www.toll-collect.de (Seite nicht mehr abrufbar, festgestellt im August 2018. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis.
  14. Wunschkennzeichen: Warum "Null" kein gutes Nummernschild ist - Golem.de. Abgerufen am 14. August 2019 (deutsch).
  15. Wegen Software-Skandal – Fujitsu unter Druck. In: faz.net. 10. Januar 2024, abgerufen am 19. März 2024.
  16. Tokioter Börse - Der Chef tritt ab. In: Manager Magazin, 20. Dezember 2005
  17. Aktienhandel-Software verzockt 440 Millionen Dollar in 45 Minuten. heise.de; abgerufen am 9. August 2012
  18. Die Hintergründe des Online-Chaos bei der Bank Austria
  19. derstandard.at
  20. wirtschaftsblatt.at (Memento vom 22. Oktober 2014 im Internet Archive)
  21. Fehlerhafte Software verhindert Empfang der ORF-Programme. ORF, 22. August 2007
  22. Server-Ausfall legt bundesweit Telekom-Leitungen lahm. In: Tagesspiegel. 30. Oktober 2007 (archive.org).
  23. Online FOCUS - Hunderttausendfach „falsch verbunden“
  24. heise online - Defektes Computersystem für den Tod von zehn Soldaten verantwortlich?
  25. Heise Newsticker Ransomware WannaCry: Sicherheitsexperte findet „Kill-Switch“ – durch Zufall heise.de Standard-Vorgehen des Malware-Analysten:

    “1. Look for unregistered or expired C2 domains [(= unregistered malware control server domains)] belonging to active botnets and point it to our sinkhole (a sinkhole is a server designed to capture malicious traffic and prevent control of infected computers by the criminals who infected them).
    2. Gather data on the geographical distribution and scale of the infections, including IP addresses, which can be used to notify victims that they’re infected and assist law enforcement.
    3. Reverse engineer the malware and see if there are any vulnerabilities in the code which would allow us to take-over the malware/botnet and prevent the spread or malicious use, via the domain we registered.”

    -( How to Accidentally Stop a Global Cyber Attacks, malwaretech.com (englisch) )

    Es wurde also davon ausgegangen, dass die Domain ein „malware control server“ sei, der bisher jedoch (noch) nicht registriert wurde.

  26. a b Die Verantwortung des Computers … (PDF; 158 kB) Science-softcon
  27. Y2K-Probleme (Memento vom 22. Oktober 2014 im Internet Archive); abgerufen am 23. Februar 2024.
  28. Computer-GAU: Das Silvesterchaos bei der Berliner Feuerwehr. heise online, 16. Juni 2000; abgerufen am 29. November 2012
  29. Jahr-2000-Problem - Und sie dreht sich noch. (Memento vom 22. August 2010 im Internet Archive) In: Computerwoche, 14. Januar 2000; abgerufen am 23. Februar 2024.
  30. Japanese Unhappy About 9 y2k Malfunctions in Nuke Plants. In: Computerwoche, 14. Januar 2000; abgerufen am 29. November 2012
  31. Y2K Bugs Reported Between December 30, 1999 and February 19, 2000. Boogie online; abgerufen am 29. November 2012
  32. Y2K bug briefly affected U.S. terroristmonitoring effort, Pentagon says.@1@2Vorlage:Toter Link/articles.cnn.com (Seite nicht mehr abrufbar, festgestellt im August 2018. Suche in Webarchiven)  Info: Der Link wurde automatisch als defekt markiert. Bitte prüfe den Link gemäß Anleitung und entferne dann diesen Hinweis. CNN Tech, 5. Januar 2000; abgerufen am 29. November 2012
  33. Gerd K. Hartmann: Die Verantwortung des Computers: eine Herausforderung für Bildung und Wissenschaft. (PDF; 154 kB) abgerufen am 28. Oktober 2015
  34. Panne zum Jahreswechsel. In: Tagesspiegel. 5. Januar 2010 (Online).