Читаем Мифы о безопасном ПО: уроки знаменитых катастроф полностью

Наконец, как ни парадоксально это звучит, даже если бы компьютерные системы действительно были надежнее «традиционных», то это вовсе не обязательно означает, что они обеспечивают большую безопасность. Дело в том, что надежность ПО традиционно определяется степенью его соответствия зафиксированным в спецификациях требованиям; однако, часто бывает так, что ПО делает именно то, что ему и было предписано, и авария Ariane 5 классический тому пример: и злополучное вычисление посторонней для полета величины горизонтального отклонения Инерциальной Платформы, и реакция на него вплоть до выведения из строя всех навигационных систем и бортовых компьютеров все это случилось в полном соответствии с Требованиями, которые были частично унаследованы от Ariane 4 и не отражали новых реальностей.

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

Фактически любая сложная программная система при определенных обстоятельствах способна вести себя неожиданно для разработчиков и/или пользователей. Вероятность такого поведения, особенно если оно может привести к тяжелым последствиям, следует реалистически оценивать и предусматривать специальные средства защиты, в том числе уже не на уровне самого ПО, а на уровне всей системы. Собственно, авария с Ariane 5 продемонстрировала это в полной мере: реагируй система на выброшенное исключение не столь радикально, аварии бы не произошло ведь сам полет проходил нормально, но этот «глобальный контекст» просто не принимался во внимание!

Аналогично, катастрофические последствия при использовании Therac-25 наступили не столько из-за ошибок, допущенных в ПО, сколько вследствие того, что на аппаратном уровне не было предусмотрено защиты против этих ошибок.

Шлейф программных ошибок тянулся к Therac-25 от ранних версий этого сложного программно-аппаратного комплекса, но в предыдущей модели Therac-20 надлежащие аппаратные защитные механизмы были задействованы от них отказались по соображениям достижения большей производительности. К тому же программных ошибок оказалось много: в каждом конкретном инциденте проявлялась одна из них, ее исправляли затем следующий инцидент (уже со смертельным исходом) показывал, что исправлено не все. Безопасность это свойство всей системы, а не только ее программного компонента.

Эпитафия

Очевидный урок: приводящие к катастрофическим последствиям дефекты в ПО являются результатом пренебрежения хорошо структурированными и стандартизованными инженерными методами и технологиями, которые, впрочем, должны применяться в контексте контроля всех аспектов разработки и функционирования ответственных систем, включая «человеческий фактор». К сожалению, далеко не всем понятно, что разработка программно-аппаратных систем это именно инженерный процесс, требующий продуманной и поставленной технологии и опирающийся на исполнителей высокой квалификации. Об этом не устают напоминать классики (например, Вирт[13]), но слышат ли их?

На наших глазах повышается сложность программно-аппаратных систем, традиционно не относящихся к разряду mission-critical. е за горами время, когда на массовый потребительский рынок начнут поступать программные комплексы, дефекты в которых могут оказаться крайне неприятными для неготовых к принятию риска «простых» граждан. В конце концов, даже обычный утюг способен вызвать пожар и наверное, какой-нибудь программно-управляемый супер-кухонный-комбайн XXI века может (при ПО надлежащего «качества») повести себя неожиданно (а то и опасно) для домохозяйки.

Между тем, сегодня на массовом рынке программных продуктов стандарты качества сознательно занижены (о чем мне уже доводилось писать применительно к производственной культуре Microsoft[14]). Торжествует «good enough software», когда критерии качества не имеют столь высокого приоритета, как удобство пользования, простота освоения и дешевизна и все это в сочетании с избыточной функциональностью, пожирающей компьютерные ресурсы, и отсутствием у производителя стимула выбрасывать на рынок действительно отлаженный продукт. Весьма взрывчатая смесь. В обозримом будущем мы можем оказаться свидетелями катастрофических ситуаций, в которые попадут пользователи массовых продуктов, и, похоже, что только это способно сдвинуть ситуацию с ее нынешнего печального положения.

Перейти на страницу:

Похожие книги

Память. Пронзительные откровения о том, как мы запоминаем и почему забываем
Память. Пронзительные откровения о том, как мы запоминаем и почему забываем

Эта книга предлагает по-новому взглянуть на одного из самых верных друзей и одновременно самого давнего из заклятых врагов человека: память. Вы узнаете не только о том, как работает память, но и о том, почему она несовершенна и почему на нее нельзя полностью полагаться.Элизабет Лофтус, профессор психологии, одна из самых влиятельных современных исследователей, внесшая огромный вклад в понимание реконструктивной природы человеческой памяти, делится своими наблюдениями над тем, как работает память, собранными за 40 лет ее теоретической, экспериментальной и практической деятельности.«Изменчивость человеческой памяти – это одновременно озадачивающее и досадное явление. Оно подразумевает, что наше прошлое, возможно, было вовсе не таким, каким мы его помним. Оно подрывает саму основу правды и уверенности в том, что нам известно. Нам удобнее думать, что где-то в нашем мозге лежат по-настоящему верные воспоминания, как бы глубоко они ни были спрятаны, и что они полностью соответствуют происходившим с нами событиям. К сожалению, правда состоит в том, что мы устроены иначе…»Элизабет Лофтус

Элизабет Лофтус

Научная литература / Психология / Образование и наука
Она смеётся, как мать. Могущество и причуды наследственности
Она смеётся, как мать. Могущество и причуды наследственности

Книга о наследственности и человеческом наследии в самом широком смысле. Речь идет не просто о последовательности нуклеотидов в ядерной ДНК. На то, что родители передают детям, влияет целое множество факторов: и митохондриальная ДНК, и изменяющие активность генов эпигенетические метки, и симбиотические микроорганизмы…И культура, и традиции, география и экономика, технологии и то, в каком состоянии мы оставим планету, наконец. По мере развития науки появляется все больше способов вмешиваться в разные формы наследственности, что открывает потрясающие возможности, но одновременно ставит новые проблемы.Технология CRISPR-Cas9, используемая для редактирования генома, генный драйв и создание яйцеклетки и сперматозоида из клеток кожи – список открытий растет с каждым днем, давая достаточно поводов для оптимизма… или беспокойства. В любом случае прежним мир уже не будет.Карл Циммер знаменит своим умением рассказывать понятно. В этой важнейшей книге, которая основана на самых последних исследованиях и научных прорывах, автор снова доказал свое звание одного из лучших научных журналистов в мире.

Карл Циммер

Научная литература