Война

Не пропатчили: как один маленький баг угробил 28 американцев

Ни самая сильная армия в мире, ни штат программистов, ни новейшее вооружение не спасут от смерти, если в дело вмешаются математика и невнимательный кодер! Американцам пришлось прочувствовать эту истину на собственной шкуре.
Самат Кудайбергенов /
59K
26
31
827
Ни самая сильная армия в мире, ни штат программистов, ни новейшее вооружение не спасут от смерти, если в дело вмешаются математика и невнимательный кодер! Американцам пришлось прочувствовать эту истину на собственной шкуре.

Вечером 25 февраля 1991 года, уже под самый конец операции «Буря в пустыне», на американскую авиабазу в саудовском Дахране свалился иракский «Скад». Вот, казалось бы, причём здесь округление дробей?

Ракета разнесла казарму 475-го отряда квартирмейстерской службы армии США, ответственного за очистку воды. Взрыв убил 28 человек — это пятая часть всех погибших американцев за всё время войны в Заливе. Ещё около сотни получили ранения.

Последствия от попадания "скада"

«Скад» был обнаружен радаром дежурной батареи зенитного ракетного комплекса Patriot, прикрывавшей Дахран. Ракету засекли… и ничего не сумели сделать. Осталось только наблюдать, как она валится на казарму.

Как выяснилось, вину за смерть 28 человек взял на себя софт зенитного комплекса.

Давай округлим это по-быстрому

Баг в нём был простой, как кирпич. Не баг даже, а математическая фича: разработчики и военные о ней знали, и все на неё плевали, как на чепуховину ничего не значащую.

Внутренний таймер ЗРК Patriot устроен как счетчик количества интервалов времени, прошедшего с момента включения системы. Длина такого интервала — 0,1 секунды. Чтобы перевести количество этих отрезков в секунды, его, понятное дело, нужно разделить на 10. Что для этого предложили разработчики? Естественно, умножить на 0,1.

В машинной арифметике деление часто подменялось умножением на обратное число, так было проще проектировать вычислительные устройства и работали они быстрее. Метод умножения на обратное число, к слову, стар, как сама математика: его применяли ещё в древнем Вавилоне.

Теперь вторая часть Марлезонского кодирования. Числа-то двоичные.

Точного представления десятичной дроби 0,1 в двоичном виде не существует — оно может быть только приблизительным.

Поэтому бодрые наследники древнего Вавилона из корпорации Raytheon вместо десятичного 0,1 загнали в систему двоичное число 0,00011001100110011001100. Оно немногим меньше требуемых 0,1 — примерно на одну десятимиллионную. Вот на это число радостно и умножили, полагая, что проблема решена.

Кодеры действительно были правы, когда клеили этот «лейкопластырь». При расчёте параметров движения цели система оперирует близкими значениями времени с единой и очень небольшой систематической погрешностью. Поэтому никаких проблем быть не должно. Ситуацию признали нормальной для использования в реальных условиях — и забили. В таком виде комплекс и приняли на вооружение в 1982 году.

Если вчера война

А дальше? Дальше Саддам Хусейн более не смог выносить собственной крутости в одиночку и решил поделиться ею с окружающими, захватив летом 1990 года Кувейт. Саддам пацан был мутный и дерзкий, но не папуас какой, а вполне упакованный. Имелись у него и оперативно-тактические ракеты, самостоятельно модернизированные, а также химическое оружие.

Весь этот арсенал создавал проблему. Потребовалось срочно переделывать батареи Patriot для Ближнего Востока, чтобы те могли перехватывать баллистические цели, идущие со значительной скоростью — 1700 м/с и больше. А это, считай, гиперзвук; и среди аэродинамических целей, под которые первые версии Patriot рассчитывались, такие скорости не встречаются. Им больше самолёты подавай или крылатые ракеты.

Евгений Башин-Разумовский
Евгений Башин-Разумовский
Эксперт по историческим вопросам

В общей сложности на театре военных действий было развёрнуто 33 батареи Patriot. В том числе 22 батареи со 132 пусковыми установками — в Саудовской Аравии; четыре (из них две американские и две датские с 26 пусковыми установками) — в Турции; а начиная с 19 января, дополнительные силы ПВО были развёрнуты и в Израиле. Всего территорию Израиля прикрывали семь батарей: две израильские, четыре американские и одна датская, с 48 пусковыми установками.

Raytheon начал спешно улучшать систему. И, как оно бывает, доулучшался. Некое кодирующее туловище невыясненного системно-аналитического образования придумало устранить баг с неточным определением 0,1 и написало новую процедуру умножения.

Это была хорошая новость, потому что погрешность удалось снизить ещё больше. Плохая новость состояла в том, что туловище, когда переписывало старый код, вставило вызов этой процедуры не во всех случаях, где требовалось. Кое-где остался старый расчёт времени.

Вуаля! В системе завелось ДВА внутренних значения времени, используемых при расчёте РАЗНЫХ параметров. Различие между ними накапливалось тем сильнее, чем больше времени прошло с момента включения.

Теперь погрешности в математике ЗРК уже начали что-то решать, но об этом никто не думал. Потому что штатные проверки комплекса после переделки показывали, что всё ОК. Согласно программе испытаний: «Пункт 1: включили систему. Пункт 2: выставили режимы. Пункт 3: всё работает. Пункт 4: выключили. Переходим к следующему разделу».

Но никто не проводил «endurance test»: проверку на длительное дежурство на одном месте да против скоростных целей. А оно и зачем, если Patriot — это мобильный войсковой ЗРК для прикрытия боевых порядков? На одном месте ему по всем наставлениям стоять не следует, в том числе, в интересах собственной выживаемости.

Первыми за аномалию в работе комплекса зацепились не в США, а в Израиле. Развёртывающиеся боевые порядки страна прикрывать особо не собиралась, а вот собственная территория Израиль интересовала. Ну и по причине обычной национальной запасливости.

У ЗРК Patriot нет своих собственных накопителей для «логов» работы, поэтому комплексам полагались внешние. Но в армии США накопители не любили. Ходило вполне обоснованное мнение, что их софт какая-то очередная вавилонская ключница делала, и накопители периодически вешают всю систему. Поэтому операторы американских ЗРК на Ближнем Востоке их обычно не подключали, а вот в ЦАХАЛе всё сделали по инструкции.

Какой шлемазл это сделал?

Первые иракские «Скады» стартовали в сторону Израиля 18 января 1991 года. Израильские офицеры, однако, нашли время отсмотреть «логи». Уже 11 февраля от них в США прилетел первый «багрепорт»: после нескольких часов непрерывной работы ЗРК наблюдается необъяснимый дрейф параметров при переходе от режима обнаружения к сопровождению цели.

Радар при работе «на сопровождение» смотрит во вполне определенную узкую область пространства, где должна быть цель — так называемую «Range Gate Area», RGA. А ракета «Скада» быстрая, и надо чётко понимать, где она будет на следующем такте работы. Положение RGA определяется опережающим расчётом в зависимости от координат и скорости цели. А эта математика прямо завязана на точный отсчёт времени. А время у нас отсчитывается… ну, вы уже видели, как.

И с каждым часом отсчитывается всё косячнее. Израильтяне увидели, что границы окна, обсчитанные на этом косячном времени, начали ехать. Цель уже не посередине RGA, а ближе к краю, за 8 часов смещение процентов на 20 от центра окна.

Прикинули и поняли, что уже после 20 часов непрерывной работы цель вылезет за пределы окна, и тогда комплекс вообще перестанет брать цели на сопровождение, даже если видит их на обзоре. А значит, не сможет и обстрелять.

«Да ну, фигня, — отмахнулись генералы в Штатах. — У системы нормальный аптайм всего несколько часов. Зачем её вообще держать включённой постоянно? Ладно, по мере сил всё пропатчим и заапдейтим».

Надо заметить, что софтину ЗРК Patriot за тот нервный период с осени 1990 года перепатчивали уже аж шесть раз. Причем в пожарном порядке: надо было обучить аппарат противостоять иракским «Скадам» и «Аль-Хусейнам», и какая-то идиотская проблема многочасовой работы никого не волновала. Тем более, что накатывался один такой патч пару часов минимум, и всё это время комплекс должен стоять мёртвым куском железа. Кому это надо прямо во время войны?

Но 16 февраля патч таки написали и начали помаленьку ставить на комплексы. 21 февраля военное начальство, испытав нехорошее предчувствие в области собственных кресел, дополнительно разослало дежурную инструкцию для операторов ЗРК. Она состояла из одной фразы: не держите систему включённой «слишком долго», а то будут проблемы с захватом цели.

Но сколько это — «долго» — до разъяснений не снизошли.

Потом, после Дахрана, начальство оправдывалось, что полагало такое мудрое руководящее указание достаточным: догадаются, мол, сами. И вообще, война уже кончалась, все немного подрасслабились.

… Дежурная батарея «Альфа», принадлежавшая батальону, что прикрывал авиабазу Дахран, на вечер 25 февраля 1991 года имела аптайм больше четырёх суток. За этот период накопленная ошибка составляла уже 0,343 секунды. Для баллистической цели типа «Скада» это означало смещение центра RGA почти на 700 метров относительно реального положения ракеты. И это при габарите самого RGA около 300 метров.

Проще говоря, собственный софт заставлял радар смотреть в гарантированно пустое пространство, и захват наблюдаемой в обзорном режиме цели не происходил.

Ракета «Скад» своё дело сделала.

А утром 26 февраля на Дахран приехали совершенно ничего не подозревавшие офицеры с накопителями. Они привезли… патч, исправляющий ошибку. Ну, просто по планам командования именно 26 февраля батарея «Альфа» должна была получить обновку. Раньше было никак: все борта на Ближний Восток забиты — всем что-то надо.

Борьба с дятлами

Дахранский «кейс» вошел во многие курсы по проектированию безопасных программных систем, некорректная работа которых может что-то сломать или кого-то убить.

Во-первых, если вы склеили софт слюнями, и он заработал, отдавайте себе в этом отчёт. Умейте видеть пределы прочности ваших заплаток.

Во-вторых, если ваш костыль не создаёт проблем сейчас, никто не поручится, что это навсегда. Побольше думайте о режимах, в которых система может работать, и поменьше — о тех, в которых якобы должна.

В-третьих, когда вы что-то исправляете в уже работающей системе, посмотрите на её устройство сверху и подумайте, как ваши действия отразятся на том, что она ДО ВАС делала ВРОДЕ БЫ нормально.

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

Антон Железняк
Антон Железняк
Эксперт по техническим и инженерным вопросам

В общей сложности в ходе первой войны в заливе вооруженные силы Ирака запустили 88 ракет «Скад». 12 из них были выпущены по Израилю до развёртывания на его территории ЗРК Patriot, из 76 оставшихся 47 были обстреляны с расходом 158 зенитных ракет. При этом, по данным комиссии конгресса, только 86 ракет были запущены по реальным целям, а 72 — по ложным, либо по обломкам уже подбитых «Скадов», принятых за ракеты. Точное число сбитых «Скадов» оспаривается до сих пор, равно как и критерии подсчёта.

Hoвости СМИ2
«‡„ÛÁ͇...
Джеймс Бонд, посторонитесь: приключения принца Бернарда
Как стать самым скандальным человеком голландского королевского дома? Всё просто. Родиться во дворце, зиговать в Третьем рейхе, жениться на принцессе. Затем сражаться на «Спитфайре», пить с Яном Флемингом и брать откаты у «Локхид». А ещё пилотировать самолёты в алкоугаре, организуя в Африке отстрел браконьеров.
10K
17
6
232
Как стать чемпионом мира по футболу? Лайфхак от дуче
Какой приличный диктатор не любит спорт? Муссолини в этом плане был эталоном. Он показал, что не остановится ни перед чем, лишь бы выиграть ЧМ-1934. Как диктатор способствовал распространению футбола и как Италия впервые стала чемпионом — сейчас расскажем.
11K
16
6
255
Победа по-корейски: Ли Сун Син против японцев
В истории человечества были тысячи морских боёв и сражений. Но ни одно из них не было выиграно при таком безумном численном превосходстве противника, как битва в корейском проливе Мённян 26 октября 1597 года — именно тогда «Нельсон Азии», корейский адмирал Ли Сун Син, разбил японский флот.
20K
30
5
411
Раскрыта тайна гибели генсека ООН Дага Хаммаршёльда в 1961 году
Причина авиакатастрофы 18 сентября 1961 года в Северной Родезии долгое время оставалась неизвестной. Считалось, что самолёт, унёсший жизни шестнадцати человек, в том числе генерального секретаря ООН Дага Хаммаршёльда, разбился из-за ошибки пилота. Новые свидетельства проливают свет на тайну — генсека сбил бельгийский лётчик Ян Ван Риссегем.
9.3K
18
2
336
«Горячий день»: как полковник Кутепов остановил немецкие танки под Могилёвом

В наше время фейковых новостей мы привыкли, что вчерашние сенсации «вдруг» оказываются сплетнями, а «шокирующие кадры» — постановкой. Случалось подобное и раньше — про героический бой приятнее сочинять в тёплой редакции. Но настоящие журналисты всегда считали по-другому. В июле 1941-го в «Известиях» вышла статья Симонова, который только что вернулся из-под Могилёва.

20K
45
39
653
НКВД в бою: чем на самом деле занимался народный комиссариат?
Военная клюква 90-х годов «раскрыла» всем глаза: на войне части НКВД занимались главным образом сидением в заградотрядах и постреливанием в спины наступавших бойцов Красной армии. Но имеет ли этот образ хоть что-то общее с реальностью? Попробуем разобраться.
17K
33
14
668
Первая победа Ататюрка: путь к вершине

У многих великих людей есть наполеоновский «Тулон» — первая крупная победа, открывшая дорогу на вершину славы. Для Мустафы Кемаля таким стало утро 25 апреля 1915 года среди скал Галлиполийского полуострова.

16K
20
6
404
Кто кого: Грешилов против немецкого конвоя
Каким должен быть командир подлодки? Решительным, отважным, расчётливым. Всегда готовым атаковать. Таким и был командир Щ-215 Михаил Грешилов, который после войны заочно удостоился комплимента от немецкого гросс-адмирала.
19K
21
5
354
Топ-5 боевых Виндзоров: самые воинственные члены британской королевской семьи
Члены британского монаршего дома до сих пор чтят военные традиции. Когда боевые трубы зовут в поход, они седлают коней, разворачивают башни линкоров или поднимают в небо вертолёты. В общем, не отсиживаются в тылу. По такому поводу мы составили список самых воинственных Виндзоров.
12K
16
3
238
Битва за Радзехов: анти-Расейняй Великой Отечественной

«Советские КВ и Т-34 были неуязвимы для немецкой артиллерии летом 1941 года!» — такие утверждения можно встретить и сегодня. Обычно дальше вспоминают прибалтийский Расейняй и одинокий КВ против 4-й танковой группы. Но ход боевых действий подсказывает, что была и полная его противоположность. Имя ей — Радзехов.

45K
62
34
719
Если бы Союз проиграл: 5 альтернативно-исторических мифов о будущем Третьего рейха

Что было бы, если бы СССР проиграл Великую Отечественную? Как заявляют фанатичные любители немецкого орднунга, в этом случае Германия стала бы непобедима, завоевала бы весь мир, вышла бы первой в космос… Вот только такая оценка не выдерживает критики. WARHEAD.SU подробно разобрал пять излюбленных тезисов рейхофилов.

25K
49
271
703
Рейд на Вильнюс: бессмысленный и беспощадный

Платформы жалобно скрипели под весом «пантер». Эшелоны с танками неслись в Прибалтику. Здесь в середине июля 1944 года немцы хотели остановить неудержимый бег Красной армии к Восточной Пруссии. Однако первая задача «пантер» оказалась неожиданной и сложной — вытащить окружённый гарнизон Вильнюса. Что же у них получилось?

24K
58
19
550
Роковая ошибка генерала Милютина: как армейская реформа разрушила империю

Принято считать, что военные реформы Дмитрия Милютина были очень успешны. По больше части с этим можно согласиться. Но не допустил ли учёный генерал роковую ошибку, ценой которой стало падение Российской империи? WARHEAD.SU пытается разобраться.

21K
15
35
235
Военное сотрудничество СССР и Германии: как это было на самом деле

«Нацистский меч ковался в СССР!». Или не ковался? Да и вообще — как так вышло, что мы помогали немцам? Что происходило до начала Второй мировой с военными отношениями СССР и Германии — в нашей статье.

21K
44
98
483
Феномен помпы с довеском: нестареющая классика или прогресс?

Классическая схема помпового ружья — вот, что ценят истинные любители хорошей стрелковки! Или всё же нет, и пора прислушаться к новой прогрессивной моде и сменить привычную компоновку оружия? Мы решили разобраться.

20K
19
20
46
«Невозможная победа»: 12 «школьных» заблуждений о сражении при Мидуэе

Мидуэй стал ответом японцев на рейд Дулиттла, американцы серьёзно уступали в численности противнику, а победу США обеспечила их разведка. Среди сражений на Тихом океане Мидуэй по количеству мифов о нём опережает даже Пёрл-Харбор. Попробуем разобраться с самыми известными из них.

20K
51
41
264
«Горячий день»: как полковник Кутепов остановил немецкие танки под Могилёвом

В наше время фейковых новостей мы привыкли, что вчерашние сенсации «вдруг» оказываются сплетнями, а «шокирующие кадры» — постановкой. Случалось подобное и раньше — про героический бой приятнее сочинять в тёплой редакции. Но настоящие журналисты всегда считали по-другому. В июле 1941-го в «Известиях» вышла статья Симонова, который только что вернулся из-под Могилёва.

20K
45
39
653
Один в Афганистане: последний бой Джона Чэпмена

Раненый американский спецназовец в одиночку принял последний бой против чеченцев в горах Афганистана. Но много лет никто даже не подозревал об его подвиге — пока не всплыло одно секретное видео.

19K
39
16
496
10 «школьных» заблуждений о русской военной истории
На Куликовом поле не было пехоты, стрельцы не воевали в красном, Карл XII не нападал на Россию!
163K
77
44
897
Советская пехота держит удар: как растерялись «тигры»

«Разгромить!» — такой безапелляционный приказ получил свежий 507-й тяжёлый танковый батальон «тигров». Его машины 21 марта 1944 года выгрузились с платформ в районе Львова прямо к началу нового наступления Красной армии. Ожидания немецкого командования по поводу чудесной силы «тигров» оказались обмануты самым подлым образом.

67K
65
18
742
Острее бритвы: как правильно точить ножи

Пришли на шашлыки, а тупой «дедушкин» ножик не режет мясо? Вовремя затачивать надо было! Чтобы вы больше не попали впросак в такой ситуации — наша статья о том, как же правильно «лечить» затупившиеся клинки.

67K
32
25
467
Я только спросить: 10 наивных вопросов о ваффен СС
В ваффен СС брали настоящих арийцев с безупречной родословной? Эсэсовцы были помешаны на оккультизме? Вермахт и СС конкурировали? WARHEAD.SU собрал самые простые и одновременно сложные вопросы об организации войск СС.
51K
39
76
361
Стройка века по-немецки: Атлантический вал

«Мы построим свою линию укреплений, с пушками и адским пламенем!» — решили немцы в 30-е годы, обиженно наблюдая, как тем же самым вовсю уже занимается весь остальной мир. Немецкая пропаганда утверждала, что Атлантический вал неприступен и любая попытка высадки обречена. Но союзники решили, что этот вал не так страшен, как его малевал доктор Геббельс.

47K
41
10
432
Битва за Радзехов: анти-Расейняй Великой Отечественной

«Советские КВ и Т-34 были неуязвимы для немецкой артиллерии летом 1941 года!» — такие утверждения можно встретить и сегодня. Обычно дальше вспоминают прибалтийский Расейняй и одинокий КВ против 4-й танковой группы. Но ход боевых действий подсказывает, что была и полная его противоположность. Имя ей — Радзехов.

45K
62
34
719
Бомбардировщик «Сотка»: бесполезный шедевр

Великий самолёт, превосходящий все аналоги, но погубленный интригами похлеще, чем в «Игре престолов». Речь идёт, разумеется, о бомбардировщике Сухого Т-4 «Сотка». Многие считают провал этой программы чуть ли не трагедией государственного масштаба. Так ли это и кого можно обвинить? Мы разобрались.

45K
34
9
466
Плавучие ветераны Второй мировой: самые старые действующие военные корабли
Вторая мировая была настолько давно, что корабли, принимавшие в ней участие, уже давно превратились в плавучие музеи. Но не все! Некоторые всё ещё стоят в строю и гордо несут флаги своих стран. Мы собрали для вас подборку самых интересных кораблей-ветеранов.
44K
21
11
81
Ликбез: численность средневековых армий

Ничто не вызывает столько споров у историков, как вопрос о численности средневековых армий. По страницам серьёзных монографий и научно-популярных книг ходят цифры, порой очень плохо сопоставимые с реальностью. Так сколько же воинов могло выставить средневековое государство? WARHEAD.SU разобрался.

44K
39
53
591
10 «школьных» заблуждений о русской военной истории
На Куликовом поле не было пехоты, стрельцы не воевали в красном, Карл XII не нападал на Россию!
163K
77
44
897
Взгляд Запада: каким видели советский спецназ в Афганистане

Советского спецназа на Западе очень боялись — и заслуженно. О наших бойцах писали в зарубежной прессе, рассказывали душманы. За Spetsnaz пристально следили за океаном. О подвигах бойцов в Афганистане ходило много легенд. Какие из них правда? Сейчас расскажем.

95K
54
11
869
Ликбез: зачем танку бревно
Танк — это вам не шуточки, а грозная боевая машина, обвешанная орудиями смерти! Но кроме привычных всем пушек, пулемётов и гусениц на нём частенько можно увидеть самые странные навороты. И по степени непонятности одно из первых мест занимает обычное бревно. Казалось бы, зачем оно на танке? Мы разобрались.
78K
37
27
457
Тест: Какой вы военачальник?
Всегда мечтали стать Верховным Главнокомандующим, но что-то мешало? Опыт знаменитых военачальников прошлого поможет подготовиться как следует и избежать ошибок. Пройдите тест WARHEAD.SU и узнайте, какой стиль командования войсками ближе именно вам.
76K
6
3
276
Гиганты в тупике
Мы не увидим их в небе
Бомбардировщики — самые большие, сложные и дорогие боевые самолёты своего времени. Ведь доставлять на территорию противника смертельный груз — это задача, на которую сил и средств не жалеют. Однако, попытка внедрения даже самых амбициозных идей часто даёт осечку. Взглянем на чудовищ, которых породил временный сон разума некоторых конструкторов.
72K
30
12
172
Рожок, бубен и мясорубка: что поможет перезарядить быстрее?

Запас патронов бывает двух видов: «мало» и «всё равно мало». Однако просто забить рюкзак патронами — тоже не выход. Процесс перезарядки для противника вовсе не повод по-джентльменски прекратить стрельбу. Перезаряжаться желательно как можно быстрее и реже, а патроны таскать уже «готовыми к употреблению». Что же для этого придумали?

68K
27
17
346
Советская пехота держит удар: как растерялись «тигры»

«Разгромить!» — такой безапелляционный приказ получил свежий 507-й тяжёлый танковый батальон «тигров». Его машины 21 марта 1944 года выгрузились с платформ в районе Львова прямо к началу нового наступления Красной армии. Ожидания немецкого командования по поводу чудесной силы «тигров» оказались обмануты самым подлым образом.

67K
65
18
742
Острее бритвы: как правильно точить ножи

Пришли на шашлыки, а тупой «дедушкин» ножик не режет мясо? Вовремя затачивать надо было! Чтобы вы больше не попали впросак в такой ситуации — наша статья о том, как же правильно «лечить» затупившиеся клинки.

67K
32
25
467
Мгновение до апокалипсиса: что происходит внутри термоядерной бомбы
Что происходит внутри дошедшей до цели термоядерной боеголовки? Много удивительных и красивых, с точки зрения физики, вещей. Правда, перед самым апокалипсисом о них вряд ли кто-нибудь подумает, поэтому мы расскажем о зарождении ядерного взрыва прямо сейчас.
65K
32
28
679