10 Ernsthaft epische Computersoftware-Fehler
Die Mehrzahl der Software-Fehler sind kleine Unannehmlichkeiten, die vom Benutzer überwunden oder umgangen werden können. Es gibt jedoch einige bemerkenswerte Fälle, in denen ein einfacher Fehler Millionen betroffen hat und bis zu einem gewissen Grad auch Verletzungen und den Tod verursacht hat.
Software wird von Menschen geschrieben - und daher weist jede Software Teile Fehler oder "undokumentierte Funktionen" auf, wie sie ein Verkäufer nennt. Das heißt, die Software macht etwas, was nicht sollte, oder tut etwas nicht, was sie sollte. Diese Fehler können auf ein schlechtes Design, ein Missverständnis eines Problems oder einfach auf ein menschliches Versagen zurückzuführen sein - genau wie ein Tippfehler in einem Buch. Während ein Buch jedoch von einem Menschen gelesen wird, der normalerweise auf die Bedeutung eines falsch geschriebenen Wortes schließen kann, wird Software von Computern gelesen, die vergleichsweise dumm sind und nur tun, was ihnen gesagt wird.
Hier sind zehn Fälle, in denen die Folgen dieser Fehler auf die eine oder andere Weise enorm waren:
10Therac-25 1985-1987
Der Therac-25 war ein Gerät zur Strahlentherapie, im Allgemeinen zur Behandlung von Krebspatienten. Es gab zwei Betriebsarten. Die erste bestand aus einem Elektronenstrahl, der für kurze Zeit in kleinen Dosen direkt auf den Patienten gerichtet war. Die zweite richtete den Elektronenstrahl auf hohe Energieniveaus zuerst auf ein Metallziel, das den Strahl im Wesentlichen in Röntgenstrahlen umwandelte, die dann in den Patienten geleitet wurden.
Bei früheren Modellen der Therac-Maschine gab es für diese zweite Betriebsart physische Ausfallsicherungen, um sicherzustellen, dass dieses Ziel vorhanden war, da ohne diese sehr energiereiche Strahlen versehentlich direkt in den Patienten abgefeuert werden könnten. Im neuen Modell wurden diese physischen Fail-Safes durch Software ersetzt.
Leider gab es einen Fehler in der Software: Bei automatischen Sicherheitsprüfungen kam es manchmal zu einem "arithmetischen Überlauf". Dies bedeutet im Wesentlichen, dass das System innerhalb seiner internen Berechnungen eine Zahl verwendete, die zu groß war, als dass es es handhaben könnte. Wenn der Bediener zu diesem Zeitpunkt die Maschine konfiguriert hat, schlagen die Sicherheitsprüfungen fehl und das Metallziel wird nicht an seinen Platz gebracht. Das Ergebnis war, dass Strahlen, die 100-mal höher als die beabsichtigte Dosis waren, in einen Patienten geschossen wurden, was zu einer Strahlenvergiftung führte. Dies geschah bei 6 bekannten Gelegenheiten, was den späteren Tod von 4 Patienten zur Folge hatte.
9 World of Warcraft-Störschub "Verderbtes Blut" 13. September 2005Das äußerst erfolgreiche World of Warcraft (WoW), ein von Blizzard Entertainment erstelltes Online-Computerspiel, erlitt nach einer Aktualisierung des Spiels am 13. September 2005 einen peinlichen Fehler, der zu einem (fiktiven) Massentod führte. Nach einer Aktualisierung des Spielinhalts wurde ein neuer Feindcharakter Hakkar eingeführt, der die Fähigkeit hatte, den spielenden Charakteren, die ihre Gesundheit über einen gewissen Zeitraum hinweg abträglich machen würden, eine Krankheit namens Corrupted Blood zuzufügen. Diese Krankheit konnte wie in der realen Welt von Spieler zu Spieler weitergegeben werden und hatte das Potenzial, jeden Charakter zu töten, an dem sie beteiligt war. Dieser Effekt sollte streng auf den von Hakkar bewohnten Bereich des Spiels begrenzt sein.
Eines wurde jedoch übersehen: Spieler konnten sich während der Infizierung in andere Bereiche des Spiels teleportieren und die Krankheit auf andere übertragen - genau das ist passiert. Ich kann keine Zahlen über den Körper zählen, aber ganze Städte in der Spielwelt waren No-Go-Gebiete mit Leichen von toten Spielern, die die Straßen verstreuen. Glücklicherweise ist der Tod von Spielern in WoW nicht dauerhaft und das Ereignis war bald vorbei, als die Administratoren des Spiels die Server zurücksetzen und weitere Softwareupdates anwenden. Besonders interessant ist die Art und Weise, wie die Reaktionen der Spieler im Spiel ihre Reaktionen auf einen ähnlichen realen Vorfall genau widerspiegeln.
Nordamerikanischer Stromausfall 14. August 2003
Rund 55 Millionen Menschen waren betroffen, vor allem im Nordosten der USA, aber auch in Ontario, Kanada. Dies war einer der größten Stromausfälle in der Geschichte. Es begann, als ein Kraftwerk am Südufer des Lake Erie, Ohio, wegen der hohen Nachfrage, die den Rest des Stromnetzes stärker belastete, außer Betrieb ging. Wenn Stromleitungen stärker belastet werden, heizen sie sich auf, was bedeutet, dass sich das Kabel (meist Aluminium und Stahl) ausdehnt. Mehrere Stromleitungen hingen tiefer, als sie sich ausdehnten und Bäume fingen, sie herunterfuhren und das System noch mehr unter Druck setzen. Dies führte zu einem Kaskadeneffekt, der das Stromnetz letztendlich auf 20% der normalen Leistung reduzierte.
Während die Ursachen für diesen Blackout nichts mit einem Softwarefehler zu tun hatten, hätte er möglicherweise abgewendet werden können, wenn es nicht einen Softwarefehler in der Leitzentrale gegeben hätte. In einem so genannten "Race Condition" -Szenario konkurrierten zwei Teile des Systems um dieselbe Ressource und konnten den Konflikt nicht lösen, was dazu führte, dass das Alarmsystem einfror und die Verarbeitung von Alarmen stoppte. Unglücklicherweise versagte das Alarmsystem "leise", was bedeutet, dass es kaputt ging, aber niemanden darüber in Kenntnis setzte, dass es kaputt war. Dies bedeutete, dass keine akustischen oder visuellen Warnungen ausgegeben wurden, um die Mitarbeiter des Kontrollraums zu kontrollieren, die sich aus Gründen der Situationswahrnehmung auf solche Dinge verlassen hatten. Die Nachwirkungen waren gut dokumentiert und ließen viele Bereiche für mehrere Tage ohne Strom aus und betrafen Industrie, Versorger und Kommunikation. Es wurde auch als mindestens ein Faktor bei mehreren Todesfällen verantwortlich gemacht.
7 Vorfall der USS Yorktown am 21. September 1997In der Welt der Softwareentwicklung gibt es mehrere allgemein bekannte Fehler, auf die Programmierer stoßen und die sie beheben müssen. Ein solches Beispiel ist der Fehler 'Dividieren durch Null', bei dem eine Berechnung durchgeführt wird, bei der eine beliebige Zahl durch Null dividiert wird.Es ist nicht möglich, eine solche Berechnung aufzulösen, zumindest nicht ohne höhere Mathematik, und die meisten Software - von Supercomputern bis hin zu Taschenrechnern - wurde geschrieben, um dieses Szenario zu berücksichtigen.
Mit einiger Peinlichkeit erlitt die USS Yorktown einen kompletten Ausfall ihres Antriebssystems und war fast 3 Stunden tot im Wasser, als ein Besatzungsmitglied eine "0" in das Datenbankmanagementsystem an Bord eingetippte in einer Abteilungsberechnung verwendet. Die Software wurde als Teil eines umfassenderen Vorgangs installiert, um Computer zu verwenden, um die für den Betrieb einiger Schiffe erforderliche Personalkapazität zu reduzieren. Glücklicherweise befand sich das Schiff zum Zeitpunkt des Vorfalls in Manövern und wurde nicht in einer Kampfumgebung eingesetzt, was schwerwiegende Folgen hätte haben können.
6Transsibirische Gaspipeline Explosion 1982
Dies ist ein bisschen langweilig und ist vielleicht nie passiert, aber wenn es stimmt, ist es ein prominentes Beispiel für einen bewusst eingeführten Software-Fehler, der einen großen Vorfall verursacht.
Während des Kalten Krieges, als die Beziehungen zwischen den USA und Sowjetrußland ein wenig frostig waren, soll die Central Intelligence Agency absichtlich Fehler in Software gesetzt haben, die von einer kanadischen Firma verkauft wird - einer Software, die zur Steuerung der transsibirischen Gaspipeline verwendet wurde . Die CIA meinte, dass Russland dieses System über ein kanadisches Unternehmen kaufte, um US-Technologie auf verdeckte Weise zu erhalten, und dies wäre eine Gelegenheit, ihnen fehlerhaftes Material zuzuführen.
Auf diese Praktiken wurde später im freigegebenen "Abschiedsdossier" Bezug genommen, wo unter anderem behauptet wird, dass fehlerhafte Turbinen tatsächlich in einer Gaspipeline eingesetzt wurden. Der ehemalige Luftfahrt-Sekretär Thomas C. Reed behauptet, dass eine Reihe von Fehlern eingeführt wurde, damit das System Tests bestehen würde, die aber während des Einsatzes abbrachen. Die Einstellungen für Pumpen und Ventile waren so eingestellt, dass sie die Drücke übertrafen, denen die Pipeline standhalten konnte. Dies führte zu einer Explosion, die als größte nichtnukleare Explosion bezeichnet wurde, die je aufgezeichnet wurde.
Diese Behauptungen wurden jedoch vom Angehörigen des KGB, Anatoly Medetsky, bestritten, der behauptet, dass die Explosion eher durch unterdurchschnittliche Konstruktion als durch vorsätzliche Sabotage verursacht wurde. Unabhängig von der Ursache wurden keine bekannten Opfer gemeldet, da die Explosion in einem sehr abgelegenen Gebiet stattfand.
Stanislav Petrov war der diensthabende Offizier eines geheimen Bunkers in der Nähe von Moskau, der für die Überwachung des sowjetischen Frühwarnsystems verantwortlich war. Kurz nach Mitternacht wurden sie gewarnt, dass die USA fünf Minuteman-Interkontinentalraketen abgefeuert hätten. Als Teil der gegenseitig zugesicherten Zerstörungslehre, die während des Kalten Krieges vorherrschte, war die Antwort auf einen Angriff einer Macht ein Racheakt der anderen.
Dies bedeutete, dass sie bei einem echten Angriff schnell reagieren mussten. Es schien jedoch merkwürdig, dass die USA mit nur einer Handvoll Sprengköpfen angreifen würden: Obwohl sie massiven Schaden und Tod verursachen würden, wäre dies nicht annähernd ausreichend, um die sowjetische Opposition auszurotten. Auch die Radarstationen am Boden nahmen keine Kontakte auf, obwohl diese aufgrund der Erdkrümmung außerhalb des Horizonts nicht erkannt werden konnten, was die Verzögerung erklären könnte.
Eine weitere Überlegung war das Frühwarnsystem selbst, von dem bekannt war, dass es Mängel aufwies und das vorrangig in den Dienst gestellt wurde. Petrov wog alle diese Faktoren ab und entschied, den Alarm als Fehlalarm zu regieren. Obwohl Petrov nicht den Finger auf den Nuke-Knopf hatte, hätte er seinen Vorgesetzten empfohlen, den Angriff für real zu halten, was zu einem vollständigen Atomkrieg geführt hätte. Ob auf Erfahrung, Intuition oder einfach nur Glück, Petrovs Entscheidung war die richtige.
Später wurde festgestellt, dass die Früherkennungssoftware die Reflexion der Sonne von den Wolken aufgenommen und beim Start von Raketen falsch interpretiert hatte.
4Sony CD-Kopierschutz
Der scheinbar nie endende Krieg zwischen Medien und Piraten ebbt und fließt jedes Jahr. Sobald neue Wege zum Schutz und zur sicheren Verteilung von Medien gefunden werden, werden neue Wege zur Umgehung und Beeinträchtigung dieser Maßnahmen aufgedeckt.
Einige würden argumentieren, dass Sony BGM 2005 einen Schritt zu weit gegangen sei, als sie einen neuen Kopierschutz für einige ihrer Audio-CDs einführten. Bei der Wiedergabe auf einem Windows-Computer wird auf diesen CDs eine als Rootkit bezeichnete Software installiert. Ein Rootkit ist eine Form von Software, die tief in den Computer eindringt und bestimmte grundlegende Prozesse verändert. Obwohl es nicht immer bösartig ist, wird ein Rootkit häufig verwendet, um bösartige und schwer zu erkennende (wie Viren, Trojaner usw.) entdeckte (oder entfernte) Software zu installieren. Bei Sony BMG bestand das Ziel darin, die Art und Weise eines Windows-Computers zu kontrollieren Die Sony-CDs wurden verwendet, um das Kopieren oder Konvertieren in MP3-Dateien zu verhindern, wodurch die Piraterie ihrer Medien verringert werden konnte.
Das Rootkit hat dies erreicht - aber durch Maßnahmen, um sich vor dem Benutzer zu verbergen, konnten Viren und andere bösartige Software gleichzeitig versteckt werden. Die schlecht durchdachte Implementierung und die wachsende Wahrnehmung, dass es für Sony BMG kein Geschäft war, das Benutzer-PCs hinterlistig zu manipulieren, führte dazu, dass das gesamte System nach hinten losging. Dies führte dazu, dass das Rootkit von vielen Computersicherheitsunternehmen als Malware eingestuft wurde, mehrere Gerichtsverfahren und ein Produktrückruf der betroffenen CDs.
3 Patriot Missile Bug 25. Februar 1991Während der Operation Desert Shield setzte das US-Militär das Patriot Missile System zur Abwehr von Flugzeugen und Raketen ein - in diesem Fall Raketen des irakischen Al Hussein (SCUD).Die Tracking-Software für die Patriot-Rakete verwendet die Geschwindigkeit ihres Ziels und die aktuelle Zeit, um vorherzusagen, wo sich das Ziel von einem Moment zum anderen befinden wird. Da verschiedene Ziele mit Geschwindigkeiten von bis zu MACH 5 fahren können, müssen diese Berechnungen sehr genau sein.
Zu dieser Zeit gab es einen Fehler in der Zielsoftware - was bedeutete, dass die interne Uhr mit der Zeit (ähnlich wie bei jeder anderen Uhr) immer weiter "driftete", je länger das System lief. Der Fehler war eigentlich bereits bekannt und wurde behoben, indem das System regelmäßig neu gestartet und dadurch die Systemuhr zurückgesetzt wurde.
Leider haben die Verantwortlichen nicht klar verstanden, wie "regelmäßig" sie das System neu starten sollen, und es wurde 100 Stunden lang ausgeführt. Als eine irakische Rakete auf einen US-Flugplatz in Dhahran (Saudi-Arabien) abgefeuert wurde, wurde sie vom Patriot-Raketensystem entdeckt. Zu diesem Zeitpunkt war die interne Uhr jedoch um 0,34 Sekunden nach außen gerutscht. Wenn sie also berechnen wollte, wo sich die Rakete als nächstes befinden würde, betrachtete sie einen Bereich des Himmels, der mehr als einen halben Kilometer von der tatsächlichen Position der Raketen entfernt war. Es ging sofort davon aus, dass es keine feindliche Rakete gab, und stoppte das Abfangen. Die Rakete fuhr weiter zu ihrem Ziel, wo sie 28 Soldaten tötete und weitere 98 verletzt.
2Millennium Bug
Der Millennium Bug, oder Y2K, ist der bekannteste Fehler auf dieser Liste und derjenige, von dem sich viele von uns erinnern, zu dieser Zeit gehört zu haben. Grundsätzlich war dieser Fehler das Ergebnis der kombinierten Kurzsichtigkeit von Computerfachleuten in den Jahrzehnten vor dem Jahr 2000. In vielen Computersystemen wurden zwei Stellen verwendet, um das Datum anzuzeigen, z. 98 anstelle von 1998, eine Praxis, die vernünftig erschien und die Computer vor einiger Zeit veraltete.
Viele haben jedoch nicht damit gerechnet, dass es ein Problem geben könnte, wenn das Datum über das Jahr 2000 hinausgeht. Unter Verwendung aktueller Systeme konnte das Jahr 2000 nur als "00" dargestellt werden, was Computer mit dem Gedanken verwechseln könnte, dass es das Jahr 1900 bedeutete So etwas würde alle Berechnungen brechen, die sich über Jahrtausende erstrecken, die das Jahrtausend durchzogen haben. Zum Beispiel könnte es zeigen, dass jemand, der 1920 geboren wurde und im Jahr 2001 starb, 19 Jahre alt war.
Als Reaktion auf das Problem haben Software-Unternehmen ihre Produkte rasch aktualisiert, da sie bereits fast alles kontrollierten, von Banken und Gehaltsabrechnungen bis hin zu Krankenhauscomputern und Zugfahrkartensystemen. In Anerkennung seiner weltweiten Natur wurde im Februar 1999 das International Y2K Cooperation Center gegründet, um die erforderlichen Arbeiten zur Vorbereitung des neuen Jahrtausends zwischen Regierungen und Organisationen zu koordinieren. Am Ende verlief das neue Jahr, abgesehen von den universellen Kateramenten, ohne allzu viele Zwischenfälle.
Es ist schwer zu sagen, wie viel von diesem Erfolg auf die Arbeit zur Linderung des Problems zurückzuführen ist oder ob das Problem in den Medien überhaupt übertrieben wurde - wahrscheinlich eine Mischung aus beiden.
1 Jahr 2038
Obwohl Y2K vorüber ist, sind wir noch nicht aus dem Wald. Nicht alle Computer behandeln Datumsangaben auf dieselbe Weise, und viele Computer, die auf dem UNIX-Betriebssystem basieren, verarbeiten Datumsangaben, indem sie zählen, wie viele Sekunden ein Datum seit dem 01.01.1970 liegt. Das Datum 01.01.1980 ist beispielsweise 315.532.800 Sekunden nach dem 01.01.1970. Diese Nummer wird auf diesen Computern als "vorzeichenbehaftete 32-Bit-Ganzzahl" gespeichert, die eine Größenbeschränkung von 2147483647 hat. Dies bedeutet im Wesentlichen, dass sie nur Datumsangaben verarbeiten kann, die nach dem 01.01.1970 bis zu 2147483647 Sekunden dauern - was uns nur bringt bis zum 19. Januar 2038, danach können wir wieder Probleme haben.
Dies gilt insbesondere dann, wenn wir davon ausgehen, dass UNIX-basierte Software häufiger in „eingebetteten Systemen“ als in einem Heim-PC verwendet wird - das sind Systeme, die einen sehr spezifischen Zweck haben, der eng mit ihrer Hardware zusammenhängt, z. B. Software für Roboter-Fertigungsstraßen , Digitaluhren, Netzwerkrouter, Sicherheitssysteme usw.
Außerdem muss sich jemand überlegen, was wir am 1. Januar 10000 tun werden. Nicht ich.