Pratite nas

Pozdrav, koji sadržaj vas zanima?

Tech

Programerske katastrofe: 8 najvećih softverskih grešaka u povijesti

U današnjem digitalnom dobu, softver igra ključnu ulogu u gotovo svakom aspektu naših života. Od zdravstvene skrbi do financijskih transakcija, od komunikacije do transporta, pouzdan softver je temeljna komponenta koja omogućuje nesmetano funkcioniranje modernog društva. Međutim, čak i najmanje pogreške u kodiranju mogu dovesti do katastrofalnih posljedica. Ovaj članak istražuje najveće programerske pogreške u povijesti, analizirajući kako su se dogodile, njihove tehničke detalje te posljedice koje su proizvele.

1. Raketa Ariane 5 (1996)

Dana 4. lipnja 1996., europska svemirska agencija (ESA) lansirala je Ariane 5, novu generaciju raketa namijenjenih za prijevoz satelita. Međutim, samo 36 sekundi nakon lansiranja, raketa se raspala u zraku, uništavajući teret vrijedan preko 370 milijuna dolara.

Uzrok nesreće bio je u softverskoj grešci unutar inercijalnog navigacijskog sustava. Konkretno, problem je nastao zbog pretvorbe 64-bitnog podatka u 16-bitni cijeli broj, što je dovelo do prelijevanja vrijednosti i generiranja pogrešnih podataka. Softver koji je korišten za Ariane 5 bio je preuzet iz prethodne verzije rakete Ariane 4, ali bez odgovarajuće prilagodbe za nove parametre i okruženje Ariane 5.

Posljedice ove greške bile su katastrofalne. Gubitak rakete i tereta prouzročio je financijski gubitak od preko 370 milijuna dolara. Osim financijskog aspekta, ova nesreća također je značajno narušila ugled ESA-e i usporila napredak europskog svemirskog programa. Kao odgovor na ovu nesreću, ESA je provela temeljitu reviziju svojih softverskih procedura i sigurnosnih protokola.

2. Mars Climate Orbiter (1998)

Mars Climate Orbiter, NASA-in svemirski brod, trebao je proučavati klimu na Marsu. Međutim, u rujnu 1999. godine, komunikacija s letjelicom je izgubljena nakon što je ušla u Marsovu atmosferu. Istraga je pokazala da je problem bio u neskladu jedinica; jedna softverska komponenta koristila je imperijalne jedinice (stope), dok je druga koristila metričke jedinice (metre).

Ova jednostavna konverzijska pogreška rezultirala je gubitkom letjelice vrijedne 125 milijuna dolara. Ukupni troškovi misije, uključujući razvoj i lansiranje, iznosili su preko 300 milijuna dolara.

Ovaj incident naglašava kritičnu važnost standardizacije i rigorozne validacije u softverskom razvoju, posebno u složenim sustavima gdje različiti timovi mogu koristiti različite mjerne jedinice.

3. Y2K Bug (2000)

Y2K bug, poznat i kao Problem 2000. godine, bio je računalni problem proizašao iz činjenice da su mnogi softverski sustavi koristili dvocifrene oznake za godine (npr. ’99’ za 1999. godinu). Bilo je straha da će sustavi nakon prelaska na 2000. godinu (00) pogrešno interpretirati godinu kao 1900., što bi moglo dovesti do širokog raspona problema.

Vlade i korporacije diljem svijeta potrošile su milijarde dolara na prepravke i testiranja kako bi spriječile potencijalne kvarove. Strah od mogućeg kolapsa bankovnog sustava, energetskih mreža i drugih kritičnih infrastruktura bio je raširen.

Unatoč velikim naporima i troškovima, stvarne posljedice Y2K buga bile su minimalne. Velik dio softvera bio je uspješno prilagođen, a većina problema koji su se pojavili bili su manji i brzo riješeni.

4. Therac-25 radijacijski strojevi (1980-e)

Therac-25 bio je medicinski uređaj za terapiju zračenjem koji je, zbog softverskih grešaka, povremeno isporučivao smrtonosne doze zračenja pacijentima. Problem je bio u nesinkronizaciji između različitih softverskih modula, što je dovodilo do pogrešnog kalibriranja doza.

Uzrok problema bio je u tzv. “utrkama” (race conditions) u softveru, gdje su se dva ili više procesa istovremeno natjecali za resurse, što je dovodilo do nepredvidivih rezultata.

Ove greške dovele su do smrti najmanje pet pacijenata, dok su mnogi drugi pretrpjeli teške ozljede. Posljedice ovih nesreća bile su dalekosežne, uključujući strože regulative i rigoroznija testiranja medicinskih uređaja, što je značajno poboljšalo sigurnost u ovom sektoru.

5. Knight Capital Group (2012)

Knight Capital Group, jedna od najvećih trgovačkih firmi na Wall Streetu, doživjela je 1. kolovoza 2012. godine jednu od najkatastrofalnijih financijskih pogrešaka zbog softverske greške. Novi softver za automatsko trgovanje, koji je implementiran bez adekvatnog testiranja, uzrokovao je kupnju i prodaju milijuna dionica u roku od nekoliko minuta, što je rezultiralo ogromnim gubicima.

Softver za trgovanje, nazvan SMARS (Smart Market Access Routing System), trebao je olakšati i ubrzati transakcije. Međutim, zbog programerske greške, sustav je počeo kupovati i prodavati dionice nasumično. U samo 45 minuta, Knight Capital je izvršio više od četiri milijuna transakcija, što je rezultiralo kupnjom dionica u vrijednosti od sedam milijardi dolara i gubitkom od 440 milijuna dolara.

Ova katastrofa je gotovo uništila Knight Capital. Tvrtka je bila prisiljena potražiti financijsku pomoć kako bi izbjegla bankrot. Na kraju, Knight Capital je preuzela konkuretska firma Getco. Ovaj incident poslužio je kao važna lekcija o potrebi rigoroznog testiranja i provjere novih softverskih rješenja prije implementacije u stvarnim tržišnim uvjetima.

6. Mt. Gox razmjena bitcoina (2014)

Mt. Gox, nekada najveća burza bitcoina na svijetu, doživjela je 2014. godine hakerski napad koji je otkrio ozbiljne sigurnosne ranjivosti u njihovom softveru. Napadači su uspjeli ukrasti 850,000 bitcoina, što je tada vrijedilo oko 450 milijuna dolara.

Ova krađa dovela je do gubitka povjerenja korisnika u Mt. Gox i kripto industriju općenito. Tvrtka je bila prisiljena proglasiti bankrot, ostavljajući mnoge korisnike bez njihovih ulaganja. Preostali bitcoini, njih oko 200,000, pronađeni su kasnije, ali šteta je već bila učinjena.

Ovaj incident je značajno utjecao na sigurnosne protokole u kripto industriji. Krah Mt. Goxa naglasio je potrebu za boljim sigurnosnim mjerama i regulacijom unutar industrije kako bi se spriječile slične situacije u budućnosti.

7. Heathrow Terminal 5 (2008)

Kada je Heathrowov Terminal 5 otvoren u ožujku 2008., očekivalo se da će olakšati putovanje tisućama putnika. Međutim, problemi s novim sustavom za rukovanje prtljagom izazvali su kaos. Softver koji je bio odgovoran za rukovanje prtljagom nije funkcionirao ispravno u stvarnim uvjetima.

Problemi sa softverom rezultirali su gubitkom tisuća komada prtljage i otkazivanjem stotina letova. Troškovi ovih problema procijenjeni su na više od 16 milijuna funti, uz nemjerljive neugodnosti i frustracije putnika.

Ovaj incident naglasio je važnost opsežnog testiranja softvera u stvarnim uvjetima prije puštanja u rad. Također je pokazao koliko je bitno imati efikasne planove za hitne slučajeve i rezervne sustave.

8. Pentium FDIV Bug (1994)

Pentium FDIV bug bio je problem u Intelovim Pentium procesorima, otkriven 1994. godine, koji je uzrokovao netočne decimalne rezultate kod određenih operacija dijeljenja. Greška je bila uzrokovana pogreškom u lookup tablici koja je koristila algoritam za dijeljenje.

Iako je greška bila rijetka i malo vjerojatna da će utjecati na prosječnog korisnika, medijska pažnja i pritisak javnosti prisilili su Intel da ponudi zamjenu čipova svima koji su to zatražili. Troškovi zamjene i reputacijske štete procijenjeni su na oko 475 milijuna dolara.

Ovaj incident pokazao je koliko brzo se tehnički problem može pretvoriti u PR katastrofu. Intel je morao preispitati svoje postupke testiranja i komunikacije s korisnicima, što je dovelo do poboljšanja u njihovim budućim proizvodima i uslugama.

Važne lekcije iz prošlih grešaka

Svaki od ovih incidenata pruža vrijedne lekcije za buduće projekte. Bilo da se radi o rigoroznijem testiranju, boljoj standardizaciji ili poboljšanoj sigurnosti, jasno je da su softverske pogreške skupe i potencijalno opasne.

Preporuke uključuju temeljito testiranje softvera, korištenje standardiziranih jedinica i protokola te implementaciju snažnih sigurnosnih mjera. Također je bitno imati transparentnu komunikaciju s korisnicima i spremne planove za hitne slučajeve.

Iako su ovi incidenti bili skupi i bolni, doveli su do značajnih poboljšanja u industriji. Bolje prakse testiranja, jača sigurnost i veća pažnja na detalje pomogle su spriječiti ponavljanje sličnih grešaka u budućnosti, čineći softversku industriju sigurnijom i pouzdanijom.

Možda će vas zanimati

Tech

Što bi se dogodilo ako uronite ruku u posudu tekućeg dušika? Bi li vam se ruka smrzla do ozeblina? Bi li se razbila čim...

Internet

Sigurno ste do sad naletjeli na neke od bizarnosti na koje je Googleovo auto naletjelo pri snimanju, a u ovom videu pogledajte kompilaciju najčudnijih...

Tech

Trebate izračunati postotak od nekog broja, a ne znate kako? Pročitajte ovaj jednostavan članak i naučite kako se računa postotak. Postotci se koriste za...

Tech

1995. godine grupa znanstvenika NASA-e napravila je testove o tome kako pojedine droge utječu na paukovu sposobnost da izgradi mrežu.

Internet

Odmah da vam kažemo – neizbježan kraj dogodio bi se iznenađujuće brzo. Ako je zapremnina prosječnog lijesa 886 litara, a prosječan volumen ljudskog tijela...

Automoto

Tvrtka Laser Power Systems razvila je automobil pogonjen nuklearnom energijom. Napokon je pronađen način koji će vašem automobilu omogućiti vječni rad bez punjenja. No...

Tech

Rudnik dijamanata Mir u Siberu jedna je od najvećih rupa u tlu koju je čovjek napravio. Duboka je 525 metara i široka 1200m. Let...

Tech

Bumerang je jedan od najstarijih letećih objekata koje je ljudska ruka stvorila. Svi znamo da su ih koristili Aboridžini, no malo je poznato je...