10 errores de software de computadora seriamente épicos
La mayoría de los errores de software son pequeños inconvenientes que pueden ser superados o solucionados por el usuario, pero hay algunos casos notables en los que un simple error ha afectado a millones, en un grado u otro, e incluso ha causado lesiones y la muerte.
El software está escrito por personas y, por lo tanto, cada pieza de software tiene errores o "características no documentadas", como un vendedor podría llamarlos. Es decir, el software hace algo que no debería o no hace lo que debería. Estos errores pueden deberse a un mal diseño, a la falta de comprensión de un problema o simplemente a un error humano, como un error tipográfico en un libro. Sin embargo, mientras que un libro es leído por un humano que generalmente puede inferir el significado de una palabra mal escrita, las computadoras leen el software, que son comparativamente estúpidos, y solo harán lo que se les dice.
Aquí hay diez casos donde las consecuencias de estos errores fueron enormes, de alguna manera u otra:
10Therac-25 1985-1987
El Therac-25 fue una máquina para administrar radioterapia, generalmente para tratar pacientes con cáncer. Tenía dos modos de funcionamiento. El primero consistió en un haz de electrones dirigido directamente al paciente en pequeñas dosis durante un corto período de tiempo. El segundo apuntó el haz de electrones a niveles de alta energía hacia un "objetivo" metálico primero, que esencialmente convertiría el haz en rayos X que luego pasaban al paciente.
En los modelos anteriores de la máquina Therac, para este segundo modo de operación, había fallas físicas seguras para garantizar que este objetivo estaba en su lugar, ya que, sin él, los rayos de muy alta energía podrían ser disparados directamente al paciente por error. En el nuevo modelo, estas cajas de seguridad físicas fueron reemplazadas por software.
Desafortunadamente, hubo un error en el software: a veces se producía un 'desbordamiento aritmético' durante las verificaciones automáticas de seguridad. Básicamente, esto significa que el sistema estaba usando un número dentro de sus cálculos internos que era demasiado grande para que lo manejara. Si, en este preciso momento, el operador estuviera configurando la máquina, las comprobaciones de seguridad fallarían y el objetivo de metal no se movería a su lugar. El resultado fue que los rayos 100 veces más altos que la dosis prevista se dispararían a un paciente, dándoles envenenamiento por radiación. Esto sucedió en 6 ocasiones conocidas, causando la muerte posterior de 4 pacientes.
9 Glitch de "Corrupted-Blood" de World of Warcraft 13 de septiembre de 2005El enormemente exitoso World of Warcraft (WoW), un juego de computadora en línea creado por Blizzard Entertainment, sufrió una falla embarazosa después de una actualización de su juego el 13 de septiembre de 2005, causando una muerte masiva (ficticia). Luego de una actualización del contenido del juego, se introdujo un nuevo personaje enemigo, Hakkar, que tenía la capacidad de infligir una enfermedad, llamada Sangre Corrupta, sobre los personajes en juego que agotarían su salud durante un período de tiempo. Esta enfermedad puede transmitirse de jugador a jugador, al igual que en el mundo real, y tiene el potencial de matar a cualquier personaje que la contraiga. Este efecto estaba destinado a estar estrictamente localizado en el área del juego que habitaba Hakkar.
Sin embargo, una cosa se pasó por alto: los jugadores pudieron teletransportarse a otras áreas del juego mientras aún estaban infectados y transmitir la enfermedad a otras personas, que es exactamente lo que sucedió. No puedo encontrar ninguna cifra en el recuento de cuerpos, pero ciudades enteras dentro del mundo del juego eran zonas prohibidas, con cadáveres de jugadores muertos en las calles. Afortunadamente, la muerte del jugador no es permanente en WoW y el evento terminó pronto cuando los administradores del juego reiniciaron los servidores y aplicaron nuevas actualizaciones de software. Particularmente interesante es la forma en que las reacciones de los jugadores en el juego podrían reflejar de cerca sus reacciones ante un incidente similar en la vida real.
Apagón norteamericano 14 de agosto de 2003
Afectando a unos 55 millones de personas, principalmente en el noreste de los Estados Unidos, pero también en Ontario, Canadá, este fue uno de los apagones más grandes de la historia. Comenzó cuando una planta de energía a lo largo de la costa sur del lago Erie, Ohio, se desconectó debido a la alta demanda que puso al resto de la red eléctrica bajo mayor estrés. Cuando las líneas eléctricas están bajo una carga eléctrica más pesada, se calientan, lo que significa que el material que compone el cable (generalmente aluminio y acero) se expande. Varias líneas eléctricas colgaban más bajas a medida que se expandían y atrapaban árboles, derribándolos y sometiendo al sistema a una presión aún mayor. Esto llevó a un efecto de cascada que eventualmente redujo la red eléctrica al 20% de la salida normal.
Si bien las causas de este apagón no tenían nada que ver con un error de software, podrían haberse evitado si no fuera por un error de software en el sistema de alarma del centro de control. En lo que se denomina escenario de "condición de carrera", dos partes del sistema competían por el mismo recurso y no pudieron resolver el conflicto, lo que provocó que el sistema de alarma se congelara y detuviera el procesamiento de las alertas. Desafortunadamente, el sistema de alarma falló 'silenciosamente', lo que significa que se rompió, pero no notificó a nadie que se había roto. Esto significaba que no se proporcionaron alertas de audio o visuales al personal de la sala de control, que confió más en esas cosas para la conciencia de la situación. Las consecuencias fueron bien informadas y dejaron muchas áreas sin electricidad durante varios días y afectaron a la industria, servicios públicos, comunicación. También fue culpado como al menos un factor contribuyente en varias muertes.
7 Incidente de USS Yorktown 21 de septiembre de 1997En el mundo del desarrollo de software, hay varios errores conocidos que los programadores encuentran y tienen que atender. Uno de esos ejemplos es el error 'dividir por cero', donde se realiza un cálculo que divide cualquier número por cero.Este cálculo no es posible de resolver, al menos no sin el uso de matemáticas más altas, y la mayoría del software, para todo, desde súper computadoras a calculadoras de bolsillo, está escrito para tomar en cuenta este escenario.
Entonces, con algo de vergüenza, el USS Yorktown sufrió un fallo total de su sistema de propulsión y estuvo muerto en el agua durante casi 3 horas cuando un miembro de la tripulación escribió un "0" en el sistema de gestión de la base de datos de a bordo, que en ese momento estaba utilizado en un cálculo de división. El software se instaló como parte de una operación más amplia para usar las computadoras con el fin de reducir el poder humano necesario para ejecutar algunos barcos. Afortunadamente, el barco estaba involucrado en maniobras en el momento del incidente, en lugar de desplegarse en un entorno de combate, lo que podría haber tenido consecuencias más graves.
6Explosión del gasoducto transiberiano 1982
Este es un poco exagerado, y puede que nunca haya ocurrido, pero, si es cierto, es un ejemplo prominente de un error de software introducido deliberadamente que causa un gran incidente.
Durante la Guerra Fría, cuando las relaciones entre los EE. UU. Y la Rusia soviética estaban un poco congeladas, se dice que la Agencia Central de Inteligencia colocó deliberadamente errores en el software que vendía una compañía canadiense, un software que se usaba para controlar el gasoducto transiberiano. . La CIA pensó que Rusia estaba comprando este sistema a través de una compañía canadiense como un medio para obtener de forma encubierta la tecnología de los EE. UU., Y que esta sería una oportunidad para alimentarlos con material defectuoso.
Dichas prácticas se mencionaron posteriormente en el desclasificado "Farewell Dossier" donde, entre otras cosas, se afirma que las turbinas defectuosas se utilizaron en un gasoducto. El ex secretario de la Fuerza Aérea, Thomas C. Reed, afirma que se introdujeron una serie de errores para que el sistema pase las pruebas pero se rompa durante el uso real. Los ajustes para bombas y válvulas se establecieron para superar las presiones que la tubería podría soportar, lo que llevó a una explosión que se dice que es la explosión no nuclear más grande jamás registrada.
Estas afirmaciones, sin embargo, han sido contradichas por el veterano de la KGB, Anatoly Medetsky, quien afirma que la explosión fue causada por una construcción por debajo del promedio en lugar de un sabotaje deliberado. Cualquiera que sea la causa, no se informaron víctimas conocidas, ya que la explosión se produjo en un área muy remota.
Stanislav Petrov era el oficial de servicio de un búnker secreto cerca de Moscú responsable de monitorear el sistema de satélite de alerta temprana soviético. Justo después de la medianoche, recibieron una alerta de que Estados Unidos había lanzado cinco misiles balísticos intercontinentales Minuteman. Como parte de la doctrina de destrucción mutuamente asegurada que entró en vigencia durante la Guerra Fría, la respuesta a un ataque de un poder sería un ataque de venganza del otro.
Esto significaba que si el ataque era genuino, tenían que responder rápidamente. Sin embargo, parecía extraño que los Estados Unidos atacaran con solo un puñado de ojivas: aunque causaran daños masivos y pérdidas de vidas, ni siquiera sería suficiente para acabar con la oposición soviética. Además, las estaciones de radar en el suelo no detectaban ningún contacto, aunque no podían detectarse más allá del horizonte debido a la curvatura de la Tierra, lo que podría haber explicado el retraso.
Otra consideración fue el sistema de alerta temprana en sí mismo, que se sabía que tenía fallas y se había puesto en servicio de inmediato. Petrov sopesó todos estos factores y decidió descartar la alerta como una falsa alarma. Aunque Petrov no tenía el dedo en el botón de detonación como tal, si hubiera transmitido una recomendación a sus superiores de que tomaran el ataque como real, podría haber llevado a una guerra nuclear total. Ya sea basada en la experiencia, la intuición o solo la suerte, la decisión de Petrov fue la correcta.
Más tarde se determinó que el software de detección temprana había recogido el reflejo del sol desde la parte superior de las nubes y lo había malinterpretado como un lanzamiento de misiles.
4Sony CD Protección contra copia maliciosa
La aparentemente interminable guerra entre los medios y los piratas va y viene cada año. Tan pronto como se encuentran nuevas formas de proteger y distribuir de manera segura los medios, se descubren nuevas formas de eludir y comprometer estas medidas.
Algunos dirían que Sony BGM fue demasiado lejos en 2005, cuando introdujeron una nueva forma de protección contra copia en algunos de sus CD de audio. Cuando se reproducen en una computadora con Windows, estos CD instalarán un software llamado 'rootkit'. Un rootkit es una forma de software que entierra profundamente en una computadora y altera ciertos procesos fundamentales. Aunque no siempre es de naturaleza maliciosa, un rootkit se usa a menudo para plantar sigilosamente software malicioso y difícil de detectar (o eliminar), como virus, troyanos, etc. En el caso de Sony BMG, el objetivo era controlar la forma en que una computadora con Windows usó los CD de Sony para evitar copiarlos o convertirlos a MP3, lo que les ayudaría a reducir la piratería de sus medios.
El rootkit logró esto, pero al tomar medidas para ocultarse del usuario, permitió que virus y otro software malicioso se ocultaran junto con él. La implementación mal pensada, y la creciente percepción de que Sony BMG no tenía nada que ver con la manipulación de las PC de los usuarios, hizo que todo el plan fuera contraproducente. Como resultado, muchas compañías de seguridad informática clasificaron el rootkit como malware, así como varias demandas legales y un retiro del producto de los CD ofensivos.
3 Patriot Missile Bug 25 de febrero de 1991Durante la Operación Desert Shield, el ejército de EE. UU. Desplegó el Sistema de Misiles Patriot como una defensa contra aeronaves y misiles, en este caso los misiles iraquíes Al Hussein (SCUD).El software de rastreo del misil Patriot usa la velocidad de su objetivo y la hora actual para predecir dónde estará el objetivo de un instante a otro. Dado que varios objetivos pueden viajar a velocidades de hasta MACH 5, estos cálculos deben ser muy precisos.
En ese momento, había un error en el software de orientación, lo que significaba que, con el tiempo, el reloj interno "se desviaría" (como cualquier reloj) más y más lejos del tiempo exacto a medida que el sistema dejaba de funcionar. El error ya se conocía y se solucionó simplemente reiniciando el sistema con regularidad y, por lo tanto, restableciendo el reloj del sistema.
Desafortunadamente, los encargados no entendieron claramente cómo "regularmente" deberían reiniciar el sistema, y se dejó en funcionamiento durante 100 horas. Cuando se lanzó un misil iraquí, apuntando a un aeródromo estadounidense en Dhahran, Arabia Saudita, fue detectado por el sistema de misiles Patriot. Sin embargo, en este punto, el reloj interno se había desviado a 0.34 de segundo, por lo que cuando intentó calcular dónde estaría el misil a continuación, estaba mirando un área del cielo a más de medio kilómetro de la ubicación real de los misiles. Supuso rápidamente que no había ningún misil enemigo después de todo y canceló la intercepción. El misil continuó su destino, donde mató a 28 soldados e hirió a otros 98.
2Error del milenio
El Millennium Bug, o Y2K, es el error más conocido en esta lista y el que muchos de nosotros recordamos haber escuchado en ese momento. Básicamente, este error fue el resultado de la falta de visión combinada de los profesionales de la informática en las décadas anteriores al año 2000. En muchos sistemas informáticos, se utilizaron dos dígitos para mostrar la fecha, p. Ej. 98 en lugar de 1998, una práctica que parecía razonable y que anticipaba las computadoras en algún momento.
Sin embargo, muchos no anticiparon que podría haber un problema cuando la fecha fuera más allá del año 2000. Al usar los sistemas actuales, el año 2000 solo podría representarse como '00', lo que podría confundir a las computadoras con la idea de que significaba el año 1900. Tal cosa rompería cualquier cálculo que involucre rangos de años que cruzaron el milenio. Por ejemplo, podría mostrar que una persona nacida en 1920 y muerta en 2001 tiene menos de 19 años.
En respuesta al problema, las compañías de software actualizaron rápidamente sus productos, que ya controlaban casi todo, desde bancos y nóminas hasta computadoras del hospital y sistemas de boletos de tren. Además, en reconocimiento a su naturaleza mundial, el Centro Internacional de Cooperación Y2K se creó en febrero de 1999 para ayudar a coordinar el trabajo requerido para prepararse para el nuevo milenio entre gobiernos y organizaciones, donde sea necesario. Al final, el Año Nuevo transcurrió sin demasiados incidentes, además de la madre de las resacas universales.
Es difícil decir cuánto de este éxito fue el resultado del trabajo realizado para aliviar el problema, o si el problema había sido exagerado en los medios de comunicación en primer lugar, probablemente una mezcla de ambos.
1 Año 2038
Aunque Y2K ha pasado, todavía no estamos fuera de peligro. No todas las computadoras manejan las fechas de la misma manera, y muchas computadoras basadas en el sistema operativo UNIX manejan las fechas contando cuántos segundos es una fecha desde el 01/01/1970. Por ejemplo, la fecha 01/01/1980 es 315,532,800 segundos después del 01/01/1970. Este número se almacena en estas computadoras como un "entero de 32 bits con signo", que tiene un límite de tamaño de 2147483647. Eso básicamente significa que solo puede manejar fechas que son hasta 2147483647 segundos después del 01/01/1970, lo que solo nos lleva Hasta el 19 de enero de 2038, después de lo cual, podemos tener problemas nuevamente.
Esto es especialmente cierto cuando consideramos que el software basado en UNIX se usa más comúnmente en "sistemas integrados" en lugar de en una PC doméstica, es decir, sistemas que tienen un propósito muy específico relacionado con su hardware, como el software para líneas de ensamblaje robóticas. , relojes digitales, enrutadores de red, sistemas de seguridad, etc.
Además, alguien tendrá que considerar lo que vamos a hacer el 1 de enero de 10000. Pero yo no.