Může softwarová chyba i zabíjet?

Často se uvádí, že počítače ještě nedokázaly překročit onu pomyslnou „červenou linii“, kdy by jejich chyba mohla stát lidské životy. A když už, tak že ke ztrátám docházelo jen nepřímo. Bohužel to není pravda: Počítačové chyby jsou potřísněné krví už dávno.

Může softwarová chyba i zabíjet?


Therac-25 byl přístroj určený k ozařování nádorů. Produkovala jej firma Atomic Energy of Canada. Mohl pracovat ve dvou režimech: nízkoenergetickým bodovým elektronovým paprskem nebo vysokoenergetickým rentgenovým ozařováním.

V případě použití druhého módu ovšem bylo nutné dát paprsku do cesty několik filtrů, které upravily jeho tvar a snížily intenzitu. Posledním prvkem v systému pak byla iontová komora, jež měla měřit intenzitu ozáření. A právě sem se vloudila chybička.

Therac-25 uvedený na trh v roce 1983 navazoval na předchozí generaci ověřených strojů Therac-6 a -20. Jeho tvůrci se ale rozhodli vsadit na inovativní přístup: mnoho mechanických prvků, které považovali za poruchové a přístroj prodražující, totiž vyměnili za „neomylný“ software.

To platilo i při práci s vysokoenergetickým rentgenovým ozařováním, kde soustava táhel a pojistek dříve zaručovala, že jej není možné zapnout bez umístění filtrů do cesty paprsku.

Therac-25 přitom bez ztráty kytičky prošel certifikací FDA. Vycházel totiž ze staršího softwaru i hardwaru, které už příslušné certifikáty měly, takže první kontrola byla jen letmá. Ale ani následný důkladný rozbor možných selhání a jejich důsledků nic neodhalil.

V rámci úplnosti musíme dodat, že se prakticky netýkal softwaru, s jehož kontrolou tehdy byly jen minimální zkušenosti. Pravděpodobnost selhání softwaru tak byla víceméně od zeleného stolu vyčíslena hodnotou jedna ku čtyřem miliardám.

Navíc jako nejpravděpodobnější příčina podobného selhání byl označen „nečekaně silný elektromagnetický šum“.

 

Chyby se kupí

Jenže v červenci 1985 byla firma AECL vyrozuměna, že v nemocnici v Hamiltonu došlo k přezáření pacienta. Firma reagovala promptně: upozornila úřady v USA i Kanadě, na místo vyslala technika.

Vzniklý problém se ale nepodařilo znovu vyvolat. Technik tak došel k názoru, že na vině je nejspíše špatná konstrukce jednoho přepínače. Ten byl přepracován, ve všech vyrobených přístrojích vyměněn – a pravděpodobnost selhání měla klesnout o pět řádů.

AECL navíc vydala nařízení, ve kterém stanovila povinnost obsluhy před použitím vysokoenergetického ozařování překontrolovat nastavení přístroje.

V listopadu 1985 ale vyšlo najevo, že už v červnu se stal druhý podobný případ v Georgii. A v lednu 1986 došlo k dalšímu přezáření pacienta v Yakimě (stát Washington).

Tentokrát AECL z neznámých důvodů pochybila, když případ nešetřila a jen informovala nemocnici, že nemůže jít o chybu jejího přístroje a že nemá zprávy o dalších podobných incidentech.

V březnu 1986 ale došlo k další nehodě v Texasu: na místo okamžitě vyrazil technik společnosti, který konstatoval, že zřejmě došlo ke zkratu. Nepodařilo se jej ale replikovat.

Až další případ v Tyleru v dubnu 1986 odhalil tajemství přístroje Therac-25. Technik zjistil šokující skutečnost: když se přístroj nastavuje příliš rychle, není schopen kvůli chybě v programu vykonat všechny příkazy, a tak je přeskakuje.

Přesně šlo o sekvenci, kdy personál omylem zvolil použití vysokoenergetického paprsku, uvědomil si svoji chybu, zrušil volbu a následně vybral nízkoenergetický.

Pokud to zvládl pod osm sekund, vinou chyby v softwaru zůstal aktivovaný vysokoenergetický paprsek, ale nedošlo k postavení filtrů do jeho cesty: pacient pak dostal sto- až tisíckrát vyšší dávku záření, než měl.

Ray Cox, jeden z těch, kdo měli tu smůlu a se závadou se setkali, popisoval zážitek jako „intenzivní elektrický šok“, po němž začal křičet a utekl z místnosti.

Firma okamžitě přijala celou řadu korekčních opatření: upravila software, odstranila několik tlačítek z obslužné klávesnice a umístila do ní několik hardwarových pojistek, aby zadání probíhalo dostatečně pomalu.

Nic to ale nebylo platné, přístroj Therac-25 ztratil v únoru 1987 certifikaci a všechny vyrobené jednotky přestaly být používané. Postupně se totiž objevovaly další a další případy: následné šetření totiž ukázalo, že 99 procent incidentů při ozařování nebylo z nemocnic – často v obavě o vlastní dobré jméno – hlášených na příslušné úřady.

Dodnes tak není jasné, kolik lidských životů si chyba v software Theracu-25 vyžádala: hovoří se o šesti prokázaných případech, ale podle některých zdrojů jich může být až 22.

 

Poučení do budoucna

Následné šetření ukázalo na několik pochybení, ke kterým v případě vývoje přístroje došlo. I po desítkách let si z nich můžeme odnést poučení. Především nedošlo k nezávislé revizi softwaru (i když je otázkou, zda by se za výše uvedené konstelace na něco přišlo – ale udělána být měla).

Firma AECL špatně vyhodnotila možné režimy selhání – se softwarovou chybou vůbec nepočítala. Systém sice vykázal chybové hlášení (zobrazil MALFUNCTION plus číslo chyb od 1 do 64), ale manuál chyby vůbec nevysvětloval. Takže i když byl operátor dostatečně osvícený a vzal manuál do ruky, nic se nedozvěděl. Vždy tak problém řešil volbou „Pokračovat“.

Ale především: sázelo se na to, že software nemůže způsobit nečekané stavy. Dnes víme, že je to představa opravdu naivní...

 

Tento příspěvek vyšel v Security Worldu 3/2015. Časopis (starší čísla i předplatné těch nadcházejících) si můžete objednat na adrese našeho vydavatelství.

Úvodní foto: © Anatoly Maslennikov - Fotolia.com










Komentáře