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

Катастрофы с Ariane 5 и Therac-25, сами по себе беспрецедентные, конечно же не являются уникальными. Можно привести длинный список больших и малых инцидентов в системах, относящихся к классу mission-critical, произошедших по причине дефектов в программном обеспечении и проявившихся только в режиме эксплуатации. Конечно, большинство инцидентов так или иначе расследовалось и осмыслялось. К сожалению, специфика «ответственных» систем часто такова, что это осмысление не становилось достоянием всего программистского сообщества поэтому, неудивительно, что в разное время и в разных местах повторялись сходные ошибки. Соответственно, слишком многие приобретают специфические знания и опыт на практике, методом проб и ошибок, которые как лишний раз показывает разобранные инциденты обходятся дорого.

Что же может предложить в этом отношении наука? Только недавно общесистемные и общеинженерные дисциплины «Безопасность Систем» (System Safety) и «Управление Рисками» (Risk Management) начали настраиваться на ту выраженную специфику, которую имеют программно-аппаратные комплексы в контексте их разработки, эксплуатации и сопровождения. Крупнейший специалист в данной области профессор Вашингтонского Университета энси Левесон (Nancy Leveson) ввела даже специальный термин Safeware, который вынесла в название своей книги[8] пока единственной в мировой литературе, где систематически рассматриваются вопросы безопасности и рисков в компьютерных системах. В частности, в этой книге разбираются некоторые распространенные мифологические представления о ПО и связанных с ним безопасности и рисках, бытующие на фоне все более широкого использования сложных систем в потенциально опасных приложениях. Остановимся на некоторых из них.

О «дешевом и технологичном» ПО

Бытует мнение, что стоимость программно-аппаратных систем обычно меньше, чем аналоговых или электромеханических, выполняющих ту же задачу. Однако, это миф, если, конечно, не говорить о «голом» hardware и однажды оплаченном ПО, сработанном «на коленке». Стоимость написания и сертификации действительно надежного ПО очень высока; к тому же необходимо принимать во внимание затраты на сопровождение опять же такое, которое не подрывает надежности и безопасности. Показательный пример: только сопровождение относительно простого и не очень большого по объему (около 400 тыс. слов) программного обеспечения для бортового компьютера, установленного на американском космическом корабле типа Shuttle, стоит NASA 100 млн. долл. год.

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

Изменения в программных модулях легко выполнить технически, однако трудно сделать это без внесения новых ошибок. Необходимые для гарантий безопасности верификация и сертификация означают новые большие затраты. К тому же, чем длиннее время жизни программы, тем более возрастает опасность вместе с изменениями внести ошибки например, потому, что некоторые разработчики с течением времени перестают быть таковыми, а документация редко является исчерпывающей. Оба примера что с Ariane 5, что с Therac-25 вполне подтверждают эту точку зрения. Между тем, масштабы изменений в ПО могут быть весьма велики. Например, ПО для космических кораблей типа Shuttle[9] за 10 лет сопровождения, начиная с 1980 г., подверглось 14-ти модификациям, приведшим к изменению 152 тысяч слов кода (полный объем ПО 400 тысяч слов).

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

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

Мысль о том, что использование имеющего длительную историю и уже зарекомендовавшего себя с положительной стороны модуля, равно как и «коробочного» продукта, дает гарантии отсутствия в нем ошибок, весьма естественна с точки зрения «здравого смысла» и способна притупить бдительность. На самом деле повторное использование программных модулей может и понизить безопасность по той простой причине, что данные модули изначально разрабатывались и отлаживались для использования в ином контексте, а спецификация обычно не дает исчерпывающего отчета о всех видах возможного поведения модуля (произошедшая с Ariane 5 авария имеет основной причиной именно повторное использование модуля с некорректной для изменившегося контекста спецификацией).

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

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

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

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

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

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

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

Карл Циммер

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