Топ, Фотопідбірки

10 найгірших «багів» в історії людства

Найперший комп’ютерний баг в історії був виявлений в 1945 р, коли інженери знайшли в корпусі комп’ютера Harvard Mark II метелика. Цей метелик закорочував контакти – і комп’ютер збоїв. Інженери зробили запис в журналі подій “Перший випадок виявлення бага” (по-англійськи “bug” означає “комаха”). З тих пір комп’ютерні збої прийнято називати багами.

Підписуйся на "Дивовижний світ" у Телеграмі!

У міру поширення цифрових пристроїв баги дедалі глибше проникають в наше життя. Вони оточують нас всюди – на мобільних телефонах, у побутовій техніці, в автомобілях. На щастя, зазвичай баги не приносять ніякої шкоди, крім моральної. Але буває і по-іншому, коли баг викликає величезні фінансові втрати і навіть забирає людські життя.

28 липня 1962 р. 

Космічний апарат Mariner I стартував у напрямку до Венери.Через поломку антени корабель втратив зв’язок із земними службами управліннями і перейшов на власну систему пілотування. Але ця система містила маленький баг. В результаті апарат полетів зовсім не в той бік і його довелося підірвати над Атлантичним океаном. Подальше розслідування встановило, що в процесі програмування системи навігації була здійснена маленька помилка – при введенні однієї з формул був пропущений один символ.

1982 р. 

Аварія на Транссибірській магістралі. Канадське програмне забезпечення, що управляло газовими трубопроводами, яке радянська розвідка отримала в наслідок промислового шпигунства і впровадила на Транссибірському трубопроводі, містило маленький баг. Результатом став найбільший неядерний вибух в історії людства.

1985-87 рр.

Кілька людей отримали смертельну дозу опромінення під час сеансів радіаційної терапії з медичним прискорювачем Therac-25. Заснована на попередній версії прискорювача, “поліпшена” модель Therac-25 могла генерувати два види випромінювання: слабке електронне бета-випромінювання і нормальне рентгенівське випромінювання. Ще одне “поліпшення” полягало в тому, що замість електромеханічного захисту пацієнта в пристрої був реалізований програмний захист, нібито більш надійний. Обидві нові функції були некоректно реалізовані недосвідченим програмістом, результатом чого стали як мінімум п’ять смертей і величезна кількість несмертельних випадків переопромінення.

1988 р.

Переповнення буфера в Berkeley Unix. Перший в світі комп’ютерний черв’як (так званий черв’як Морріса) заразив від 2.000 до 6.000 комп’ютерів менш ніж за добу, експлуатуючи вразливість у реалізації функції gets (). В ОС Berkeley Unix ця функція введення / виведення не мала обмеження на максимальну довжину.

1988-96 рр.

Генератор випадкових чисел Kerberos протягом декількох років широко використовувався в різних системах шифрування. Передбачалося, що програма повинна вибирати ключ випадковим чином з багатьох мільярдів чисел, але генератор випадкових чисел вибирав з набагато меншого набору чисельністю приблизно в мільйон. Як результат, протягом восьми років будь-який користувач міг без труднощів проникнути в комп’ютерну систему, яка використовувала модуль Kerberos.

15 січня 1990.

Падіння телефонної мережі AT & T. Помилка в новій версії прошивки міжміських комутаторів привела до того, що комутатор перезавантажувався, якщо отримував специфічний сигнал від сусіднього комутатора. Але біда в тому, що цей сигнал генерувався в той момент, коли комутатор відновлював свою роботу після збою. В один прекрасний день, коли якийсь комутатор в Нью-Йорку перезавантажився, він подав той самий нещасливий сигнал – і почалося. Незабаром 114 сусідніх комутаторів безперервно перезавантажувалися кожні 6 секунд, а 60 тис. людей залишилися без міжміського зв’язку на 9 годин, поки інженери не встановили на комутатори попередню версію прошивки.

1993 р.

Широко розрекламований процесор Intel Pentium неправильно робив ділення з плаваючою комою, помиляючись на 0,006%. Хоча ця проблема реально торкнулася небагатьох користувачів, але стала справжнім кошмаром для іміджу Intel. Спочатку фірма погодилася міняти процесор тільки для тих користувачів, які могли довести, що їм в обчисленнях потрібна подібна точність, але потім погодилася поміняти процесор всім бажаючим. Цей баг коштував Intel близько $ 475 млн.

1995-96 рр.

Пінг смерті. Відсутність перевірки на помилки при обробці IP-пакетів дозволяла порушить практично будь-яку операційну систему, відправивши їй через інтернет спеціальний пакет ( “пінг”).

4 червня 1996 р.

Нова ракета-носій Ariane 5, результат багаторічної роботи європейських вчених, гордість країн Євросоюзу, вибухнула через 40 секунд після свого першого старту. Тільки наукове устаткування на борту ракети коштувало близько $ 500 млн, не кажучи про безліч побічних фінансових наслідків. Система автопідриву ракети спрацювала після зупинки обох процесорів в результаті ланцюжка помилок.

Початком цього ланцюжка послужило переповнювання буфера, оскільки система навігації подала неприпустимо велике значення параметра горизонтальної швидкості. Справа в тому, що система управління Ariane 5 перероблялася з Ariane 4, а там такого великого значення не могло бути теоретично. З метою зниження навантаження на робочий комп’ютер інженери зняли захист від помилок переповнення буфера в цьому програмному модулі, оскільки були впевнені, що такого значення горизонтальної швидкості не може бути в принципі – і прорахувалися.

Листопад 2000 р.

Національний інститут раку, Панама. Тут відбулася ціла серія інцидентів, викликана тим, що ПЗ для планування радіаційної терапії виробництва американської компанії Multidata Systems International неправильно розраховувало дози опромінення для пацієнтів. Програма дозволяла лікареві намалювати на комп’ютерному екрані розташування захисних металевих щитів, які захищають тіло від радіації. Але програма дозволяла маніпулювати тільки чотирма щитами, тоді як лікарі хотіли задіяти п’ять. Вони знайшли спосіб “обхитрити” програму, якщо намалювати всі п’ять щитів у вигляді єдиного блоку з діркою посередині. Єдине, чого вони не знали, що програма розраховує різні дози радіації залежно від того, як намальована дірка. Якщо малювати її особливим чином, то пристрій видавав подвійну дозу радіації. Щонайменше вісім людей загинули, а ще 20 отримали переопромінення. Лікарі, які повинні були вручну перевіряти розрахунки програми, були засуджені за вбивство.

Всі ці приклади, а особливо останній, ще раз показують, що ніколи не можна в повній мірі довіряти комп’ютерам. Адже програми для комп’ютерів створюють люди, а людям властиво помилятися.