10 vážně epické chyby počítačového softwaru

10 vážně epické chyby počítačového softwaru (Technologie)

Většina softwarových chyb je malými nepříjemnostmi, které uživatel může překonat nebo pracovat, ale existují některé pozoruhodné případy, kdy jednoduchá chyba ovlivnila miliony, a to dokonce i v jednom či druhém stupni, a dokonce způsobila zranění a ztráty na životech.

Software je napsán člověkem - a každý software má tedy chyby nebo "nedokumentované funkce", jak by jim mohl obchodník volat. To znamená, že software dělá něco, co by nemělo, nebo nedělá něco, co by mělo. Tyto chyby mohou být způsobeny špatným designem, nedorozuměním problému nebo prostou lidskou chybou - stejně jako překlep v knize. Nicméně, zatímco kniha je čtena člověkem, který obvykle může odvodit význam chybně napsaného slova, software je čten počítačem, které jsou poměrně hloupé a udělají jen to, co jim bylo řečeno.

Zde je deset případů, kdy důsledky těchto chyb byly obrovské, nějakým způsobem nebo jiným:

10

Therac-25 1985-1987

Therac-25 byl stroj pro podávání radiační terapie, obecně pro léčbu pacientů s rakovinou. Měla dva režimy provozu. První se skládala z elektronového paprsku zaměřeného přímo na pacienta v malých dávkách po krátkou dobu. Druhý zaměřil elektronový paprsek při vysokých energetických úrovních na kovovém "cíli", který by v podstatě přeměnil paprsek na rentgenové záření, které pak prošly pacientovi.

V předchozích modelech stroje Therac pro tento druhý provozní režim existovaly fyzické bezpečnostní trezory, které zajistily, že tento cíl byl zaveden, neboť bez něj by mohly být velmi vysoké energetické paprsky chybně vypáleny přímo do pacienta. V novém modelu byly tyto fyzické bezpečnostní trezory nahrazeny softwarovými.

Bohužel v softwaru došlo k chybě: během automatických bezpečnostních kontrol se někdy vyskytl "aritmetický přetečení". To v podstatě znamená, že systém používal v interních výpočtech číslo, které bylo příliš velké, aby se s ním mohl vypořádat. Kdyby v tomto okamžiku obsluha konfigurovala stroj, bezpečnostní kontroly selhaly a kovový terč by nebyl přesunut na místo. Výsledkem bylo, že paprsky, které byly 100krát vyšší než zamýšlená dávka, by byly vyhozeny do pacienta a poskytly jim otravu zářením. Toto se stalo při 6 známých příležitostech, což způsobilo pozdější smrt 4 pacientů.

9

World of Warcraft "poškozený-krve" Glitch 13.září 2005

Úspěšně úspěšná World of Warcraft (WoW), online počítačová hra vytvořená společností Blizzard Entertainment, utrpěla trapnou závadu po aktualizaci své hry 13. září 2005 - způsobující masovou smyšlenou smrt. Po aktualizaci herního obsahu byl představen nový nepřátelský charakter, Hakkar, který měl schopnost způsobit onemocnění, nazývanou "Corrupted Blood", na hratelných postavách, které by mohly po určitou dobu vyčerpat své zdraví. Tato nemoc by mohla být převedena z přehrávače na hráče, stejně jako v reálném světě a měla potenciál zabít jakoukoli povahu, která by ji uzavřela. Tento účinek měl být striktně lokalizován do oblasti hry, kterou Hakkar obýval.

Nicméně jedna věc byla přehlédnuta: hráči byli schopni teleportovat do dalších oblastí hry, zatímco byli stále infikováni a předávali nemoc jiným - což je přesně to, co se stalo. Nelze najít žádné číselné údaje o počtu těl, ale všechna města v herním světě jsou ne-go oblasti, s mrtvými hráči mrtvoly plýtvání ulicemi. Naštěstí není smrt hráčů ve WoW trvalá a událost brzy skončila, když správci hry resetovali servery a použili další aktualizace softwaru. Zvláště zajímavý je způsob, jakým hráči reagovali ve hře úzce na své reakce na podobný incident v reálném životě.

8

North American Blackout 14. srpna 2003

Vliv na zhruba 55 milionů lidí, především v severovýchodní části Spojených států, ale také v Kanadě v Ontariu, byl jedním z největších výpadků napájení v historii. Začalo to, když elektrárna podél jižního břehu jezera Erie, Ohio, skončila v režimu offline kvůli vysoké poptávce, která zbyla zbytek elektrické sítě pod větší stres. Pokud se elektrické vedení nachází pod těžkým elektrickým zatížením, zahřívají se, což znamená, že materiál tvořící kabel (obvykle hliník a ocel) se rozšiřuje. Několik elektrických vedení se zvedalo dolů, když se roztahovaly a chytaly stromy, přiváděly je dolů a uvedly systém do ještě většího tlaku. To vedlo k kaskádovému efektu, který nakonec snížil napájecí síť na 20% normálního výkonu.

Zatímco příčiny tohoto výpadku neměly nic společného se softwarovou chybou, mohlo by to být odvráceno, kdyby nebyla chyba softwaru v poplachovém systému řídících center. V takzvaném scénáři "stavu závodu" dvě části systému konkurovaly stejnému zdroji a nemohly vyřešit konflikt, což způsobilo, že poplachový systém zmrazil a zastavil zpracování výstrah. Bohužel alarmový systém selhal "tiše", což znamenalo, že se rozbil, ale nikomu neoznámil, že se rozbil. To znamenalo, že nebyly poskytnuty žádné zvukové nebo vizuální výstrahy pro kontrolu personálu, který se na takové věci spoléhal kvůli situačnímu povědomí. Následky byly dobře hlášeny a zanechaly mnoho oblastí bez energie několik dní a postihly průmysl, nástroje a komunikaci. To bylo také obviňováno jako přinejmenším jeden přispívající faktor v několika úmrtí.

7

USS Yorktown Incident 21. září 1997

Ve světě vývoje softwaru existuje několik běžně známých chyb, s nimiž se programátoři setkávají a musí se jim zabývat. Jedním z takovýchto příkladů je chyba "rozdělit nulou", kde je proveden výpočet, který rozděluje libovolné číslo o nulu.Takový výpočet nelze vyřešit, alespoň bez použití vyšší matematiky, a většina softwaru - vše od superpočítačů až po kapesní kalkulačky - je zapsána, aby zohlednila tento scénář.

Bylo to trochu rozpaky, že USS Yorktown utrpěl úplnou poruchu svého pohonného systému a byl mrtvý ve vodě téměř 3 hodiny, když člen posádky napsal "0" do palubního systému řízení databáze, který byl tehdy použitý při výpočtu rozdělení. Software byl nainstalován jako součást širšího provozu, který využívá počítače ke snížení výkonu člověka potřebného pro provoz některých lodí. Naštěstí se loď v době incidentu angažovala v manévrech spíše než v bojovém prostředí, které by mohlo mít vážnější důsledky.

6

Transsibiřská plynovodní výbuch roku 1982

Toto je trochu napínavé a možná se to nikdy nestalo, ale - pokud je to pravda - je to prominentní příklad úmyslně zavedené softwarové chyby způsobující velký incident.

Během studené války, kdy byly vztahy mezi USA a Sovětským svazem tady mrazivé, říká Ústřední zpravodajská agentura, že úmyslně umístila chyby uvnitř softwaru, který byl prodáván kanadskou společností - softwaru, který byl použit pro řízení transsibiřského plynovodu . CIA se domnívalo, že Rusko kupuje tento systém prostřednictvím kanadské společnosti jako prostředek skryté získávání amerických technologií a že by to byla příležitost k jejich krmení vadným materiálem.

Takové praktiky byly později zmíněny v odtajněné "Farewell Dossier", kde se kromě jiného uvádí, že na plynovodu byly skutečně používány vadné turbíny. Tvrdí bývalý tajemník letectva Thomas C. Reed, že byla zavedena řada chyb, aby systém prošel zkouškami, ale během skutečného použití se rozpadl. Nastavení čerpadel a ventilů bylo nastaveno tak, aby překročily tlaky, které potrubí mohlo odolat, což vedlo k výbuchu, který byl údajně největším nejaderným výbuchem, který kdy byl zaznamenán.

Tato tvrzení však byla v rozporu s veteránem KGB Anatolym Medetskym, který tvrdí, že výbuch byl způsoben spíše konstrukcí dílů než úmyslnou sabotáží. Bez ohledu na příčinu nebyly hlášeny žádné oběti, neboť výbuch se objevil ve velmi vzdálené oblasti.





5

Střela krize studené války 26. září 1983

Stanislav Petrov byl úředníkem tajného bunkru poblíž Moskvy, který byl zodpovědný za sledování sovětského satelitního systému včasného varování. Hned po půlnoci dostali varování, že USA spustily pět mezikontinentálních balistických raket Minuteman. Jako součást vzájemně ubezpečené destruktivní doktríny, která se během studené války rozšířila, by odpověď na útok jedné moci byla pomsta druhého.

To znamenalo, že pokud byl útok skutečný, museli rychle reagovat. Zdálo se však divné, že by USA útočily jen s hrstkou hlavic: ačkoli by způsobily masivní škody a ztráty na životech, nebylo by to ani tak dostačující, aby se sovětská opozice vytratila. Také radarové stanice na zemi nezachycovaly žádné kontakty, ačkoli tyto nemohly odhalit za obzor kvůli zakřivení Země, což mohlo vysvětlit zpoždění.

Dále se jednalo o samotný systém včasného varování, o němž bylo známo, že má chyby a v první řadě se dostalo do provozu. Petrov zvažoval všechny tyto faktory a rozhodl se, že výstrahu bude rozhodovat jako falešný poplach. Ačkoliv Petrov neměl prstem tlačítko na nuku jako takový, předal svým nadřízeným doporučení, že útok bere jako skutečný, mohlo to vést k celosvětové jaderné válce. Ať už na základě zkušeností, intuice nebo jen štěstí, bylo Petrovo rozhodnutí správné.

Později bylo zjištěno, že software pro včasnou detekci zvedl sluneční reflexi z vrcholu mraků a špatně ji interpretoval jako odpalování raket.

4

Ochrana před nebezpečnými kopiemi Sony CD

Zdánlivě nekončící válka mezi médii a piráty se každoročně odráží a proudí. Jakmile budou nalezeny nové způsoby ochrany a bezpečného šíření médií, jsou odhaleny nové způsoby obcházení a ohrožení těchto opatření.

Někteří se domnívají, že společnost Sony BGM zašla v roce 2005 příliš velký krok, když představila novou formu ochrany proti kopírování na některých svých audio CD. Při přehrávání pomocí počítače se systémem Windows by tyto disky CD instalovaly software nazvaný "rootkit". Rootkit je forma softwaru, která se hluboce zakoří do počítače a mění některé základní procesy. Ačkoli to není vždy zákeřný, rootkit je často používán k zavržení škodlivého a těžko odhalitelného (nebo odstranění) softwaru, jako jsou viry, trojské koně atd. V případě společnosti Sony BMG bylo cílem řídit způsob, jakým počítač se systémem Windows používali disky Sony k zabránění jejich kopírování nebo převodu na MP3, což by jim pomohlo snížit pirátství jejich médií.

Rootkit to dosáhl - ale tím, že učinil opatření, aby se skryl od uživatele, umožnil se s ním skrýt viry a jiný škodlivý software. Špatně promyšlená implementace a rostoucí vnímání, že společnost Sony BMG neměla žádný zájem manipulovat s uživateli osobních počítačů, znamenala, že se celý systém neprojevil. To vedlo k tomu, že rootkit byl klasifikován jako malware mnoha počítačovými bezpečnostními společnostmi, stejně jako několik soudních procesů a stažení produktu z CD.

3

Patriot Missile Bug 25. února 1991

Během operace Desert Shield americká armáda nasadila raketový systém Patriot jako obranu proti letadlům a střelám - v tomto případě irácké rakety Al Hussein (SCUD).Sledovací software pro raketu Patriot využívá rychlosti svého cíle a aktuálního času, aby předpověděl, kde bude cíl z jednoho okamžiku do druhého. Protože různé cíle mohou cestovat rychlostí až do MACH 5, musí být tyto výpočty velmi přesné.

V té době došlo k chybě v cílovacím softwaru - což znamenalo, že v průběhu času by se vnitřní hodiny "posunuly" (podobně jako všechny hodiny) dále a dále od přesného času, čím déle systém běžel. Chyba byla vlastně již známá a byla jednoduše stanovena pravidelným restartováním systému a tím resetováním systémových hodin.

Bohužel ti, kteří jsou na starosti, nepochopili, jak by měli "pravidelně" restartovat systém a nechali je běžet po dobu 100 hodin. Když byla spuštěna irácká raketa zaměřená na americkou letiště v Dhahranu v Saúdské Arábii, byla detekována raketovým systémem Patriot. Nicméně v tomto bodě se vnitřní hodiny vytratily o 0,34 sekundy, takže když se pokoušela vypočítat, kde bude raketa další, pohlíželo na plochu oblohy vzdálenější asi půl kilometru od skutečné polohy raket. Okamžitě předpokládalo, že neexistuje žádná raketa protivníka a zrušení zachycení. Střely projely na místo určení, kde zabilo 28 vojáků a zranilo dalších 98.

2

Millennium Bug


Millennium Bug, nebo Y2K, je nejznámější chybou v tomto seznamu a ta, kterou si mnozí z nás pamatují v té době. V podstatě byla tato chyba výsledkem kombinované krátkozrakosti počítačových profesionálů v desetiletích, které vedly až do roku 2000. V mnoha počítačových systémech byla pro zobrazení data uvedena dvě číslice. 98 namísto roku 1998, praxe, která se zdála být přiměřená a která předčasně počítačovala.

Mnoho lidí však nepředpokládalo, že by mohlo dojít k problému, kdy datum uplynulo v roce 2000. Použitím současných systémů mohl být rok 2000 představován pouze jako "00", což by mohlo zaměnit počítače do myšlení, že znamenalo rok 1900 Taková věc by porušila veškeré výpočty zahrnující řady let, které překročily tisíciletí. Může například ukázat někoho, kdo se narodil v roce 1920 a zemřel v roce 2001 jako mínus 19 let.

V reakci na tento problém softwarové společnosti rychle aktualizovaly své produkty, které již ovládaly téměř vše od bankovních a výplatních poplatků po nemocniční počítače a systémy jízdenek. Mezinárodní středisko pro spolupráci Y2K bylo také uznáno za svou celosvětovou povahu a bylo vytvořeno v únoru 1999, aby koordinovalo práci potřebnou k přípravě nového tisíciletí mezi vládami a organizacemi. Nakonec nový rok prošel bez přílišného incidentu, kromě univerzální matky všichni-kocoviny.

Je těžké říci, kolik z tohoto úspěchu bylo výsledkem práce provedené ke zmírnění problému, nebo zda byl problém v médiích přehnaný především - pravděpodobně kombinací obou.

1

Rok 2038


Přestože Y2K prošel, nejsme ještě z lesa. Ne všechny počítače zpracovávají data stejným způsobem a mnoho počítačů založených na operačním systému UNIX zpracovává data tím, že počítá, kolik sekund je datum od 01/01/1970. Například datum 01/01/1980 je 315 532 800 sekund po 01/01/1970. Toto číslo je uloženo na těchto počítačích jako "32bitové celé číslo s podpisem", které má limit velikosti 2147483647. To v podstatě znamená, že může zpracovávat pouze data, která jsou po 21.01.1970 až 2147483647 sekund - což nás vede jen až do 19. ledna 2038, po kterém můžeme mít opět problémy.

To platí zejména tehdy, když se domníváme, že software založený na systému UNIX se běžněji používá ve "vestavěných systémech" spíše než v domácím počítači - to znamená, systémy, které mají velmi specifický účel úzce související s jejich hardwarem, jako je software pro robotické montážní linky , digitální hodiny, síťové směrovače, bezpečnostní systémy a tak dále.

Také někdo bude muset vzít v úvahu, co hodláme dělat 1. ledna 10000. Ani já ne.