10 bug-uri epice în programele de calculator

Cele mai multe bug-uri din software generează inconveniente minore pe care utilizatorul le poate ocoli, dar au existat și cazuri în care o greșeală comună a afectat milioane de oameni într-un fel sau altul sau chiar a provocat traume sau moarte.







Mai jos sunt zece exemple de cazuri în care efectele bug-urilor au fost uriașe într-un fel sau altul:

10. TERAK-25 (Therac-25)

10 bug-uri epice în programele de calculator

Terak-25 este un dispozitiv pentru radioterapie, utilizat cel mai adesea pentru tratamentul pacienților cu cancer. Dispozitivul avea două moduri de funcționare. În primul mod, dispozitivul a direcționat fasciculul de electroni direct la pacient în doze mici și pentru o perioadă scurtă de timp. În al doilea mod, aparatul a direcționat un fascicul puternic de electroni către o "țintă" metalică, ceea ce a făcut posibilă transformarea efectivă a fasciculului în radiație cu raze X, care a ajuns apoi la pacient.

Modelele anterioare ale lui Terak pentru cel de-al doilea mod de funcționare au avut siguranțe fizice, care au asigurat prezența unui reflector metalic, fără de care razele de energie ridicată ar putea fi confundate direct cu pacientul. În noul model, siguranțele fizice au fost înlocuite cu "siguranțe" în software.

Din păcate, programul a avut un bug: uneori, în timpul verificărilor automate de securitate, a existat o "depășire aritmetică". Cu un astfel de bug, sistemul folosește un număr prea mare în calcule pe care nu le poate procesa. Dacă în acest moment operatorul a instalat mașina, siguranțele nu au funcționat și placa metalică nu se potrivea în locul potrivit. Ca rezultat, pacientul a fost expus la raze, intensitatea cărora a fost de 100 de ori mai mare decât cea cerută. În șase cazuri, pacienții au primit o supradoză de radiații, 4 dintre aceste cazuri au dus la moartea victimei.

Dezvoltatorii nu au oferit un singur lucru: jucătorii infectați ar putea teleporta în alte locații ale jocului și ar putea transfera această boală către alți jucători - ceea ce sa întâmplat. Câte caractere au murit din cauza acestei boli, dar orașele întregi de jocuri sunt golite - peste tot pe străzile orașelor se aflau cadavre de personaje de joc. Din fericire, moartea unui personaj din World of Warcraft este neconcludentă, iar curând "ciuma" sa încheiat - administratorii jocului au reluat serverul și au aplicat un "patch" de software care a rezolvat problema. Este interesant faptul că reacția jucătorilor la infecție și la cei infectați a fost similară cu reacția oamenilor aflați în situații similare în viața reală.

Cauza accidentului nu este legată de problema software-ului, dar ar putea fi împiedicată dacă nu există o eroare în programul responsabil pentru sistemul de notificare din cadrul centrului de gestionare a energiei. Două părți ale sistemului "au concurat" pentru o singură resursă și nu au putut rezolva conflictul (eroare de proiectare numită "condiție de cursă"), din acest motiv sistemul de avertizare a atârnat și a încetat să proceseze semnalele de alarmă. Din păcate, oprirea sistemului de avertizare a fost "liniștită", adică nu a anunțat pe nimeni despre defecțiuni. Nu s-au făcut alerte sonore sau vizuale care ar alerta lucrătorii să oprească sistemul, care sunt pe deplin susținuți de astfel de alerte pentru a obține informații despre starea sistemului de alimentare. Consecințele accidentului au fost pe larg mediatizate: multe teritorii au rămas fără curent electric timp de câteva zile, ceea ce a afectat industria, furnizarea de utilități și comunicații. Se crede că chiar și câteva decese au fost rezultatul unui accident.

7. Incidentul purtătorului de avioane USS Yorktown

10 bug-uri epice în programele de calculator

În lumea dezvoltării software-ului, există câteva bug-uri bine cunoscute pe care programatorii le întâlnesc și pe care trebuie să le ia în considerare întotdeauna atunci când scriu codul. Un astfel de bug este "împărțirea la zero" - atunci când se face un calcul în care orice număr este împărțit la zero. Un astfel de calcul nu poate fi făcut, cel puțin dacă nu utilizați matematică superioară, motiv pentru care cele mai multe programe instalate pe supercomputere sau chiar pe calculatoare de buzunar sunt scrise astfel încât să ia în considerare această posibilitate.

Spre rușinea de conducere programatorii de sistem USS Yorktown complet oprit, lăsând transportatorul neajutorat în apă timp de 3 ore, atunci când unul dintre membrii echipajului au intrat la zero în sistemul de gestionare a bazei de date la bord, iar sistemul a încercat să facă operațiunea de divizare prin zero. Software-ul a fost instalat în timpul proiectului pentru a folosi calculatoarele pentru a reduce numărul necesar de persoane din echipajele unor nave. Din fericire, nava în acest moment a fost implicat în manevre de formare, și nu a fost în toiul luptei, altfel consecințele erorii ar fi dezastruoase.







6. Explozia pe conducta transsiberiană de gaze

10 bug-uri epice în programele de calculator

Acest punct ar trebui luat cu un scepticism, deoarece este posibil zvonuri, dar dacă este adevărat - acesta este un exemplu perfect al unei bug-uri abandonate deliberat care au provocat un accident mare.

În timpul Războiului Rece, când relația dintre SUA și URSS au fost, să-l puneți blând, încordate, CIA a introdus pretins în mod deliberat câteva bug-uri în software-ul vândut de compania canadiană, care a fost folosit pentru a controla conducta de gaze din Siberia. CIA a decis că Rusia a cumpărat software-ul de la o companie canadiană într-o încercare de a obține tehnologie din SUA, și ar fi o mare oportunitate de a da tehnologia inferioară URSS.

Astfel de operațiuni au fost deschise mai târziu ca rezultat al declasificării "Dosarului de adio", în care, între altele, sa susținut că turbine defecte au fost instalate în conducta de gaze. Fostul secretar al Forței aeriene americane, Thomas Reed, susține că în sistem s-au introdus mai multe bug-uri care nu s-ar fi manifestat în timpul testării, ci ar duce la un accident în timpul utilizării directe. Setările pompelor și supapelor au fost schimbate, ceea ce a dus la o presiune liberă în conducta de gaze, ceea ce a dus la cea mai mare explozie nenucleară din lume.

Un veteran al KGB, Anatoly Medetsky respinge opțiunea de sabotaj, în opinia sa, explozia a avut loc din cauza erorilor făcute în timpul construcției. Din fericire, nimeni nu a fost rănit de explozie, deoarece a avut loc într-o zonă îndepărtată din zona civilizată.

5. Potențialul început al războiului nuclear în timpul războiului rece

10 bug-uri epice în programele de calculator

Stanislav Petrov - un ofițer care a servit într-un post de comandă secret lângă Moscova, unde se afla sistemul de avertizare timpurie. Într-o seară, când Petrov era la datorie, a primit un avertisment că SUA a lansat cinci rachete balistice intercontinentale, Minuteman. Conform doctrinei distrugerii reciproce predominante în timpul Războiului Rece, ca răspuns la atacul SUA, URSS a trebuit să se răzbune pe același atac.

Dacă atacul era real, ofițerul trebuia să reacționeze rapid la el. Cu toate acestea, Petrov a crezut că ciudat că Statele Unite ar fi atacat într-un astfel de număr mic de focoase: cu toate că aceste rachete au cauzat pagube enorme și pierderi mari de vieți, nu ar putea provoca daune ireparabile Uniunii Sovietice. În plus, radarul, situat pe teren nu a arătat nimic, chiar dacă acestea nu au putut vedea nimic dincolo de orizont, din cauza curburii Pământului, ceea ce ar explica întârzierea în radare terestre.

Un alt factor care a influențat decizia lui Petrov a fost că sistemul de avertizare timpurie era în continuare "brut" și uneori se înșela. Ofițerul a cântărit toți factorii și a decis că alarma a fost falsă. În ciuda faptului că Petrov însuși nu a putut lansa o grevă de răzbunare nucleară, dacă ar fi trecut recomandarea de a ataca conducerea superioară, acest lucru ar fi declanșat un război nuclear devastatos. Decizia lui Petrov a fost corectă, indiferent dacă a fost acceptată, bazată pe experiență, intuiție sau pur și simplu noroc.

Ulterior sa stabilit că software-ul de avertizare timpurie a răspuns la lumina soarelui reflectată de norii de mare altitudine, pe care le-a perceput ca lansând rachete.

4. Protecție împotriva copierii rău-intenționate pe discuri Sony

10 bug-uri epice în programele de calculator

Războiul între corporațiile de show-show și pirați nu se oprește. De îndată ce se gîndesc noile modalități de protecție împotriva copierii și distribuției în siguranță a multimedia, apar noi modalități de a eluda astfel de metode de protecție.

Rootkit-ul și-a atins scopul, dar pentru că a încercat să se ascundă de la utilizator, a permis și altui software rău intenționat să-și ascundă prezența pe computerele utilizatorilor. Implementarea prost concepută și încrederea crescândă a utilizatorilor că Sony BMG nu avea dreptul să încerce să-și administreze cu ușurință computerele, a dus la faptul că sistemul a eșuat. Multe companii implicate în securitatea calculatoarelor au clasificat rootkit-ul ca un cod rău intenționat, iar Sony BMG a trebuit să răspundă pentru acțiunile sale în instanță și să retragă o mulțime de CD-uri audio cu un rootkit.

3. Bug în complexul de rachete Patriot

10 bug-uri epice în programele de calculator

În timpul operațiunii Shield Desert, SUA au adoptat sistemul de rachete Patriot pentru a proteja împotriva loviturilor de rachete și a aeronavelor inamice, în acest caz din rachetele irakiene SCUD. Software-ul de control al rachetelor Patriot utilizează viteza țintei și timpul curent pentru a prezice traiectoria mișcării țintă. Dat fiind că obiectivele pot atinge viteze de 1,5 km / s, aceste calcule ar trebui să fie foarte precise.

La acel moment, software-ul este responsabil pentru menținerea țintei, au participat la un bug din cauza pentru care ceasul intern cu timpul se deplasează departe de valorile în timp real. Bug era deja cunoscut, și ar fi putut fi rezolvată o supraîncărcare a sistemului periodic, și a reseta valoarea ceasului de sistem.

Persoanele responsabile pentru acest lucru nu au înțeles destul de bine ce a fost reboot "regulat" și sistemul a funcționat timp de 100 de ore. Atunci când Irakul a lansat o rachetă spre aerodromul din SUA la Dhahran (Dhahran), sistemul Patriot a determinat lansarea. Cu toate acestea, până în acel moment, ceasul intern a fost mutat de 0,34 secunde, prin urmare, calculat de traiectoria a fost greșită și sistemul a considerat că rachetele inamice nu mai există și a anulat încercarea de a trage în jos rachete. Racheta a zburat la destinație, rezultând 28 de soldați americani uciși și 98 răniți.

Este greu de spus dacă rezolvarea cu succes a problemei a fost rezultatul muncii efectuate sau chiar problema a fost exagerată de la început - cel mai probabil, ambele.

Bug-ul poate aduce mult mai rău, având în vedere că UNIX este utilizat în sisteme integrate, în care legătura dintre „de fier“ și partea software a unui mult mai puternic - de exemplu, roboți sunt utilizate pe liniile de asamblare, în ore, routere, etc.

Îi plăcea? Trimiteți știri prietenilor dvs. )







Trimiteți-le prietenilor: