Počítačové chyby: když lidská hloupost zabíjí

10. 9. 2010

Sdílet

 Autor: Redakce

Ačkoliv pro většinu osob zřejmě význam slovního spojení „počítačový bug“ (resp. „programový bug“) nebude neznámý, raději v krátkosti připomeneme jeho definici. Označují se tak všechny počítačové chyby, zádrhely a problémy, které způsobují, že se programy nechovají tak, jak by měly. Výsledek podobné špatné funkce může vyústit v celou řadu vnějších projevů a vlivů, od prosté padání a mrznutí programu, přes špatné závěrečné výsledky či sice naprosto plnohodnotnou funkci, jež se však nicméně někdy za určité podmínky projeví nějakým špatným výstupem, kalkulací, zavoláním nesprávné funkce apod.

Na druhou stranu jsou ale i počítačové bugy, jejichž chyby jsou skutečně hrozivého dopadu (a pod tím samozřejmě nemáme na mysli trhání posledních zbytků vlasů z hlavy programátora) které v extrémním případě končí i řadou úmrtí (o jednom vyhlazení civilizace nemluvě).

Grace HopperováPrvní počítačový bug Grace Hopperové, zdroj: Knowledge Rush

Úplně prvním bugem v historii počítačů je památný problém, který bývá připisován Grace Hopperové za to, že veřejně popsala příčinu této chyby u jednoho z prvních elektromechanických počítačů (Mark II). Pravda je nicméně trochu jiná – Hopperová nebyla skutečně tou osobou, která bug 9. 9. 1947 (nikoliv 1945, jak se často chybně uvádí) nalezla (jak sama ochotně přiznala), ve skutečnosti šlo o týmovou práci operatérů počítače na dotyčné směně.

A proč se vlastně říká „bug“? Jelikož první „chyba“ měla podobu skutečného brouka, jímž byla můra uvězněná v jednom z počítačových relé.

Nás dnes ovšem nebude zajímat zase až tolik teorie a dělení počítačových chyb, jako spíše zmínění těch nejzajímavějších z počítačové historie. Tak tedy, bez dlouhých řečí, tu jsou:

Vesmírná sonda Mariner

Raketa + družice označovaná jako Mariner 1 se v roce 1962 záhy po svém odstartování směrem k nehostinné Venuši ocitla brzy po startu mimo svoji zamýšlenou dráhu, takže nakonec kontrola musela raketu z bezpečnostních důvodů zničit po pouhých 293 vteřinách letu. Proč k tomu došlo? Jelikož programátor chybně zpracoval algoritmus, který považoval ještě normální variace v rychlosti za již závažné, takže došlo přirozeně okamžitě k chybným korekčním úpravám, jež raketu vyslaly mimo plánovaný kurs. Vše přišlo daňové poplatníky na 18,5 milionu USD,

3. světová válka byla blíž, než by se zdálo

Když ještě byla studená válka v plném proudu, rozhodla se sovětská strana zavést systém časného varování, jež měl varovat Rusy v případě jakéhokoliv útoku ze strany Američanů. Jednoho dne v roce 1983 systém hlásil, že na SSSR letí pět balistických střel (s bezpochyby jaderným dárkem uvnitř), což málem skončilo vyhlazením civilizace. Naštěstí měl službu konající důstojník „zvláštní pocit uvnitř“, takže se rozhodl věc nahlásit jako falešný alarm. Těžko říci, zda svět tehdy zachránila spíše nedůvěra v techniku pocházející z Matičky Rusi, popřípadě prostá logická úvaha, že USA vlastnící stovky a tisíce raket by jich při skutečně vážně míněném útoku těžko vyslala právě pět.

Therac-25 zabíjející pacienty

Softwaru na výjimečných místech by měla být věnována srovnatelně stejně výjimečná pozornost. Jak jinak si zdůvodnit, že kanadský terapeutační stroj Therac-25 kvůli chybě v programu ozářil řadu pacientů smrtící dávkou radiace.

CIA a SSSR podruhé

Za studené války se odehrálo více zajímavých věcí, z nichž za připomenutí rozhodně stojí i situace, kdy došlo k největší neatomové explozi zařízené člověkem. Na pozadí proběhlo zhruba toto: SSSR mělo v plánu ukrást citlivou technologii USA tím způsobem, že od jisté kanadské firmy pořídila počítačové systémy na obsluhu plynovodů a přitom je samozřejmě chtěla i nasadit jakoby nic do praxe. Americká CIA se toho dopátrala a provedla na celém systému jednu drobnou sabotážní úpravu, takže systém sice prošel v SSSR testy, nicméně v praxi cíleně selhal a způsobil ruské ekonomice škodu za miliony.

Střely Patriot nebyly právě patrioti…

Jak jinak si potom vysvětlit, že se během první války v zálivu v roce 1991 tento raketový systém obrátil proti vlastním lidem (28 mrtvých + 100 zraněných)? Systém pro obranu Patriot v Saúdské Arábii nepronásledoval přilétající iráckou střelu Scud, ale namířil si to rovnou na domácí kasárna. Jak se později zjistilo, software chybně počítal čas, takže Scud zkrátka ignoroval, i když již neměl.

Konec rakety Ariane 5

Od projektu Ariane 5 si evropský vesmírný výzkum sliboval mnoho – zejména z důvodu nesení čtyř satelitů na orbitu, jež měly studovat interakce magnetického pole Země a Slunce. Raketa byla naštěstí bez posádky, i tak ale celá ta zábava stála Evropu zhruba půl miliardy USD. Zádrhel byl tentokrát ve špatné konverzi navigačního počítače – při převodu z 64bitové na 16bitovou hodnotu. A jelikož bylo zdrojové číslo pro 16 bitů příliš velké, došlo k přetečení, takže se poté navigační systém sám vypnul. Vládu nad raketou hned nato sice převzal navigační systém záložní, nicméně ten běžel na stejném algoritmu, takže si tvůrci moc nepomohli.

„Léčba“ ještě jednou a stejně špatná

Také zařízení od firmy Multidata Systems International, jehož úkolem bylo léčit ozařováním rakovinu, si nevedlo tak, jak bylo plánováno: konečné skóre dvacet kriticky zraněných a osm mrtvých. Zajímavé je také dohra celého případu: lékaři, kteří měli ze zákona povinnost dvojitě dávku vypočtenou softwarem ověřit, byli posléze obviněni z vraždy.

Příliš mnoho lásky škodí

V roce 2000 došlo k rozšíření historicky rekordního počtu kopií stejného červa na PC. Miliony počítačů byly tehdy infikovány virem „ILOVEYOU“, který stál svět na vyčíslených škodách 8,75 miliardy USD.

Přílišný povyk okolo Y2K?

Tento bug související se zvykem programátorů dimenzovat proměnné jen natolik, nakolik je to nutné, si vyžádal na preventivním léčení, přípravách, auditech, ověření a dalších činnostech ztrát plných 500 miliard USD. A to vše jen kvůli dvěma bytům navíc!

ICTS24

Studie o sebevraždách spáchala sebevraždu

Ke kapku humorné situaci došlo v roce 1999, kdy program zkoumající trendy sebevražd měl sám na jednu zaděláno: po zkompletování studie se tehdy zdálo, jako by se po přírodních katastrofách zvýšil počet sebevražd. Jak se ale posléze podařilo odhalit, chyba byla v programu, který v jednom roce počet sebevražd bůhvíproč zdvojnásobil.

Zdroj: Computer World, Computer World 2, Dev Topics

Autor článku