Anexo:Errores de software

Un error de software, conocido en inglés como software bug o simplemente bug, es un fallo en el sistema software de un dispositivo electrónico que desencadena un resultado indeseado. En la mayoría de las ocasiones los bugs simplemente ocasionan molestias o inconvenientes tanto a usuarios como a programadores, aunque pueden llegar a tener consecuencias serias tanto en el ámbito de las finanzas como para el bienestar humano en general. En este artículo se presenta una lista de bugs cuyas consecuencias fueron catastróficas.

Bugs en misiones espaciales editar

  • Un cohete propulsor se desvió de su rumbo, resultando en la destrucción de la sonda de la NASA Mariner 1, cuyo objetivo era sobrevolar el planeta Venus para recavar datos. El accidente fue causado por una de las personas encargadas de transcribir el código, que no vio una barra baja presente en el código original, resultando en una codificación errónea de una de las fórmulas encargadas de regular el sistema de guiado en el lenguaje FORTRAN (22 de julio de 1962).[1]​ El informe inicial sobre las causas del accidente fue incorrecto.[2]
  • La sonda Phobos 1 del Instituto Ruso para la Investigación Espacial desactivó su sistema de control de inclinación, perdiendo la capacidad de orientar los sistemas que le permitían comunicarse con la tierra, así como los paneles solares que le proporcionaban energía. Pasado un tiempo las baterías se agotaron, dejando la sonda inactiva (10 de septiembre de 1988).[3]
  • El Vuelo Ariane 501 de la Agencia Espacial Europea quedó destruido solo 40 segundos después del despegue (4 de junio de 1996). El prototipo de cohete, con coste de 1 billón de dólares americanos, activó el protocolo de autodestrucción debido a un bug en el sistema de guiado de a bordo.[4][5]
  • En 1997, se puso en peligro la misión Mars Pathfinder a causa de un bug en una de las secciones de código concurrente incorporadas en la máquina, esto sucedió poco tiempo después de que el rover tomara tierra. Este bug fue detectado durante los test de vuelo, pero se le dio poca importancia, ya que solo ocurría en condiciones extremas.[6]​ El problema, que fue identificado y corregido desde la tierra, estuvo causado por lo que en programación se conoce como un fallo de inversión de prioridades.[7][8]
  • En el año 2000, el lanzamiento de un cohete Zenit 3SL falló debido a un bug en el sistema neumático que provocó que una de las válvulas de la segunda fase del cohete no se cerrara
  • El satélite CryoSat-1 de la Agencia Espacial Europea se perdió durante su lanzamiento en 2005. El fallo fue provocado por la falta de una orden de apagado en el sistema de control de vuelo del sistema de lanzamiento de cargas Rokot.[9]
  • La misión Mars Polar Lander de la NASA fue destruida porque su sistema de control de vuelo confundió las vibraciones producidas por turbulencias atmosféricas con la señal de que el vehículo había aterrizado, apagando los motores de aterrizaje 40 metros antes de llegar a la superficie marciana (3 de diciembre de 1999).[10]
  • Su nave hermana, la Mars Climate Orbiter también fue destruida. Se debió a que el software en tierra generaba comandos con las unidades para las medidas de fuerza especificada en libras, mientras que el orbitador las esperaba especificadas en Newtons.
  • Un comando enviado desde la Tierra por error causó que la nave de la NASA Mars Global Surveyor asumiera de forma incorrecta que uno de sus motores había fallado. Esto causó que apuntara una de sus baterías hacia el sol, resultando en el sobrecalentamiento de la misma (2 de noviembre de 2006).[11][12]
  • El rover Spirit de la NASA dejó de responder unos días después de su aterrizaje en Marte (21 de junio de 2004). Los ingenieros concluyeron que el error se debía a que se habían acumulado demasiados archivos en la memoria flash del rover. Fue recuperado tras borrar archivos innecesarios de la memoria.[13]
  • El satélite astronómico japonés Hitomi fue destruido cuando uno de los propulsores se encendió en la dirección equivocada, causando que el satélite girara más deprisa en lugar de estabilizarlo (26 de marzo de 2016).[14]

Bugs relacionados con representaciones informáticas del tiempo editar

  • El problema del año 2000 hizo temer por un colapso económico a nivel mundial y una industria de consultores que proporcionaba soluciones de última hora.[15]
  • Se espera que ocurra un problema similar en el año 2038 (el problema del año 2038). Muchos sistemas basados en Unix calculan el tiempo de forma interna como el número de segundos pasados desde el día 1 de enero de 1970, y almacenan este número como un entero con signo de 32 bits. El valor máximo que este registro puede tomar es 231 − 1 (2,147,483,647) segundos.[16]
  • Un error en el código de terminal de pago de Banco de Queensland hizo que muchos dispositivos no funcionaran durante una semana. Se determinó que el problema estaba causado por una rutina de conversión hexadecimal programada de forma incorrecta. Cuando el dispositivo tenía que marcar hasta 2010, se saltó seis años hasta 2016, lo que provocó que los terminales rechazaran las tarjetas de los clientes a medida que expiraban.[17]

Bugs en telecomunicaciones editar

  • La caída (crash) de la red de larga distancia de AT&T (15 de junio de 1990) fue provocado por un fallo en un sistema de conmutación (switching) que envió mensajes a sus sistemas homólogos cercanos, causando que estos fallaran también. Esto resultó en un fallo en cascada que rápidamente se propagó por toda la red de AT&T.
  • En junio de 2009, el motor de búsqueda de la empresa Google informaba erróneamente a sus usuarios de que todos los sitios web eran peligrosos o maliciosos, incluyéndose a sí mismo.[18]
  • En mayo de 2015, los usuarios de iPhone descubrieron un error en el que el envío de una determinada secuencia de caracteres y símbolos Unicode como texto a otro usuario de iPhone provocaba un fallo en la interfaz SpringBoard del iPhone receptor, que podía resultar en el fallo completo del dispositivo, provocar un formateo de fábrica o perturbar negativamente el sistema de conectividad en un grado significativo.[19]​ El error persistió durante semanas, adquirió una notoriedad considerable y varias personas lo utilizaron para hacer bromas a otros usuarios de iOS, antes de que Apple finalmente lo reparara el 30 de junio de 2015 con iOS 8.4.

Bugs en el ámbito militar editar

  • El bug del MIM-104 Patriot causó que el reloj de su sistema se desviara en un tercio de segundo durante un período de cien horas, lo que resultó en la imposibilidad de localizar e interceptar un misil iraquí Al Hussein entrante, que luego alcanzó el cuartel de Dhahran, Arabia Saudita (25 de febrero de 1991), matando a 28 estadounidenses.[20][21]
  • Un helicóptero Chinook de la Real Fuerza Aérea británica se estrelló contra el Mull of Kintyre (promontorio de Cantyre), matando a 29 personas. Fue inicialmente achacado a un error cometido por el piloto, pero una investigación de la revista Computer Weekly descubrió pruebas suficientes para convencer a una comisión de la Cámara de los Lores de que podría haber sido causado por un error de software en la computadora de control del motor de la aeronave.[22]
  • El buque Smart ship USS Yorktown quedó a la deriva en el agua en 1977 durante casi tres horas, debido a una excepción de división por cero.[23]
  • En abril de 1992, el primer caza F-22 Raptor se estrelló durante al aterrizaje en la Base de la Fuerza Aérea Edwards, en California. La causa del accidente fue un error en el software de control de vuelo, que falló al corregir oscilaciones inducidas por el piloto.[24]
  • Mientras intentaba su primer despliegue en ultramar en la Base Aérea de Kadena en Okinawa, Japón, el 11 de febrero de 2007, un grupo de seis cazas F-22 Raptor que volaban desde la Base de la Fuerza Aérea Hickam, Hawái, experimentaron varios errores informáticos que coincidieron con el cruce del meridiano 180 de longitud (la Línea internacional de cambio de fecha). El fallo afecto al menos a los sistemas de navegación y comunicación. Los pilotos fueron capaces de regresar a Hawái siguiendo a los aviones de reabastecimiento en vuelo, cosa que podría haber causado un desastre mayor si el tiempo hubiera empeorado. El error fue arreglado el 48 horas, lo que finalmente permitió un despliegue con retraso.[25]

Bugs en videojuegos editar

  • El lanzamiento del parche Trinity del juego EVE Online borró el archivo boot.ini de los ordenadores de varios miles de usuarios, imposibilitando que iniciaran el juego. Esto se debió al uso de un sistema heredado dentro del juego que también se llamaba boot.ini. Como tal, la eliminación se había dirigido al directorio equivocado en lugar del directorio /eve.[26]
  • El Incidente de la Sangre Corrupta fue un bug en World of Warcraft que causó una enfermedad virtual mortal que solo podía ser contraída durante una misión (raid) en particular para ser liberada en el resto del mundo del juego, llevando a numerosas y repetidas muertes de muchos avatares de jugadores. Esto hizo que los jugadores evitaran los lugares abarrotados en el juego, como sucedería con una epidemia del "mundo real", y el virus se convirtió en el centro de algunas investigaciones académicas sobre la propagación de enfermedades infecciosas.[27]
  • El 6 de junio de 2006, el juego en línea RuneScape sufrió de un error que permitió a ciertos jugadores matar y saquear a otros jugadores en el juego, que no pudieron defenderse porque el juego entendía que estaban en modo jugador contra jugador (pvp), incluso después de ser expulsados de un ring de combate de la casa de un jugador que estaba sufriendo de lag mientras celebraba un logro en el juego. Los jugadores que fueron asesinados por los personajes afectados por el bug perdieron muchos objetos, el bug era tan devastador que los jugadores que abusaban de él pronto fueron localizados, capturados y expulsados permanentemente del juego, pero no antes de que hubieran arrasado la región de Falador, bautizando así al bug como la "Masacre de Falador".[28]
  • En el nivel 256 de Pac-Man, un error da como resultado una pantalla muerta. El número máximo de fruta disponible es siete y cuando ese número se sobrepasa, hace que todo el lado derecho de la pantalla se convierta en un caos de símbolos mientras que el lado izquierdo permanece normal.[29]
  • En la versión inicial, el juego de ZX Spectrum Jet Set Willy era imposible de completar debido a un grave error que corrompió los datos del juego, causando la muerte de enemigos y del personaje del jugador en ciertas habitaciones de la gran mansión donde se desarrolla todo el juego.[30]​ El error, conocido como "The Attic Bug", se producía cuando el jugador entraba en el ático de la mansión, lo que provocaba que una flecha saliera del marco (canvas) la pantalla, saliera de la memoria del Spectrum y entrara en la memoria del juego, alterando variables y comportamientos cruciales de forma indeseable. Los desarrolladores del juego inicialmente excusaron este error alegando que las salas afectadas eran trampas mortales, pero en última instancia lo aceptaron y dieron instrucciones a los jugadores sobre cómo arreglar el juego en sí.[31]​.
  • El primer juego de la serie Civilization contenía un bug que hizo que uno de los líderes mundiales, Mahatma Gandhi, se comportara como un belicista agresivo, a pesar de ser conocido por abogar por la paz en el mundo real. El error, que se hizo famoso como "Gandhi Nuclear", estaba causado porque el valor de agresión de Gandhi, representado como un número entero sin signo de 8 bits, se estableció en el valor positivo menor que 1. Si el jugador elegía democratizar su India natal, el valor disminuiría en dos, haciendo que volviera al valor más alto, 255, convirtiéndose así en el líder más agresivo en el juego. El error se hizo tan famoso que los desarrolladores decidieron permitir que los jugadores incitaran deliberadamente a Gandhi a un conflicto agresivo en secuelas posteriores.[32]
  • Uno de los discos de demostración gratuitos emitidos para los suscriptores de PlayStation Underground en los Estados Unidos contenía un grave error, en particular en la demostración de Viewtiful Joe 2, que no solo estropearía la PlayStation 2, sino que también formatearía cualquier tarjeta de memoria que estuviera conectada a esa consola, borrando todos y cada uno de los datos guardados en ella.[33]​ El error fue tan grave que Sony tuvo que disculparse por ello y enviar copias gratuitas de otros juegos de PS2 a los jugadores afectados como compensación.[34]
  • Debido a un grave error de programación, gran parte del juego de Nintendo DS Bubble Bobble Revolution no se puede jugar porque una pelea obligatoria entre jefes no se desencadenaba automáticamente en el nivel 30.[35]
  • Una actualización para la versión Xbox 360 de Guitar Hero II, que pretendía solucionar algunos problemas con la barra de teclas en los mandos de guitarra de ese juego, vino con un error que causó que algunas consolas se congelaran, o incluso dejaran de funcionar, produciendo el infame "anillo rojo de la muerte".[36]
  • El cliente Steam de Valve para Linux podría accidentalmente borrar todos los archivos del usuario en cada directorio del ordenador. Les sucedió a los usuarios que habían movido el directorio de instalación de Steam.[37]​ El error es el resultado de una programación poco profesional de shellscript:
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"

# Scary!
rm -rf "$STEAMROOT/"*
La primera línea intenta encontrar el directorio que contiene el script. Esto podría fallar, por ejemplo, si el directorio se moviera mientras el script estaba ejecutándose, invalidando la variable "selfpath" $0. También fallaría si $0 no contenía ningún carácter slash ("/"), o contenía un enlace simbólico roto, quizás mal escrito por el usuario. La forma en que fallaría, como lo asegura el condicional &&, y al no haber establecido set -e causar terminación en caso de fallo, era producir la cadena vacía. Este modo de fallo no se comprobó, solo se comentó como "Scary!". Finalmente, en el comando de borrado, el carácter slash toma un significado muy diferente de su papel de operador de concatenación de rutas cuando la cadena que le precede está vacía, ya que entonces toma el valor del directorio raíz.
  • Minus World es fallo en el juego Super Mario Bros. de 1985, que permite accede a un nivel bugueado utilizando un bug que permitía atravesar paredes en el nivel 1-2 y alcanzar la "zona warp", que conduce a dicho nivel.[38]​ Como este nivel es interminable, la activación del error que lleva al jugador allí hará que el juego sea imposible de continuar hasta que el jugador reinicie el juego o se quede sin vidas.
  • El "MissingNo." es una especie de Pokémon con problemas presente en Pokémon Rojo y Azul, que se puede encontrar realizando una secuencia particular de acciones aparentemente no relacionadas entre sí. Capturar este Pokémon puede corromper los datos del juego, según Nintendo y algunos de los jugadores que lo han intentado con éxito[39][40][41]​. Este es uno de los errores más famosos en la historia de los videojuegos, y sigue siendo muy conocido.[42]

Bugs en sistemas de encriptación editar

  • Para arreglar una fallo advertido gracias a Valgrind, uno de los organismos encargados del soporte de Debian parcheó OpenSSL y rompió el generador de números aleatorios en el proceso. El parche fue cargado en septiembre de 2006 y llegó al lanzamiento oficial; no se informó hasta abril de 2008. Cada clave generada con la versión rota estaba comprometida (ya que los números "aleatorios" se hicieron fácilmente predecibles), al igual que todos los datos cifrados con ella, amenazando muchas aplicaciones que dependen del cifrado, como las conexiones protegidas S/MIME, Tor, SSL or TLS.[43]
  • Heartbleed, una brecha de seguridad de OpenSSL introducida en 2013 y dada a conocer en abril de 2004, comprometió la confidencialidad de los servicios afectados, causando entre otras cosas el cese del acceso público de la Agencia de Ingresos de Canadá (Canada Revenue Agency) a la parte de presentación de solicitudes en línea de su sitio web tras el robo de números de seguro social.[44]
  • El fallo "goto fail" de Apple era una línea de código duplicada que hacía que la comprobación de un certificado de clave pública pasara una prueba de verificación incorrectamente.

Bugs en otros ámbitos: medicina, transmisión eléctrica, administración, medios, sistemas de transporte y más. editar

  • Un bug en el código controlador del aparato de radioterapia Therac-25 fue directamente responsable de la muerte de al menos 5 pacientes en la década de 1980, habiéndoles administrado dosis excesivas de radiación beta.[45][46][47]
  • Un dispositivo de la empresa productora de dispositivos médicos Medtronic resultó ser vulnerable a ataques remotos en marzo de 2008.[48]
  • El apagón del noreste de 2003 fue provocado por un apagón local que no fue detectado debido a una condición de carrera en el software de monitorización XA/21 de General Electric Energy.[49]
  • El software del sistema A2LL para la gestión del desempleo y los servicios sociales en Alemania presentaba varios errores con consecuencias a gran escala, como el envío de los pagos a números de cuenta no válidos en 2004.
  • En el escándalo de los rootkits de protección anticopia de Sony BMG (octubre de 2005), Sony BMG produjo un CD de música Van Zant que empleaba un esquema de protección anticopia que instalaba encubiertamente un rootkit en cualquier PC con Windows que se utilizaba para reproducirlo. Su intención era ocultar el mecanismo de protección anticopia para que fuera más difícil de eludir. Desafortunadamente, el rootkit abrió inadvertidamente un agujero de seguridad que resultó en una ola de ataques exitosos de virus troyanos contra las computadoras de aquellos que habían reproducido inocentemente el CD.[50]​ Los esfuerzos posteriores de Sony para proporcionar una utilidad que solucionara el problema lo exacerbaron.
  • El sistema de control electrónico del acelerador (ETCS) de Toyota tenía errores que podían causar una aceleración imprevista repentina.[51]​ Como resultado, al menos 89 personas murieron.[52]
  • El Boeing 787 Dreamliner experimentó un error de desbordamiento de un entero que podría apagar todos los generadores eléctricos si la aeronave permanecía encendida durante más de 248 días.[53]
  • El índice de la Bolsa de Valores de Vancouver presentaba grandes errores debido a los repetidos redondeos. En enero de 1982, el índice se inicializó en 1000 y posteriormente se actualizó y truncó con tres decimales en cada operación. Esto se hacía unas 3000 veces al día. Los truncamientos acumulados provocaron una pérdida errónea de unos 25 puntos al mes. Durante el fin de semana del 25 al 28 de noviembre de 1983 se corrigió el error, elevando el valor del índice desde su cifra de cierre del viernes de 524.811 a 1098.892.[54][55]
  • Knight Capital Group perdió 440 millones de dólares en 45 minutos debido a la implantación inadecuada de software en los servidores y la reutilización de un indicador de software crítico que causó que se ejecutara el código de software antiguo no utilizado durante las operaciones.[56]

Referencias editar

  1. «Space FAQ 08/13 – Planetary Probe History». Consultado el 7 de enero de 2008. 
  2. Hoare, C. A. R. Hints on Programming Language Design.  in Sigact/Sigplan Symposium on Principles of Programming Languages. October 1973. , reprinted in Horowitz. Programming Languages, A Grand Tour, 3rd ed. . See Risks Digest: Mariner 1, Vol. 9: Iss. 54, 12 Dec 89 (and «Mariner I -- no holds BARred». Consultado el 7 de enero de 2008. 
  3. R. Z. Sagdeev & A. V. Zakharov (1989). «Brief history of the Phobos mission». Nature 341 (6243): 581-585. Bibcode:1989Natur.341..581S. doi:10.1038/341581a0. 
  4. Dowson, M. (March 1997). «The Ariane 5 Software Failure». Software Engineering Notes 22 (2): 84. doi:10.1145/251880.251992. 
  5. «Design by Contract: The Lessons of Ariane». IEEE Computer 30 (1): 129-130. January 1997. 
  6. Parallel sparking: Many chips make light work, Douglas Heaven, New Scientist magazine, issue 2930, 19 August 2013, p44. Online (by subscription)
  7. What Really Happened on Mars by Glenn Reeves of the JPL Pathfinder team
  8. «What really happened on Mars?». 
  9. «CryoSat Mission lost due to launch failure». European Space Agency. 8 de octubre de 2005. Consultado el 19 de julio de 2010. 
  10. «Mars Polar Lander». Archivado desde el original el 29 de octubre de 2012. Consultado el 7 de enero de 2008. 
  11. «Report Reveals Likely Causes of Mars Spacecraft Loss». Consultado el 7 de enero de 2008. 
  12. «Faulty Software May Have Doomed Mars Orbiter». Space.com. Archivado desde el original el 24 de julio de 2008. Consultado el 11 de enero de 2007. 
  13. «Out of memory problem caused Mars rover's glitch». computerworld.com. 3 de febrero de 2004. 
  14. «Software error doomed Japanese Hitomi spacecraft». Consultado el 6 de mayo de 2016. 
  15. «Looking at the Y2K bug, portal on CNN.com». Archivado desde el original el 27 de diciembre de 2007. Consultado el 7 de enero de 2008. 
  16. «The year 2038 bug». Consultado el 12 de enero de 2008. 
  17. Stafford, Patrick. «Businesses hit by Bank of Queensland EFTPOS bug». Archivado desde el original el 7 de abril de 2014. Consultado el 1 de abril de 2014. 
  18. Cade Metz (31 de enero de 2009). «Google mistakes entire web for malware». The Register. Consultado el 20 de diciembre de 2010. 
  19. Clover, Juli (26 de mayo de 2015). «New iOS Bug Crashing iPhones Simply by Receiving a Text Message». MacRumors. Consultado el 29 de mayo de 2015. 
  20. «Patriot missile defense, Software problem led to system failure at Dharhan, Saudi Arabia; GAO report IMTEC 92-26». US Government Accounting Office. 
  21. Robert Skeel. «Roundoff Error and the Patriot Missile». SIAM News, volume 25, nr 4. Archivado desde el original el 1 de agosto de 2008. Consultado el 30 de septiembre de 2008. 
  22. «The Chinook Helicopter Disaster». Archivado desde el original el 17 de julio de 2012. Consultado el 7 de enero de 2008. 
  23. «Software glitches leave Navy Smart Ship dead in the water». Archivado desde el original el 8 de febrero de 2006. Consultado el 7 de enero de 2008. 
  24. "F-22 Timeline." Archivado el 25 de agosto de 2009 en Wayback Machine. f-22raptor.com. Retrieved: 23 July 2009.
  25. "Lockheed's F-22 Raptor Gets Zapped by International Date Line: Raptors arrive at Kadena." Air Force, 26 February 2007.
  26. «About the boot.ini issue (Dev Blog)». Consultado el 30 de septiembre de 2014. 
  27. Balicer, Ran (5 de octubre de 2005). «Modeling Infectious Diseases Dissemination Through Online Role-Playing Games». Epidemiology 18 (2): 260-261. PMID 17301707. doi:10.1097/01.ede.0000254692.80550.60. 
  28. Bishop, Sam (8 de junio de 2016). «Runescape marks the anniversary of the Falador Massacre». GameFactor. Consultado el 9 de agosto de 2018. 
  29. «Pac Man'S Split Screen Level Analyzed And Fixed». Donhodges.Com. Consultado el 19 de septiembre de 2012. 
  30. Langshaw, Mark. «Retro Corner: 'Jet Set Willy' (Spectrum)». DigitalSpy. Consultado el 30 de mayo de 2018. 
  31. «Jet Set Willy Solved!». Personal Computer Games (8): 21. July 1984. Consultado el 19 de abril de 2014. 
  32. «What caused Gandhi's insatiable bloodlust in Civilization - Geek.com». 3 de noviembre de 2014. Consultado el 30 de abril de 2018. 
  33. Krotoski, Aleks (30 de noviembre de 2004). «Viewtiful Joe 2 demo deletes memory cards». The Guardian. Consultado el 10 de noviembre de 2009. 
  34. Bramwell, Tom (7 de diciembre de 2004). «Sony to replace defective demo discs with games». Eurogamer. Consultado el 10 de noviembre de 2009. 
  35. «Bubble Bobble Revolution DS production issues confirmed *UPDATE*». Consultado el 30 de abril de 2018. 
  36. Bramwell, Tom (16 de abril de 2007). «RedOctane admits to Guitar Hero II patch problem». Eurogamer. Consultado el 2 de diciembre de 2016. 
  37. «Scary Steam for Linux bug erases all the personal files on your PC». PCWorld (en inglés). 17 de enero de 2015. Consultado el 26 de mayo de 2019. 
  38. Gach, Ethan. «The NES Classic Carries Over Classic Glitches». Kotaku Australia. Consultado el 8 de marzo de 2017. 
  39. Nintendo. «Customer Service — Specific GamePak Troubleshooting». Archivado desde el original el 27 de enero de 2008. Consultado el 7 de junio de 2009. 
  40. Staff (May 1999). «Pokechat». Nintendo Power 120: 101. 
  41. Loe, Casey (1999). Pokémon Perfect Guide Includes Red-Yellow-Blue. Versus Books. p. 125. ISBN 1-930206-15-1. 
  42. Staff (9 de abril de 2009). «Gaming's Top 10 Easter Eggs». IGN. IGN Entertainment. p. 2. Archivado desde el original el 6 de febrero de 2010. Consultado el 7 de junio de 2009. 
  43. «DSA-1571-1 openssl -- predictable random number generator». Consultado el 16 de abril de 2008. 
  44. «Heartbleed bug: 900 SINs stolen from Revenue Canada - Business - CBC News». CBC News. Consultado el 14 de abril de 2014. 
  45. «The Therac-25 Accidents (PDF), by Nancy Leveson» (PDF). Consultado el 7 de enero de 2008. 
  46. «An Investigation of the Therac-25 Accidents (IEEE Computer)». Consultado el 7 de enero de 2008. 
  47. «Computerized Radiation Therapy (PDF) reported by TROY GALLAGHER». Consultado el 12 de diciembre de 2011. 
  48. Feder, Barnaby J. (12 de marzo de 2008). «A Heart Device Is Found Vulnerable to Hacker Attacks». The New York Times. Consultado el 28 de septiembre de 2008. 
  49. «Software Bug Contributed to Blackout». Consultado el 7 de enero de 2008. 
  50. «Sony's 'rootkit' CDs». Consultado el 15 de mayo de 2008. 
  51. «Toyota's killer firmware: Bad design and its consequences». 
  52. «Toyota "Unintended Acceleration" Has Killed 89». cbsnews. Consultado el 20 de marzo de 2014. 
  53. «To keep a Boeing Dreamliner flying, reboot once every 248 days». 
  54. The Wall Street Journal November 8, 1983, p.37
  55. The Toronto Star, November 29, 1983
  56. Popper, Nathaniel. «Knight Capital Says Trading Glitch Cost It $440 Million».