Список 10 найгірших багів в історії людства

багЯкщо баги в програмному забезпеченні призводять до зависання комп'ютера, то це дрібниці. Набагато гірше, якщо через помилки в програмному забезпеченні ламаються автомобілі, вибухають ракети і гинуть люди.

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

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

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

1982 Аварія на Транссибірському трубопроводі. Оперативники ЦРУ впровадили баг (звіт у форматі PDF ) у канадське програмне забезпечення, що керувало газовими трубопроводами . Радянська розвідка отримала це ПЗ як об'єкт промислового шпигунства і впровадила на Транссибірському трубопроводі. Результатом став найбільший неядерний вибух в історії людства.

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 отримали переопромінення. Лікарі , які повинні були вручну перевіряти розрахунки програми, були засуджені за вбивство.

Висновок.
Програми для комп'ютерів створюють люди, а людям властиво помилятися.