RSS лента

Дневник


Advertisements

Cамые дорогие ошибки в разработке ПО

Рейтинг: 5.00. Голосов: 3.
06.05.2015 в 05:17 (2475 Просмотров)
Посвящается всем, кто удивлен сбоем в системе проверок лотереи.
Бывали баги и посерьезней.



Ещё совсем свежа память об уязвимости Heartbleed в Open SSL, поставившей под удар сотни тысяч приложений по всему миру. Пока дотошные багоискатели продолжают исследовать код Open SSL в поисках новой ошибки, способной с не меньшей силой заставить сердца специалистов по безопасности ныть от тревожного предчувствия, мы решили оглянуться назад и вспомнить самые дорогостоящие и ужасные по последствиям технологические катастрофы, случившиеся из-за ошибок разработчиков программного обеспечения. От потерянных в глубинах космоса спутников, стоимостью в годичный ВВП небольшого островного государства, до печально известного червя Морриса, мутировавшего из безобидного эксперимента в напасть года, что, кстати, не помешало его автору стать уважаемым человеком – профессором MIT и сооснователем Y Combinator.

В 1998 году агентство NASA потеряло в космосе спутник "Mars Climate Orbiter". Эта катастрофа озадачила инженеров – удивительно, как такое могло поизойти. В результате оказалось, что субподрядчик, который работал над многими инженерными задачами, не выполнил простейшего преобразования английских единиц измерения в метрическую систему. Из-за фатальной ошибки аппарат стоимостью 125 миллионов долларов оказался слишком близко к поверхности Марса. Диспетчеры пришли к выводу, что спутник на большой скорости вошел в марсианскую атмосферу, где из-за возникших перегрузок его системы связи вышли из строя. Неуправляемый Mars Climate Orbiter попал на околосолнечную орбиту, миссия была провалена.

На новейшей французской беспилотной ракете-носителе "Ariane 5" решили использовать то же программное обеспечение, которое было разработано для более ранней модели – Ariane 4. К сожалению, более мощный двигатель Ariane 5 спровоцировал баг, не встречавшийся в предыдущих версиях ПО. Через тридцать шесть секунд после первого запуска ракеты пришлось активировать систему самоуничтожения, так как возникла целая череда программных ошибок. В сущности, программа попыталась записать 64-разрядное число в 16-разрядное пространство. Возникло переполнение, в результате которого отказал и основной, и резервный компьютер (поскольку на обоих компьютерах выполнялись одни и те же программы). На разработку Ariane 5 было потрачено около 8 миллиардов долларов. Общая стоимость спутников, которые должна была вывести на орбиту эта ракета, составляла 500 миллионов долларов. В следующем ролике мы видим ошеломленного инженера, наблюдающего взрыв ракеты. Затем специалист записывает на бумажке какое-то короткое слово – F…A…I…L , вероятно.

https://www.youtube.com/watch?t=336&v=IONcgYzVFlg

В 2004 году компания EDS разработала сложную компьютерную систему по выплате пособий для британского агентства помощи детям (CSA). В то же время Министерство труда и пенсионного обеспечения (DWP) приняло решение реорганизовать это агентство. Две программные системы оказались полностью несовместимы, в результате были спровоцированы необратимые ошибки. Система переплатила 1,9 миллионам человек и недоплатила семистам тысячам. В итоге накопилось 7 миллиардов долларов, не попавших на социальные счета, 239 000 нерассмотренных дел, 36 000 новых дел, «застрявших» в системе. Все эти ошибки обошлись британским налогоплательщикам в сумму более 1 миллиарда долларов.

Советская газотранспортная система была настолько сложной, что управлять ею можно было лишь с помощью продвинутого автоматизированного ПО. Которого в стране, конечно, не было. В ЦРУ узнали, что советские агенты собираются украсть планы подобной системы, и вышли на контакт с канадской компанией, разрабатывавшей ПО такого рода. Сотрудникам компании было поручено специально внести в код определённые ошибки, чтобы СССР получил дефектную программу. В июне 1982 года на участке газопровода произошел мощный взрыв, который, по некоторым данным, был крупнейшим неядерным взрывом в истории планеты.

Незадолго до открытия пятого терминала в аэропорту Хитроу персонал тестировал новейшую систему для транспортировки больших объемов багажа, поступающего в аэропорт ежедневно. Перед открытием терминала она была тщательно протестирована на 12 000 пробных «единицах» багажа. Все испытания прошли безупречно, но в день открытия терминала оказалась, что система неработоспособна. Вероятно, причиной тому стали непредусмотренные практические ситуации. Например, пассажир мог забыть в сумке какой-то важный предмет, и багаж вручную забирали из транспортной системы. Весь процесс обработки нарушался, и система отказывала. В течение следующих десяти дней около 42 000 мест багажа не были доставлены владельцам, из-за этого пришлось отменить более 500 рейсов.

В 1962 году космический корабль "Mariner 1" должен был отправиться к Венере. Однако едва ракета успела оторваться от космодрома на мысе Канаверал, как угрожающе отклонилась от курса. Возникла угроза падения на землю. Инженеры NASA, управлявшие полетом с Земли, активировали систему самоуничтожения ракеты. Позже ревизионная комиссия пришла к выводу: авария возникла из-за того, что в программных инструкциях был пропущен дефис. В результате корабль получал неверные управляющие сигналы. Стоимость ракеты составляла 18 миллионов долларов без учёта инфляции.

Червь Морриса
– под таким названием стала известна программа, разработанная в 1988 году аспирантом Корнеллского университета Робертом Тэппеном Моррисом. Автор утверждал, что задумал его как «безобидный эксперимент», но из-за ошибки в коде она вышла из-под контроля и начала стремительно распространяться, выводя из строя тысячи компьютеров. Общая стоимость устранения ущерба составила около 100 миллионов долларов. Роберта Морриса обвинили в компьютерном преступлении и оштрафовали на 10 000 долларов. На суде адвокат заявил, что созданная подзащитным программа помогла усовершенствовать компьютерную безопасность. Стоит отметить, что Моррис был сооснователем инкубатора стартапов Y Combinator, а в настоящее время является адъюнкт-профессором Массачусетского технологического института. Дискета с исходным кодом червя Морриса хранится в Бостонском университете.



В феврале 1991 года американский комплекс противоракетной обороны "Patriot", установленный в Саудовской Аравии, пропустил ракетный удар по армейским казармам. Правительственная комиссия обнаружила, что это произошло из-за программного сбоя, который привел к «неточности в процедуре отслеживания, усугубившейся в ходе долговременной эксплуатации системы». К моменту катастрофической ошибки комплекс "Patriot" беспрерывно проработал в течение более 100 часов. Накопилась достаточно серьезная погрешность, в результате которой комплекс ПВО неправильно вычислил курс атакующей ракеты. В результате прямого попадания погибли 28 американских солдат. Ещё до инцидента американские инженеры успели исправить в программе баг, из-за которого в работе "Patriot" возникали неточности. Исправленная версия ПО была доставлена на пострадавшую военную базу на следующий день после атаки.

В 1994 году профессор математики обнаружил баг в популярном процессоре Intel от Pentium и опубликовал об этом статью. Компания Intel в ответ на это замечание заявила, что готова заменять процессоры по требованию пользователей, которые смогли бы доказать, что пострадали в результате этой ошибки. По расчетам Intel, вероятность её возникновения была столь низкой, что подавляющее большинство пользователей даже не заметили бы её. Возмущённые клиенты потребовали заменить процессоры всем желающим, и Intel пришлось на это пойти. Финансовые потери Intel в результате составили около 475 миллионов долларов.

Компания Knight, один из ключевых игроков американского фондового рынка, едва не обанкротилась в результате одной программной ошибки. Из-за возникшего бага компания всего за полчаса потеряла около 440 миллионов долларов. В течение 2 дней, когда неисправное ПО наводнило рынок незапланированными сделками, котировки акций компании упали на 75 процентов. Предполагается, что содержавший ошибку биржевой алгоритм Knight стал совершать незапланированные сделки примерно на 150 торговых площадках, просто парализовав их.

Источник: dev.by

Отправить "Cамые дорогие ошибки в разработке ПО" в Google

Обновлено 06.05.2015 в 05:52 KoLoB

Категории
Без категории

Комментарии

  1. Аватар для DVolk
    Ну все же знают этот анекдот, да? Программист ставит на тумбочку стакан с водой на случай, если захочет пить. И пустой стакан, если не захочет.

    Так вот, немного космоса. Один из советских зондов, запущенных на Марс, был потерян из-за ошибки в алгоритме. Алгоритм там был простой:

    "Проверить, в какую сторону отклонение от курса. Если отклонился влево - то импульс на правый двигатель. Если курс отклонился вправо - то импульс на левый двигатель."

    И только после катастрофы программисты поняли, что нужна была еще и третья ветка: "Если курс точный, то ничего не предпринимать."
  2. Аватар для Кристина Сатро
    скорей француз написал слово insuccès.

Форум "Говорим про Америку"
Форум "Говорим про Америку" Facebook