El Software Que (A Veces) Te Mataba Con Radiación

El Software Que (A Veces) Te Mataba Con Radiación

Errores Fatales en el Software: El Caso Therak 25

Introducción al Caso Therak 25

  • Pocos errores de software causan tanto impacto que se vuelven parte de la historia. Se discutirá el caso de Therak 25, una máquina de radiación utilizada para tratar cáncer, que debido a errores en su programación y malas prácticas, resultó en la muerte de tres personas y problemas permanentes para otras.

Primer Incidente

  • El 3 de junio de 1985, una mujer de 61 años se prepara para su duodécima sesión de radioterapia con la máquina Therak 25. Esta máquina había tratado a miles sin problemas previos.
  • Un error en la programación permitió que la máquina administrara una sobredosis. La paciente sintió quemaduras durante el tratamiento y fue ignorada por el operador.
  • Dos semanas después, la paciente presentó quemaduras visibles y perdió movilidad en un brazo; recibió entre 15,000 y 20,000 rads (unidad de dosis absorbidas).

Repetición del Problema

  • En otro hospital ocurrió un segundo incidente donde los operadores ignoraron mensajes constantes de error en la computadora del acelerador.
  • Un operador presionó repetidamente un botón pensando que no se había administrado tratamiento, lo que llevó a otra sobredosis fatal.

Investigación y Fallas del Sistema

  • ASL notificó sobre las sobredosis pero no pudo replicar el error. Esto resaltó la importancia de entender completamente los errores antes de intentar corregirlos.
  • Se identificó una deficiencia en un micro switch como posible causa; sin embargo, esta solución no abordó los problemas subyacentes.

Conclusiones Erróneas

  • A pesar del anuncio sobre mejoras significativas en seguridad (100,000 veces más seguro), las fallas persistieron y causaron más incidentes.
  • La falta de comprensión sobre las causas reales impidió soluciones efectivas; esto es crucial tanto en software como en otros aspectos.

Consecuencias Finales

  • A pesar del conocimiento limitado sobre software entonces, Therak 25 continuó operando tras múltiples incidentes fatales.
  • La percepción errónea era que el software siempre funcionaba correctamente una vez programado; hoy sabemos que esto no es cierto.

Desenlace Trágico

Problemas en el Tratamiento de Radiación

Introducción a la Radiación y su Uso en Tratamientos

  • Un físico médico, considerado un héroe, logró replicar y corregir problemas en el acelerador lineal Track 25, que utilizaba dos tipos de radiación: electrones para tumores superficiales y fotones de rayos X para tumores profundos.
  • La radiación ionizante tiene suficiente energía para separar electrones de los átomos, destruir ADN y matar células. Este tipo de radiación es más efectiva contra células cancerosas debido a su rápida división durante la fase M.

Funcionamiento del Acelerador Lineal Track 25

  • El tratamiento se dirige específicamente al tumor, afectando más a las células cancerosas que a las sanas. Se realizan varias sesiones para maximizar la destrucción celular mientras se permite la recuperación de las células sanas.
  • Track 25 contaba con una placa giratoria con tres posiciones: electrones acelerados, rayos X y luz regular para posicionar al paciente correctamente. Esta característica es clave para entender los accidentes ocurridos.

Comparativa entre Therak 20 y Track 25

  • Therak 20 también permitía ambos modos de radiación pero tenía controles físicos que evitaban sobredosis. Si había un problema, se quemaba un fusible como medida de seguridad.
  • Track 25 fue desarrollado utilizando el código fuente de Therak 20 pero eliminó los candados físicos por considerarlos redundantes, lo cual resultó ser una mala decisión.

Errores en la Programación del Software

  • La programación del software fue realizada por una sola persona sin revisión interna o externa adecuada. Esto es crítico ya que un software tan importante no debería depender del trabajo individual sin supervisión.
  • Durante el cuarto incidente, la operadora cometió un error al ingresar "X" en lugar de "E", lo que llevó a un mensaje de error desconocido (error 54), indicando una dosis incorrecta administrada al paciente.

Consecuencias Trágicas y Repetición del Error

  • El intercomunicador estaba descompuesto; el paciente recibió una sobredosis sin saberlo. Aunque inicialmente no se encontraron problemas con la máquina tras investigar el incidente, esto generó preocupación sobre su uso continuo.
  • Tres semanas después ocurrió otro incidente similar con la misma operadora ingresando erróneamente "X". Esta vez pudo verificar que efectivamente hubo otra sobredosis; el paciente falleció poco después.

Investigación Posterior y Revelaciones Clave

Problemas de Software en Dispositivos Médicos

Incidente Inicial y Velocidad de la Operadora

  • La operadora era muy hábil con la computadora, lo que llevó a un problema al cambiar configuraciones rápidamente en menos de 8 segundos.
  • Se identificó el error 54, donde el software Track 25 causaba una sobredosis de 25.000 rads debido a procesos paralelos mal gestionados.

Condiciones de Carrera y Errores en el Proceso

  • El software tenía múltiples procesos que podían generar condiciones de carrera, donde los procesos se ejecutan en un orden incorrecto.
  • Al ingresar datos erróneamente, la máquina se preparó para rayos X mientras la energía seguía configurada para electrones.

Falta de Validación y Consecuencias

  • La falta de validación en el software permitió inconsistencias críticas entre las configuraciones del equipo.
  • Se envió una carta a los clientes pidiendo no usar la tecla "arriba" sin explicar las razones detrás del aviso.

Reunión Anual y Nuevos Incidentes

  • Durante una conferencia anual, se discutieron incidentes previos desconocidos por muchos hospitales, incluyendo medidas como candados de hardware.
  • En enero de 1987, otro hospital experimentó una sobredosis de 10.000 rads debido a errores similares en el uso del software.

Desbordamiento Aritmético y Fallas Críticas

  • Un contador que revisaba la posición correcta del equipo podía desbordarse aritméticamente, reiniciándose inesperadamente.
  • Este desbordamiento ocurrió justo cuando se iniciaba un tratamiento, resultando en una aplicación peligrosa de energía máxima al paciente.

Repercusiones Legales y Cambios Regulatorios

  • Tras los incidentes, surgieron demandas y exigencias para cambios significativos en el software por parte de hospitales y autoridades regulatorias.
  • Aunque algunos hospitales continuaron usando Track 25 tras correcciones, otros lo descontinuaron completamente debido a preocupaciones sobre su seguridad.

Evolución Normativa Post-Incidentes

  • Más de 30 años después, se establecieron regulaciones internacionales para software médico; casos como estos son utilizados como ejemplos educativos sobre mejores prácticas.

Análisis de Errores en Programación y Seguridad

Importancia de la Seriedad en el Desarrollo de Software

  • La programación presenta errores comunes que deben ser tratados con seriedad desde el inicio del proyecto. Culpar a los errores es fácil, pero no es lo más adecuado.
  • Nancy Levesson, especialista en seguridad, destaca que se debe evitar confiar ciegamente en el software; las auditorías se centraron demasiado en el hardware y descuidaron el software.

Confiabilidad vs. Seguridad

  • Track 25 tuvo muchos tratamientos exitosos antes del primer incidente, lo que llevó a asumir su seguridad. Los operadores eran instruidos para ignorar mensajes de error debido a múltiples medidas de seguridad.
  • Se identificó una falta de diseño defensivo en el software, ya que carecía de revisiones y candados necesarios para prever fallos.

Manejo Inadecuado de Incidentes

  • Hubo un retraso significativo en la notificación a hospitales y médicos tras los incidentes iniciales. Las prácticas inadecuadas incluyeron mala documentación y mensajes de error poco informativos.
  • El software y hardware no fueron probados juntos hasta su ensamblaje final, lo cual representa un riesgo crítico.

Reutilización del Código y sus Consecuencias

  • Se reutilizó código del Track 20 sin considerar sus defectos inherentes. Aunque Track 20 funcionaba bien, también presentaba problemas similares que no fueron detectados inicialmente.

Reflexión sobre la Tecnología

Channel: Ringa Tech
Video description

En este video analizamos cómo Therac-25, una máquina de radiación para tratar cáncer, causó que 6 personas recibieran sobredosis exageradas de radiación, causando la muerte directa de 3 y dejando a los otros con problemas de por vida. Ya tengo cursos! Aprende a programar desde cero con Python: https://www.domestika.org/es/courses/5228-introduccion-a-la-programacion-con-python/ringatech Aprende IA desde cero con Python: https://www.domestika.org/es/courses/5239-introduccion-a-la-ia-con-python/ringatech Si quieres apoyarme para seguir creando contenido, puedes hacerlo en Patreon o aquí en Youtube! - Patreon: http://bit.ly/patreon-ringatech - Youtube: https://www.youtube.com/channel/UCm9QZ70KuIVShztZ7HmE4NQ/join - Si el video te gustó, da clic en me gusta y déjame un comentario! = = = CONTENIDO 0:00 El primer incidente 1:58 Errores desconocidos 2:58 Manejo de errores 4:21 Sigue en operación 6:05 Cómo destruir cáncer 7:25 Cómo fue codificado 8:38 Armando el rompecabezas 11:13 El error se reproduce 12:32 El código y el problema 14:22 Otro error fatal 16:44 Todo se viene abajo 17:25 Lecciones aprendidas = = = Descripción larga para el algoritmo: Therac 25, una máquina de radiación utilizada para tratar cáncer, causó 6 incidentes de sobredosis de radiación entre 1985 y 1987. AECL, la empresa encargada, desgraciadamente no dió un buen seguimiento a los incidentes, por lo que siguieron ocurriendo. Los problemas fueron causados por errores en el código, el software contaba con muchas responsabilidades que en ciertas situaciones fallaban y permitían configuraciones inconsistentes en la máquina, dando niveles de radiación incorrecta. Sin embargo durante el video vemos cómo no es adecuado adjudicar los errores solamente a los errores de código, ya que es común que el software tenga defectos. Los problemas principales fueron la falta de revisiones internas y externas, la creencia que el software funcional no fallaría, y el no concentrar suficiente esfuerzo en detectar la causa raíz de los problemas. Esto, sumado al mal seguimiento de incidentes. = = = = Imágenes Sphere, Cell, Skull icons by Freepik - Flaticon Circle icons by Designspace Team - Flaticon Science icons by iconixar - Flaticon Arrow icons by Andrean Prabowo - Flaticon Code, Script icons by Smashicons - Flaticon Automation icons by Becris - Flaticon Close, Tick icons by Alfredo Hernandez - Flaticon = = = = #software #error