Найти тему
Ты ж программист!

Популярнейшие Баги столетия ║ч.1║

Оглавление

Все мы люди и незазорно нам, тварям дрожащим, совершать ошибки. От них не застраховано ни одно живое существо. В сегодняшней подборке начинаем первую часть самых эпичных багов и фейлов последнего столетия.

Несмотря на то, что ошибиться может каждый, очень важной частью является работа над ошибками, т.к. умные всегда учатся на чужих ошибках.

💾Введение

Слово Баг было заимствовано из английского слова жук/насекомое/клоп (bug), но позже в жаргонном смысле начало использоваться массово для объяснения ситуации с непредвиденной и неожиданной ошибкой, возникающей в компьютерных система и технике.

Первым начал использовать это слово в далёких 1877 известный пендосский изобретатель и коммерсант Томас Эдисон. Однажды он ломал голову над тем, почему же его изобретение, фонограф, отказывалось работать. Предположил Томас, что в устройство где-то мог пробраться жук или какое-то насекомое.

Второго не оказалось на месте, но в последствии во всех непонятных ситуациях изобретатель выражался именно этим словом, Баг.

💾Реальное насекомое

Настоящий Bug
Настоящий Bug

Подборка пойдёт от самых старых фактов к самым новым. Таким образом, 76 лет назад, 9 сентября 1945 года при тестировании ЭВМ (электромеханического прототипа современных компьютеров) Mark 2 Aiken Relay Calculator в стенах Гарвардского универа во время очередного испытания было обнаружено насекомое.

Мотылёк влетел между контактами реле устройства, застрял и испустил там дух. Это поведение вызвало короткое замыкание и некорректную работу дорогостоящей машины.

Забавно, что насекомое извлекли и вклеили в исторический известный документ с подписью "первый в мире реальный Баг". С тех пор, в этот день начали отмечать день тестировщика и день Бага.

💾Всем радиации чуток

Therac-25
Therac-25

Вовсе невесёлые случаи происходили в 1985-1987 годах. Современный аппарат для лучевой терапии тех лет Терак-25 использовался для лечения онкологических больных.

Суть проблемы заключалась в том, что в старых версиях у аппарата стояли физические (механические) предохранители, подававшие металлический отражатель. В новой версии физические были заменены на предохранители программного обеспечения.

Из-за бага к коде программы, иногда при терапиях происходило арифметическое переполнение. ПО пыталось обработать слишком большие числа. Предохранители не срабатывали в нужное время или не срабатывали вовсе. На пациента попадал луч в 100 раз интенсивнее, чем должен быть.

Случай не шуточный, ведь было известно минимум 6 случаев передозировки радиацией, 4 из которых стали летальными.

💾AT&T надолго запомнят падение коммутатора

Штаб квартира AT&T
Штаб квартира AT&T

15 января 1990 года случилось непоправимое. Ошибка в новой версии прошивки междугородних коммутаторов привела к тому, что коммутатор перезагружался, если получал специфический сигнал от соседнего коммутатора.

Таким образом, один из 114 на тот момент коммутаторов имел механическое повреждение и запустил непрерывную цепочку сарафанного радио, приведшую к свою телефонной сети в Америке. В результате цепной реакции, более 60 тысяч человек оказались без связи.

По результату устранения бага, проблема стоила компании в 60 миллионов долларов и подрыве доверия граждан.

💾Самый дорогой Баг в истории

Самый дорогой Баг в истории
Самый дорогой Баг в истории

Если кому и есть, чем похвастаться, то это точно случай с Ariane 5, ущерб от которого по различным данным оценивается от 400-500 миллионов долларов.

4 июня 1996 года проводился запуск ракетного носителя Ариана-5. К сожалению, операция не увенчалась успехом и на 40й секунде полёта из-за сбоя бортового ПО ракета разрушилась.

Причиной тому стала ныне популярная уязвимость - переполнение переменной. Часть кода для ракеты 5ой версии была взята из предшественника 4ой версии. тестирование кода, конечно, никто не провёл, а из-за разницы в скорости новой версии ракеты, старый софт вызвал сбой и переполнил переменную. Запасное По в бортовом компьютере так же было от старой 4ой версии и ошибка повторилась.

Обиднее всего должен быть факт того, что на подготовку к миссии ушло более 7 миллиардов долларов и 10 лет.

💾Ping of death

Ping of death
Ping of death

Этот случай больше историческая уязвимость, чем баг, но всё равно достойно упоминания. Такой тип сетевой атаки родом из 1990х годов широко применялся в прошлом.

Подвержены были все системы того времени из-за отсутствия заглушек. Устройство жертвы получало команду на выполнение команды Ping и зависала наглухо.

Такое поведение было вызвано стандартом Ipv4, объём передаваемого пакета которого не мог превышать 65 535 байт. При переполнение вызывалось переполнение сетевого стека и зависание машины.

Однако в конце 1990х эту проблему успешно побороли и исправили.

На этом на сегодня всё. Продолжение будет завтра. Спасибо за внимание и хороших выходных!