10 allvarliga episka datorprogramvaror

10 allvarliga episka datorprogramvaror (Teknologi)

De flesta programvaruproblem är små olägenheter som kan övervinnas eller bearbetas av användaren - men det finns några anmärkningsvärda fall där ett enkelt misstag har påverkat miljontals, i en grad eller annat, och till och med orsakat skada och förlust av liv.

Programvaran är skriven av människor - och varje mjukvara har därför buggar, eller "okodifierade funktioner" som säljare kan kalla dem. Det vill säga, mjukvaran gör något som det inte borde, eller gör inte något som det borde. Dessa fel kan bero på dålig design, missförstånd av ett problem, eller bara ett enkelt mänskligt fel - precis som ett typsnitt i en bok. Men medan en bok läses av en människa som vanligtvis kan utgå från ett felstavat ord, läses programvaran av datorer, som är relativt dumma, och kommer bara att göra vad de berättas.

Här är tio fall där konsekvenserna av dessa buggar var enorma, på något sätt eller annat:

10

Therac-25 1985-1987

Therac-25 var en maskin för administrering av strålterapi, i allmänhet för behandling av cancerpatienter. Det hade två sätt att använda. Den första bestod av en elektronstråle riktad direkt till patienten i små doser under en kort tid. Den andra riktade elektronstrålen vid höga energinivåer vid ett metallmål först, vilket i huvudsak skulle omvandla strålen till röntgenstrålar som sedan passerade in i patienten.

I tidigare modeller av Therac-maskinen, för detta andra driftsätt, fanns det fysiska felsäkerhetsskåp för att säkerställa att detta mål var på plats, eftersom utan att mycket höga energibjälkar kunde felaktigt avfyras direkt i patienten. I den nya modellen ersattes dessa fysiska felsökare av programvaror.

Tyvärr fanns det ett fel i programvaran: en "aritmetisk överflöde" uppkom ibland under automatiska säkerhetskontroller. Detta innebär i grunden att systemet använde ett nummer i sina interna beräkningar som var för stora för att det skulle kunna hanteras. Om operatören vid det här exakta ögonblicket konfigurerar maskinen skulle säkerhetscheckningarna misslyckas och metallmålet skulle inte flyttas på plats. Resultatet var att strålarna 100 gånger högre än den avsedda dosen skulle avfyras till en patient, vilket gav dem strålförgiftning. Detta hände vid 6 kända tillfällen, vilket ledde till att 4 patienter senare dödades.

9

World of Warcraft "Corrupted-Blood" Glitch 13 september 2005

Den enormt framgångsrika World of Warcraft (WoW), ett online dataspel som skapades av Blizzard Entertainment, led en pinsam glitch efter en uppdatering till deras spel den 13 september 2005 - vilket ledde till mass (fiktiv) död. Efter en uppdatering av spelinnehållet introducerades en ny fiendekaraktär, Hakkar, som hade förmågan att påföra en sjukdom, kallad förvrängd blod, på de spelande tecknen som skulle tömma sin hälsa över en tidsperiod. Denna sjukdom kunde överföras från spelare till spelare, precis som i den verkliga världen, och hade potential att döda alla tecken som drog upp det. Denna effekt var avsedd att vara strikt lokaliserad till det område i spelet som Hakkar bebodde.

Men en sak blev förbisedd: spelarna kunde teleportera till andra delar av spelet medan de fortfarande är smittade och vidarebefordra sjukdomen till andra - vilket är precis vad som hände. Jag kan inte hitta några siffror på kroppsräkningen, men hela städerna i spelvärlden var inga områden, med döda spelares lik som kasta gatorna. Lyckligtvis är spelardöd inte permanent i WoW och händelsen var snart över när spelets administratörer nollställde servrarna och tillämpade ytterligare programuppdateringar. Särskilt intressant är hur spelarnas reaktioner i spelet kan avspegla deras reaktioner på en liknande händelse.

8

North American Blackout 14 augusti 2003

Påverkade cirka 55 miljoner människor, främst i nordöstra USA, men även Ontario Canada, var detta en av de största strömavbrotten i historien. Det började när ett kraftverk längs södra stranden av Lake Erie, Ohio gick offline på grund av stor efterfrågan som satte resten av nätverket under större stress. När kraftledningarna är under kraftigare elektrisk belastning värms de upp, vilket innebär att materialet som utgör kabeln (vanligtvis aluminium och stål) expanderar. Flera kraftledningar hängde lägre när de expanderade och föll träd, sätta ner dem och sätta systemet under ännu större tryck. Detta ledde till en cascading effekt som så småningom minskade kraftnätet till 20% av normal uteffekt.

Medan orsakerna till denna blackout inte var något att göra med en programvarufil, kunde det ha avvärjts om det inte var en programvarufel i alarmcentralens kontrollcenter. I det som kallas ett "race-tillstånd" -scenario konkurrerade två delar av systemet över samma resurs och kunde inte lösa konflikten, vilket orsakade larmsystemet att frysa och sluta hantera varningar. Tyvärr misslyckades larmsystemet "tyst", vilket innebar att det bröt men inte meddelade någon att den hade brutits. Detta innebar att inga ljud- eller visuella varningar lämnades för att kontrollera rumspersonalen, som förlitade sig på sådana saker för situationell medvetenhet. Efterdyningarna rapporterades väl och lämnade många områden utan ström i flera dagar och drabbade industrin, verktyg, kommunikation. Det skylles också som åtminstone en bidragande faktor i flera dödsfall.

7

USS Yorktown Incident 21 september 1997

I världen av mjukvaruutveckling finns det flera kända buggar som programmerare möter och måste ta itu med. Ett sådant exempel är "divide by zero" bug, där en beräkning utförs som delar upp ett tal med noll.En sådan beräkning är inte möjlig att lösa, åtminstone inte utan att använda högre matematik, och den flesta mjukvaran - för allt från superdatorer till pocketräknare - är skrivet för att ta hänsyn till detta scenario.

Det var med lite pinsamhet då USS Yorktown led ett fullständigt misslyckande av framdrivningssystemet och var död i vattnet i nästan 3 timmar när en besättningsmedlem skrev "0" i det inbyggda databasstyrningssystemet som då var används i en division beräkning. Programvaran installerades som en del av en bredare operation för att använda datorer för att minska den kraft som behövs för att köra vissa fartyg. Lyckligtvis var fartyget engagerat i manövrer vid händelsens tillfälle, istället för deployerad i en kampmiljö, som kunde ha haft allvarligare konsekvenser.

6

Trans-Siberian Gas Pipeline Explosion 1982

Det här är lite sträckt och kan aldrig ha hänt, men - om det är sant - är det ett framträdande exempel på en avsiktligt införd programvarufel som orsakar en stor händelse.

Under det kalla kriget, när förbindelserna mellan USA och Sovjet Ryssland var tuffa, sägs Central Intelligence Agency ha avsiktligt placerade buggar inom programvara som säljs av ett kanadensiskt företag - programvara som användes för att styra den transsibiriska gasledningen . CIA ansåg att Ryssland köpte det här systemet via ett kanadensiskt företag som ett medel för att hemligt få amerikansk teknik, och att detta skulle vara ett tillfälle att mata dem bristfälligt material.

Sådana metoder hänvisades senare till i den avklassificerade "Farveldossier" där det bland annat påstås att felaktiga turbiner faktiskt användes på en gasledning. Det hävdas av den förste sekreteraren för flygvapnet, Thomas C. Reed, att en serie buggar infördes så att systemet skulle passera test men bryta under den faktiska användningen. Inställningar för pumpar och ventiler sattes att överstiga det tryck som rörledningen kunde motstå, vilket ledde till att en explosion var den största icke-nukleära explosionen som någonsin registrerats.

Dessa påståenden har emellertid motsägits av KGB-veteran Anatoly Medetsky, som hävdar att explosionen orsakades av sub-par konstruktion snarare än avsiktlig sabotage. Oavsett orsaken rapporterades inga kända olyckshändelser då explosionen inträffade i ett mycket avlägset område.





5

Krigskrigets missilkris 26 september 1983

Stanislav Petrov var tulltjänsteman i en hemlig bunker nära Moskva ansvarig för övervakningen av det sovjetiska tidiga varningssatellitsystemet. Strax efter midnatt fick de en varning om att USA hade lanserat fem Minuteman-interkontinentala ballistiska missiler. Som en del av den ömsesidigt försäkrade förstörelsesläran som kom till prevalens under det kalla kriget, skulle svaret på en attack av en makt vara en hämndsattack av den andra.

Detta innebar att om attacken var äkta, behövde de reagera snabbt. Men det verkade konstigt att USA skulle attackera med bara en handfull krigshuvud: även om de skulle orsaka massiva skador och förlust av liv, skulle det inte vara tillräckligt nära att torka ut den sovjetiska oppositionen. Även radarstationerna på marken plockade inte upp några kontakter, även om dessa inte kunde upptäcka bortom horisonten på grund av jordens krökning, vilket kunde ha förklarat förseningen.

En annan övervägning var själva systemet för tidig varning, som var känt för att ha brister och hade blivit förhastad till tjänst i första hand. Petrov vägde alla dessa faktorer och bestämde sig för att styra varningen som ett falskt larm. Även om Petrov inte hade fingret på nukeknappen som sådan, hade han gått fram till en rekommendation till sina överordnade att de skulle ta attacken som verkliga, det kunde ha lett till all-out kärnvapenkrig. Oavsett om det baseras på erfarenhet, intuition eller lycka till, var Petrovs beslut det rätta.

Det var senare bestämt att den tidiga upptäcktsprogramvaran hade plockat upp solens reflektion från toppen av molnen och missförstått den som missillanseringar.

4

Sony CD skadligt kopieringsskydd

Det till synes oändliga kriget mellan media och pirater ebbs och flyter varje år. Så snart nya sätt att skydda och säkert distribuera medier finns, upptäcks nya sätt att kringgå och kompromissa med dessa åtgärder.

Vissa skulle hävda att Sony BGM gick ett steg för långt 2005 när de introducerade en ny form av kopieringsskydd på vissa av deras ljud-CD-skivor. När du spelade med en Windows-dator skulle dessa cd-skivor installera en mjukvara som kallas en rootkit. En rootkit är en form av mjukvara som begravdar sig långt in i en dator och ändrar vissa grundläggande processer. Även om det inte alltid är skadligt i naturen används en rootkit ofta för att skadligt installera skadlig och svår att upptäcka (eller ta bort) programvara, till exempel virus, trojaner etc. När det gäller Sony BMG var målet att styra hur en Windows-dator använde Sony CD-skivor för att förhindra att kopiera dem eller konvertera dem till MP3-filer, vilket skulle hjälpa dem att skära ner på piratkopiering av sina medier.

Rotkiten uppnådde detta - men genom att vidta åtgärder för att gömma sig från användaren gjorde det det möjligt att dölja virus och annan skadlig programvara med den. Det dåligt genomtänkta genomförandet, och en växande uppfattning om att Sony BMG inte hade någon verksamhet som smekmånadiserar användar-datorer, innebar att hela systemet återupptogs. Det resulterade i att rootkit klassificerades som skadlig kod av många datasäkerhetsföretag, samt flera rättssaker och en produktåterkallelse av de förekommande CD-skivorna.

3

Patriot Missile Bug 25 februari 1991

Under Operation Desert Shield utplacerade den amerikanska militären Patriot Missile System som ett försvar mot flygplan och missiler - i detta fall missiler irakiska Al Hussein (SCUD).Spårningsspecifikationen för Patriot-missilen använder hastigheten för sitt mål och den aktuella tiden för att förutsäga var målet kommer att vara från en ögonblick till en annan. Eftersom olika mål kan resa med hastigheter upp till MACH 5 måste dessa beräkningar vara mycket exakta.

Vid den tiden fanns det en bugg i målprogrammet - vilket innebar att den interna klockan med tiden skulle "drifta" (precis som vilken klocka) längre och längre från exakt tid, desto längre var systemet kvar. Felet var faktiskt redan känt och var enkelt fixat genom regelbundet omstart av systemet och därigenom återställning av systemklockan.

Tyvärr förstod de ansvariga inte klart hur "regelbundet" de skulle starta om systemet, och det gick kvar i 100 timmar. När en irakisk missil lanserades, som inriktades på ett amerikanskt flygfält i Dhahran, Saudiarabien, upptäcktes det av patriotmissilsystemet. Men vid denna tidpunkt hade den interna klockan drev ut med 0,34 av en sekund, så när det försökte beräkna var missilen skulle vara nästa såg den på ett himmelområde över en halv kilometer bort från missil sanna plats. Det antogs omedelbart att det inte fanns någon fiende-missil trots allt och avbröt avlyssningen. Missilen fortsatte till sin destination där den dödade 28 soldater och skadade ytterligare 98.

2

Millennium Bug


Millennium Bug, eller Y2K, är den mest kända buggen på den här listan och den som många av oss kommer ihåg att höra om vid den tiden. I grund och botten var detta fel resultatet av den kombinerade kortsiktigheten hos datorprofessorer under decennierna fram till år 2000. I många datorsystem användes två siffror för att visa datumet, t.ex. 98 istället för 1998, en övning som verkade rimlig och vilken fördated dator någonsin.

Många förutsåg emellertid att det kan finnas ett problem när datumet gick förbi år 2000. Med hjälp av nuvarande system skulle år 2000 bara kunna representeras som 00, vilket kan förvirra datorer för att tro att det innebar år 1900 . En sådan sak skulle bryta några beräkningar som omfattade år som korsade årtusendet. Det kan till exempel visa att någon föddes 1920 och dödades 2001 som minus 19 år gammal.

Som svar på problemet uppdaterade mjukvaruföretag snabbt sina produkter, som redan kontrollerade nästan allt från bank och lön till sjukhusdatorer och tågbiljettsystem. Som ett erkännande av sin världsomspännande natur skapades det internationella Y2K-samarbetscentret i februari 1999 för att hjälpa till att samordna det arbete som krävs för att förbereda det nya årtusendet mellan regeringar och organisationer, där det behövs. Till sist gick det nya året utan för mycket händelse, förutom den universella mamma-till-alla-hangovers.

Det är svårt att säga hur mycket av denna framgång som ett resultat av det arbete som utfördes för att lindra problemet, eller huruvida problemet var överdriven i media i första hand - förmodligen en blandning av båda.

1

År 2038


Även om Y2K har passerat, är vi inte ute av skogen än. Inte alla datorer hanterar datum på samma sätt, och många datorer baserade på UNIX-operativsystemet hanterar datum genom att räkna hur många sekunder ett datum är sedan 01/01/1970. Till exempel är datumet 01/01/1980 315 532 800 sekunder efter 01/01/1970. Detta nummer lagras på dessa datorer som ett "signerat 32-bitars heltal", som har en storleksgräns på 2147483647. Det betyder i grunden att det bara kan hantera datum som är upp till 2147483647 sekunder efter 01/01/1970 - vilket bara tar oss fram till den 19 januari 2038, varefter vi kan få problem igen.

Detta är särskilt sant när vi anser att UNIX-baserad programvara vanligtvis används i "inbyggda system" istället för en hemmaplats - det vill säga system som har ett mycket specifikt syfte nära anknytning till hårdvaran, till exempel programvara för robotmonteringslinjer , digitala klockor, nätverks routrar, säkerhetssystem och så vidare.

Dessutom kommer någon att behöva överväga vad vi ska göra den 1 januari 10000. Inte jag men.