Zabijał, a miał leczyć. Śmierć pacjentów przez błąd oprogramowania

Zabijał, a miał leczyć. Śmierć pacjentów przez błąd oprogramowania27.11.2022 11:28
Historia zabójczej maszyny do radioterapii Therac-25.
Źródło zdjęć: © Unsplash, YouTube

W latach 80. XX wieku jeden z najstraszliwszych błędów oprogramowania w historii doprowadził do śmierci pięciu osób. Ofiary, pacjenci korzystający z przełomowego urządzenia do radioterapii Therac-25, otrzymywały dużo wyższe dawki promieniowania, niż powinny. Kulisy sprawy pokazują, że przynajmniej części wypadków można było uniknąć.

Maszynę Therac-25 zaprojektowała kanadyjska korporacja federalna Atomic Energy of Canada Limited (AECL) przy współpracy z francuską firmą Compagnie Générale de Radiologie (CGR). Było to trzecie urządzenie Therac, którego prototyp zaprezentowano w 1976 r., a do sprzedaży trafiło w 1982 r.

Therac-25 w przeciwieństwie do poprzedników był sterowany wyłącznie programowo i pominięto w nim wiele dotychczasowych mechanicznych zabezpieczeń. Ułatwiało to obsługę, ponieważ wcześniej operator musiał ręcznie ustawiać dawkę promieniowania, a w przypadku Therac-25 wystarczyło kilka kliknięć na komputerze. Pozbycie się dodatkowych mechanicznych części spowodowało też, że maszyna była bardziej kompaktowa i tańsza w produkcji.

Co więcej, było to podwójne urządzenie mogące działać zarówno w trybie promieniowania rentgenowskiego (mocna wiązka przepuszczana przez odpowiednie filtry), jak i wiązki elektronowej o mocy od 5 do 25 MeV, co bardzo odpowiadało szpitalom. Wkrótce w Kanadzie znalazło się sześć takich maszyn, a w USA pięć.

Dalsza część artykułu pod materiałem wideo

Czy warto kupić dysk SSD SanDisk Extreme Portable?

Tajemnicza śmierć pacjentów i niekompetencja twórcy Therac-25

Wszystko działało, jak należy aż do 3 czerwca 1985 r., kiedy to 61-letnia pacjentka amerykańskiego szpitala w stanie Georgia otrzymała dawkę promieniowania szacowaną na 20 tys. radów zamiast planowanych 200 radów. To więcej niż dawki przyjęte przez amerykańskich naukowców igrających z "diabelskim rdzeniem" opisanym przez Łukasza Michalika. Pacjentka skarżyła się, że podczas zabiegu poczuła jakby porażenie prądem. Później o tym uczuciu wspominali także inni pacjenci, którzy dostali zbyt wysokie dawki promieniowania.

Fizyk szpitalny poinformował o wypadku AECL, które powiedziało wprost, że taki przypadek jest niemożliwy. Ponadto firma skrytykowała fizyka za to, że o sytuacji poinformował także amerykańską rządową Agencję Żywności i Leków (FDA). Pacjentka przeżyła, ale straciła w wyniku wypadku pierś i doznała paraliżu ręki (zmarła pięć lat później).

[1/8] Interfejs Therac-25., Źródło zdjęć: © Wikimedia Commons
[2/8] Therac-25. Jeśli w ciągu ośmiu sekund operator zamieni wiązkę X na E to pojawi się błąd 54., Źródło zdjęć: © Wikimedia Commons
[3/8] Przepełnienie bufora w Therac-25., Źródło zdjęć: © Wikimedia Commons
[4/8] Interfejs Therac-25., Źródło zdjęć: © Wikimedia Commons
[5/8] Błąd 54 w Therac-25., Źródło zdjęć: © Wikimedia Commons
[6/8] Schemat Therac-25 po finalnych poprawkach., Źródło zdjęć: © Licencjodawca
[7/8] Therac-25 w gabinecie zabiegowym., Źródło zdjęć: © Licencjodawca
[8/8] Wizualizacja błędu 54 w Therac-25., Źródło zdjęć: © YouTube

Drugi incydent miał miejsce 26 lipca 1985 r. w Kanadzie, kiedy pacjentka pojawiła się na planowanym zabiegu naświetlania i przypadkowo otrzymała dawkę aż 17 tys. radów. Zmarła kilka miesięcy później. Opracowanie wypadków spowodowanych przez Therac-25 sporządzone przez ekspertkę w dziedzinie oprogramowania Nancy Leveson wskazuje, że do AECL trafiły sugestie poprawek od Kanadyjskiego Biura Ochrony przed Promieniowaniem (CRPB). Te proponujące dodanie do Therac-25 poprawek sprzętowych zostały zignorowane.

Technicy AECL po sprawdzeniu urządzenia stwierdzili tylko uszkodzone mikroprzełączniki, które zostały wymienione, a do oprogramowania dodano funkcję sprawdzania ich stanu. Firma po dokonaniu poprawek w dokumentach marketingowych (fragment na 27 stronie) chwaliła się zwiększeniem bezpieczeństwa systemu o około 10 mln proc.

AECL dalej ignoruje ostrzeżenia, a pacjenci umierają dalej

Kolejny wypadek miał miejsce w Waszyngtonie w USA w grudniu 1985 r. Pacjentka przeżyła, niezbędne były jednak przeszczepy skóry. Szpital poinformował o sprawie AECL, które po raz kolejny zaprzeczyło, aby podobny incydent miał miejsce. Niedługo później, 21 marca 1986 r., w teksańskim szpitalu pacjent zamiast 180 radów dostał dawkę nawet 25 tys. radów. To tyle, ile otrzymywali likwidatorzy oczyszczający dach elektrowni w  Czarnobylu.

Mężczyzna, dla którego była to już dziewiąta sesja, wiedział, że uczucie rażenia prądem oznaczało problem i w panice próbował dać znać operatorce maszyny o problemie, uderzając w pobliskie drzwi oddzielające pomieszczenie z maszyną od reszty gabinetu. Dopiero to zaalarmowało operatorkę, która chwilę wcześniej po zobaczeniu błędu 54 i informacji o niedostatecznej dawce promieniowania rutynowo go zignorowała i naświetliła mężczyznę ponownie. Takie zachowanie było normą ze względu na liczne błędy w przypadku Therac-25. Wcześniej nic złego się nie działo, a AECL nie widziało problemu.

Pacjenta po przebadaniu odesłano do domu i zalecono powrót w przypadku problemów. Wrócił po paru tygodniach, kaszląc krwią, i ostatecznie zmarł parę miesięcy później. Także po tym przypadku AECL odrzucało możliwość problemów z maszyną i zasłaniało się niewiedzą o innych drobnych incydentach, toteż Therac-25 wrócił do pracy.

11 kwietnia 1986 r. teksański Therac-25 zabił ponownie, kiedy pacjent z nowotworem skóry twarzy także otrzymał dawkę 25 tys. radów i zmarł trzy tygodnie później. Zeznawał, że widział niebieskie światło (promieniowanie Czerenkowa) będące zwiastunem zgonu dla wielu fizyków jądrowych w przeszłości.

Jego śmierć była pierwszym potwierdzonym przypadkiem zgonu z powodu radioterapii na świecie. Operatorka maszyny (ta sama, która była przy incydencie z grudnia) wraz z innym fizykiem na własną rękę zostali w pracy w weekend po wypadku, próbując odtworzyć błąd 54, który uważali za powód obydwu incydentów. Ostatecznie go odkryli i ustalili, że następował po zmianie rodzaju wiązki z rentgenowskiej na elektronową, jeśli ta została dokonana w mniej niż osiem sekund.

Ostatnia ofiara "naprawionego" Therac-25

Błąd został zgłoszony do AECL i do FDA, które ogłosiło Therac-25 wadliwym i zakazało jego użytkowania. Firma wprowadziła poprawki obejmujące nawet wymontowanie klawiszy kierunkowych, co przywróciło maszynę do użytku w listopadzie 1986 r. Jednakże w oprogramowaniu czyhała jeszcze jedna ukryta bomba, która "wybuchła" 17 stycznia 1987 r. zabijając piątą osobę.

W tym przypadku pacjent otrzymał dawkę 10 tys. radów i zmarł trzy miesiące później z powodu choroby popromiennej. FDA ponownie oznaczyło Therac-25 jako wadliwe urządzenie. Okazało się, że tym razem winny był inny błąd, który został ostatecznie rozwiązany wprowadzeniem nowych aktualizacji oprogramowania i fizycznych zabezpieczeń sprzętowych.

Te poprawki zostały dopuszczone przez FDA w czerwcu 1987 r. i zakończyły wypadki, ale historia o niekompetencji i ignorowaniu problemu przez AECL już się rozniosła po środowisku medycznym i żaden szpital nie chciał być kojarzony ze śmiertelnym Therac-25. Związany z tym brak zamówień spowodował, że firma pozbyła się działu medycznego w 1988 r.

Oprogramowanie napisane przez hobbystę

Jak okazało się w toku śledztwa prowadzonego przez FDA, oprogramowanie zostało napisane przez jednego nieznanego hobbystę z firmy AECL na bazie starszego Therac-6/20. Ponadto nie sporządzono dokumentacji, a możliwe 64 błędy nie zostały w żaden sposób opisane. Co więcej, błędy były bardzo liczne, na co wskazują zeznania operatorów mówiące o nawet 40 przypadkach dziennie, więc rutyna ich pomijania przy bierności AECL nie dziwiła. Firma nie przeprowadziła też rewizji kodu oraz skupiła się na kwestii sprzętowej, a nie programowej.

Błąd 54 pojawiał się w dość rzadkim przypadku: jeżeli po wprowadzeniu parametrów leczenia, gdy maszyna już ustawiała filtry za pomocą magnesów, operator wprowadził zmiany w ciągu ośmiu sekund, to zmiany nie były wykonane. W AECL uważano, że tak szybkie wprowadzenie danych nie jest możliwe, ale niektórzy operatorzy byli w stanie zmieścić się w ośmiu sekundach, co skutkowało tragediami.

Z kolei ostatni przypadek z 1987 r. już po poprawkach eliminujących błąd 54, dotyczył innego błędu. Było nim tzw. przekroczenie zakresu liczb całkowitych dotyczące procesu sprawdzającego poprawność ustawień maszyny. W tym przypadku każdorazowe sprawdzenie zwiększało wartość procesu class3 o 1. Granicą pamięci był jeden bajt więc przy wartości 255 kolejny test doprowadzał do przepełnienia bufora skutkującego nadpisaniem sąsiedniej komórki pamięci, co w tym przypadku było śmiertelne.

Przypadek Therac-25 jest bardzo ważnym przypomnieniem dla programistów, do czego może doprowadzić niskiej jakości oprogramowanie. Wnioski z tej katastrofy zostały wykorzystane do stworzenia normy IEC 62304 dotyczącej sprzętu medycznego.

Przemysław Juraszek, dziennikarz dobreprogramy.pl

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.