За несколько десятилетий IT-отрасль погасила тысячи багов: большинство из них исчезали с очередным патчем, но некоторые вызывали катастрофы — вплоть до человеческих жертв. Разбор масштабных сбоев показывает, что корень многих инцидентов крылся в мелочах: забытый код, надежда на авось или «и так сойдёт» приводили к многомиллионным потерям, репутационным ударам и трагедиям.
Далее — подборка примеров, иллюстрирующих опасность недооценки даже малозаметных ошибок.
Пентаум FDIV: как мелкая оплошность обошлась Intel в $475 млн

Осенью 1994 года Intel столкнулась с неожиданным ударом по своей репутации: математик Томас Найсли обнаружил, что в некоторых чипах Pentium блок вычислений с плавающей запятой выдаёт неточный результат при редкой комбинации чисел. Хотя сбой проявлялся крайне редко, для научного сообщества даже единичные погрешности оказались недопустимы.
Причина крылась не в софте, а в «кремнии»: алгоритм SRT, ускорявший деление за счёт заранее зашитых констант, ссылался на пустые ячейки таблицы. Пять битовых полей из тысячи оказались незапрограммированными, что приводило к накоплению ошибки в финальном результате.
Проверить процессор было просто: достаточно разделить 4 195 835 на 3 145 727. В норме результат равен 1,333820449136241002, а на дефектном чипе — 1,333739068902037589.
Правильный результат: 4 195 835 / 3 145 727 = 1,333820449136241002
На дефектном Pentium: 4 195 835 / 3 145 727 = 1,333739068902037589
Изначально Intel заявляла, что среднестатистический пользователь столкнётся с этой погрешностью раз в 27 000 лет, но под давлением общественности была вынуждена заменить все уязвимые процессоры. В годовом отчёте за 1994 год компания списала до налогообложения $475 млн на обмен и утилизацию микрочипов.
Снижаем цены на выделенные серверы в реальном времени

Арендуйте выделенный сервер со скидкой до 35% и оптимизируйте расходы.
Spectre и Meltdown: архитектурные уязвимости

В начале 2018 года исследователи из Google Project Zero и нескольких университетов выявили две критические дыры в безопасности — Spectre и Meltdown. Они оказались не в ПО, а в механизмах спекулятивного исполнения процессоров Intel, AMD и других, поставив под угрозу миллиарды устройств, способных слить пароли и ключи шифрования.
- Meltdown позволял вредоносному коду обращаться к защищённой памяти ядра ОС, нарушая базовую изоляцию.
- Spectre провоцировал безопасные программы спекулятивно выполнить код, считывающий данные через побочные каналы (например, анализ кеша).
Производители ОС, браузеров и самих чипов экстренно выпустили патчи, замедлившие системы до 30%. Несмотря на отсутствие массовых атак, индустрия потратила миллиарды на аудит, обновления и внедрение смягчающих мер.
Mars Climate Orbiter: ошибка в единицах измерения

23 сентября 1999 года NASA потеряло аппарат Mars Climate Orbiter стоимостью $327 млн: вместо выхода на орбиту он сгорел в атмосфере Марса. Причина — несовместимость единиц: наземное ПО от Lockheed Martin рассчитывало импульсы двигателя в фунт-секундах, а бортовая система ожидала ньютон-секунды.
Каждая команда оказывалась в 4,45 раза слабее, чем требовалось, и из-за накопленных ошибок космический корабль приблизился к планете на десятки километров ниже расчётной высоты.
Несколько навигаторов заметили расхождение между расчётными и фактическими данными, но их замечания остались без внимания из-за формального оформления отчётов. После провала TCM-5 NASA обязало все миссии применять исключительно метрические единицы и усилило контроль интеграции данных от подрядчиков.
Ракета «Ариан-5»: экономия на тестировании обернулась взрывом

4 июня 1996 года первый запуск европейской Ariane 5 закончился взрывом на 37-й секунде, уничтожив четыре спутника миссии Cluster и приведя к потерям свыше $370 млн.
В ПО навигационной системы повторно использовали модуль от Ariane 4, не учтя изменившиеся динамические характеристики. Горизонтальная скорость превысила максимум 16-битного целого, вызвав переполнение и отказ основного, а затем резервного компьютера. Без навигации ракета утратила ориентацию и взорвалась.
После катастрофы инженеры внедрили комплексное тестирование в условиях, максимально приближённых к реальному полёту.
Boeing 737 MAX: как MCAS привёл к двум авиакатастрофам

В октябре 2018 и марте 2019 годов самолёты Boeing 737 MAX рухнули в неконтролируемое пикирование: рейс 610 Lion Air (189 жертв) и рейс 302 Ethiopian Airlines (157 жертв).
Проблема крылась в системе MCAS (Maneuvering Characteristics Augmentation System), призванной автоматически опускать нос при критическом угле атаки. Для решения задач MCAS использовала данные лишь одного из двух датчиков, и при выходе этого датчика из строя система агрессивно наклоняла нос, несмотря на попытки пилотов восстановить контроль.
После второй катастрофы регуляторы приземлили все MAX на 20 месяцев. Boeing полностью переписал логику MCAS, задействовал оба датчика и ограничил вмешательство системы, а также обновил нормативы обучения пилотов.
Therac-25: смертельная гонка состояний

С 1985 по 1987 год медицинский ускоритель Therac-25 для лучевой терапии вызвал минимум шесть передозировок радиацией, три пациента погибли. В новых моделях отказались от аппаратных блокировок в пользу программной логики, что оказалось фатальным.
Физик Фриц Хаггер выявил ошибку №54: при быстром переключении между режимами диск мог не занять корректное положение, и оператор, привыкнув к частым сбоям, нажимал «Продолжить». Без рассеивающего фильтра аппарат подавал мощный электронный луч прямо в тело пациента.
Эти примеры напоминают: любое ПО, управляющее физическими процессами, требует строгой валидации, независимого аудита и учёта человеческого фактора.



