Ещё совсем свежа память об уязвимости 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 , вероятно.
В 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 торговых площадках, просто парализовав их.
Список был бы неполным без упоминания о спутнике NOAA-19 — ещё одной аварии, которая, правда, не связана с программными ошибками. 6 сентября 2003 года в ходе сборки на заводе Lockheed Martin Space Systems был сильно поврежден спутник. Аппарат рухнул на пол, когда техники устанавливали его в горизонтальное положение. Расследование этого происшествия показало, что случившееся было вызвано плохой производственной дисциплиной. Как оказалось, из тележки, которую использовали в этой процедуре, ранее техник извлёк 24 болта, закреплявших переходную платформу, но не задокументировал этого. Рабочие, которые воспользовались этой тележкой при изменении положения спутника, не проверили болты, хотя обязаны были это сделать. Стоимость ремонта спутника составила 135 миллионов долларов.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.