Oddity Journal
← Archivio

Tecnologia · sicurezza · Tecnologia

Therac-25: quando il software diventò l’unica barriera

Tra il 1985 e il 1987 sei incidenti legati a un acceleratore per radioterapia mostrarono come un errore software possa diventare catastrofico quando mancano protezioni indipendenti, le procedure normalizzano il rischio e i messaggi non rendono leggibile il pericolo.

I fatti: la pausa che sembrava normale

Il 21 marzo 1986, all’East Texas Cancer Center di Tyler, un paziente è alla nona seduta di radioterapia. L’operatrice imposta per errore la modalità a raggi X invece di elettroni, corregge rapidamente la voce e avvia il trattamento. Sul terminale appare “Malfunction 54”. Il sistema entra in pausa. In quel centro la pausa non è eccezionale: di solito significa che va riprovato. L’operatrice preme P.

Il display indica 6 monitor units invece delle 202 attese. Il paziente, nella stanza schermata, sente subito un dolore violento e descrive una sensazione assimilata a una scossa. I monitor audio e video della stanza erano guasti o scollegati, perciò all’operatrice manca una via diretta per vedere subito che cosa stia accadendo. La macchina viene fermata, ma l’esposizione è già avvenuta.

Leveson e Turner, nel loro resoconto storico, descrivono una sovraesposizione concentrata e ricostruiscono una stima molto alta della dose; le cifre esatte dipendono dalle simulazioni e non sono una misura diretta. Il paziente morì cinque mesi dopo per complicazioni dell’overdose. Il punto del caso non è trasformare il suo dolore in una scena spettacolare: è capire perché un avviso ambiguo, una procedura abituale e una barriera assente abbiano potuto occupare lo stesso minuto.

Il Therac-25 era un acceleratore lineare che poteva trattare con elettroni o raggi X. Rispetto ai modelli precedenti, affidava al software molte funzioni di sicurezza che erano state protette anche da interblocchi hardware indipendenti. Questa scelta non rende automaticamente colpevole una riga di codice; rende però decisiva la domanda su che cosa succeda quando il programma sbaglia.

Da dove viene questa parte

La sequenza Tyler è ricostruita da un rapporto storico basato su atti FDA e canadesi, deposizioni e documenti tecnici; le dosi dei singoli incidenti sono stime.

L’indagine: sei incidenti, non un racconto semplice

Tra giugno 1985 e gennaio 1987 il dossier registra sei incidenti noti con lesioni gravi o morti. Il primo avviene a Kennestone, in Georgia: una donna di 61 anni riceve una grave lesione durante un trattamento elettronico. Subisce interventi importanti, perde l’uso di spalla e braccio e vive con dolore continuo. Il collegamento con la macchina non viene indagato in tempo; quando un fisico chiede al produttore AECL se il Therac possa erogare elettroni senza la scansione prevista, riceve risposta negativa.

A Hamilton, in Ontario, una donna trattata per carcinoma della cervice subisce una sovraesposizione stimata fra 13.000 e 17.000 rad. Il display aveva mostrato H-tilt e “no dose”; l’operatore aveva ripetuto P dopo cinque pause. L’autopsia attribuì la sua morte, il 3 novembre 1985, a un cancro estremamente virulento. Il danno radiologico era reale e gravissimo, ma non va trasformato in una causa di morte diversa da quella riportata dall’autopsia. AECL sospettò microswitch intermittenti della tavola senza riuscire a riprodurre il guasto in modo conclusivo.

A Yakima, nello Stato di Washington, una paziente sviluppa un eritema a strisce, poi necrosi e ulcera. Il personale considera ed esclude chemioterapia e coperta elettrica; i vassoi di blocco restano una pista plausibile ma sono già stati scartati, quindi non più ricostruibili. La paziente viene operata e sottoposta a innesti; il rapporto la descrive viva, con disabilità e cicatrici minori. Anche qui la causa tecnica precisa non viene stabilita.

Dopo il primo Tyler c’è un secondo caso, l’11 aprile 1986: una sequenza simile di modifica rapida precede un’altra overdose; il paziente muore il 1° maggio e l’autopsia documenta una lesione acuta da radiazione ad alta dose. Il sesto episodio, a Yakima nel gennaio 1987, coinvolge un paziente con cancro terminale preesistente. Muore in aprile per complicazioni legate all’overdose. Dire soltanto “sei morti per un bug” cancellerebbe sia le persone sopravvissute sia i limiti clinici e tecnici del fascicolo.

Da dove viene questa parte

Le fonti non riportano nomi dei pazienti. L’articolo usa solo età, luoghi ed esiti necessari per descrivere gli incidenti con cautela.

Le teorie: il bug che si poteva riprodurre

Nei due casi di Tyler la spiegazione è molto più solida. Modificando molto rapidamente X in E con il cursore, l’operatrice poteva innescare una condizione di gara: due routine concorrenti lavoravano su dati condivisi e potevano lasciare la macchina in una configurazione incompatibile con il trattamento indicato. Fritz Hager e AECL riuscirono a riprodurre la sequenza. Questo non significa che l’operatrice avesse “causato” il disastro digitando troppo in fretta: un sistema sicuro deve gestire un input normale senza trasformarlo in esposizione pericolosa.

Il confronto con il Therac-20 chiarisce il ruolo delle barriere. Frank Borger, dell’Università di Chicago, collegò sequenze creative di editing allo stesso errore software su quel modello. Lì circuiti hardware indipendenti impedivano l’accensione del fascio; anche fusibili e interruttori potevano far arrestare la macchina. La somiglianza dimostra la presenza del difetto, non che qualcuno conoscesse in anticipo l’intera catena di rischio sul Therac-25. Un bug può esistere senza causare un incidente finché un secondo sistema lo intercetta.

Il secondo Yakima richiede un’altra spiegazione. La variabile software Class3 era memorizzata in un byte e tornava a zero dopo 256 passaggi; in una specifica sequenza poteva saltare il controllo del collimatore. Il paziente doveva ricevere 86 rad in totale, ma le ricostruzioni indicano due esposizioni per un ordine di grandezza di 8.000–10.000 rad. È un difetto distinto dalla condizione di gara di Tyler.

Kennestone, Hamilton e il primo Yakima resistono a una soluzione retroattiva. La somiglianza tra Hamilton e Yakima 2 porta Leveson e Turner a considerare possibile un’origine software, ma non la certifica. Questo è il limite che rende il caso più difficile della sua versione da manuale: c’è un bug riprodotto, ma non “il bug” capace di spiegare ogni incidente.

Da dove viene questa parte

Leveson e Turner distinguono i meccanismi riprodotti dalle cause soltanto ipotizzate. L’esattezza di dose e configurazione varia fra gli incidenti.

Conclusione: l’indagine sale di livello

All’inizio le spiegazioni sono locali: microswitch, messa a terra, vassoi, una macchina calibrata male. Dopo il primo Tyler un’azienda indipendente verifica la pista della scossa elettrica e non trova una compatibilità con la macchina; la calibrazione è nei limiti e il centro rimette il Therac in servizio il 7 aprile. Quattro giorni dopo arriva il secondo Tyler. Quel passaggio cambia la domanda: non basta più riparare il dettaglio che sembra plausibile, bisogna chiedersi quali altre vie possano portare allo stesso risultato.

La FDA dichiara il Therac-25 difettoso nel febbraio 1987 e raccomanda di sospenderne l’uso di routine fino alle modifiche permanenti. Nella riunione utenti del marzo partecipano AECL, cliniche, FDA e autorità canadesi; vengono richiesti audit trail cartaceo e valutazione indipendente. Il rapporto ricorda che AECL dichiarò test non documentati e non avrebbe fornito il codice. Questi fatti documentano comunicazioni e controlli insufficienti; non sono, da soli, prova di un occultamento intenzionale.

La correzione finale non consiste in una patch isolata. Introduce sospensione obbligatoria per problemi di dosimetria, spegnimenti hardware e software a impulso singolo, controllo indipendente della tavola, messaggi più comprensibili e limitazioni operative. Nel maggio 1987 il richiamo collegato al Corrective Action Plan viene classificato Class I dalla FDA. È una classificazione regolatoria della gravità del richiamo, non una sentenza penale contro una persona.

La lezione formulata da Leveson e Turner è sistemica: fiducia eccessiva nel software, rimozione degli interblocchi, pratiche di sviluppo insufficienti, gestione debole delle segnalazioni e valutazioni del rischio poco credibili si sommarono. Il software non fu l’unica barriera che fallì; diventò la barriera da cui dipendevano le altre.

Da dove viene questa parte

Il rapporto MIT è un’analisi storica e tecnica autorevole, ma dichiara che alcune fonti originali non erano pubblicamente disponibili.

PISTE

Le spiegazioni messe alla prova

Le piste qui sotto sono ipotesi o valutazioni investigative. Nessuna è presentata come soluzione del caso.

Un solo bug spiega tutto

La condizione di gara di Tyler fu riprodotta, ma Yakima 2 dipendeva da un difetto diverso e gli altri tre casi non hanno una causa conclusiva. La formula è troppo semplice.

Ipotesi / valutazione

La causa di Hamilton era meccanica

Microswitch e tavola offrivano un percorso plausibile e furono modificati. Il malfunzionamento non fu riprodotto in modo conclusivo.

Ipotesi / valutazione

Fu una scossa elettrica

Era una spiegazione iniziale coerente con il racconto del paziente Tyler. La verifica indipendente non trovò il problema di messa a terra necessario a sostenerla.

Ipotesi / valutazione

Ci fu occultamento intenzionale

Il dossier documenta ritardi, risposte errate e informazioni incomplete tra centri. Non contiene una prova sufficiente di intenzionalità o di una regia deliberata.

Ipotesi / valutazione

Che cosa resta

Therac-25 è rimasto un caso fondamentale perché non offre una causa unica. Un errore di programma esisteva, ma diventò letale insieme a messaggi oscuri, procedure normalizzate, canali di segnalazione deboli e protezioni indipendenti che non c’erano più.

La storia chiede una domanda che vale oltre la radioterapia: quando una macchina decide che può riprovare, chi o che cosa è ancora in grado di dirle di fermarsi?

FONTI

Verifica e limiti

Le fonti, con ciò che sostengono e ciò che non permettono di concludere, sono elencate nella pagina dedicata.

Consulta le fonti selezionate →

Metodo e segnalazioni documentate →