Право и политика в компьютерном круге — страница 14 из 23

5. Д. Парнас был назначен Организацией по осуществлению СОИ членом консультативного комитета «по программированию управления боевыми операциями». Ознакомившись подробнее с тем, что ждет от него Организация по осуществлению СОИ, Д. Парнас отклонил сделанное ему предложение, одновременно представив восемь технических документов, которые объясняли, почему программа не сможет работать так, как требуется.

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

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

Типичные бытовые программы, как правило, насчитывают не более нескольких сот команд, дающих указание компьютеру выполнить одну из серии операций по обработке данных или какое-либо управляющее действие. Эти программы сразу после составления содержат десятки, а то и сотни дефектов. Только неоднократное использование, проверка всех возможных комбинаций могут помочь выявить дефекты. Признано, что программа, требуемая для системы «звездных войн»6, будет состоять минимум из десяти миллионов команд, хотя некоторые специалисты полагают, что их количество приблизится к ста миллионам. Представьте, что надо написать книгу объемом в десять миллионов слов. Если вы неправильно употребите несколько из них, это неприятно, но страшного ничего не случится. В программе же все «слова» должны быть поставлены безошибочно и действовать во взаимосвязи.

Можно провести такое сравнение. Челночному космическому кораблю типа «шаттл» требуется около трех миллионов команд, включая компьютеры на Земле, управляющие запуском и следящие за полетом из Хьюстона. Эта программа разрабатывалась в течение многих лет. Она бесконечно испытывалась на Земле. «Она позволила провести много успешных полетов челночного корабля, и тем не менее случаются неудачные запуски из-за дефектов в программе, — говорит Д. Парнас. — Дело в том, что при всех испытаниях ни разу не пришлось столкнуться с тем сочетанием обстоятельств, которое выявило дефект, существовавший все время. Сотрудники Организации по осуществлению СОИ говорят, что они испытывают все программы, прежде чем заложить их. Но что если они не смогут предугадать в точности все обстоятельства, с которыми столкнется программа?.. Ведь нельзя вернуться назад, устранить недостаток и снова начать ядерную войну»7.

Трагическая гибель «Челленджера» подтвердила ненадежность компьютеров: в течение по меньшей мере пятнадцати секунд до взрыва они не сигнализировали об опасности. Но эта катастрофа выявила и еще один фактор риска, существо которого предельно точно сформулировано в Заявлении Всемирного Совета Мира. В нем, в частности, говорится:

«Размышляя о происшедшей трагедии, мы не можем не задаться вопросом: каким был бы результат этого несчастного случая, если бы он произошел в космосе после развертывания там ударных вооружений? Во время мирных космических полетов какая-то техническая неполадка или ошибка в расчетах может быть выявлена и исправлена в дальнейшем, но нарушение функционирования военных космических объектов может лишить нас будущего. Ослепительная вспышка над Флоридой болью отозвалась в наших сердцах. Но представим себе, что эта вспышка обнаружена военным роботом, который лишь замерит ее интенсивность и подаст сигнал к началу нападения. В этом случае беспощадные лазерные лучи, направляемые компьютером, не знающим колебаний, уничтожат искусственные спутники, самолеты, корабли и заставят запылать города один за другим»8.

В самом деле, кому в такой ситуации может быть точно известно, был ли такой взрыв результатом неисправности систем корабля или он был уничтожен противоспутниковым оружием? Собственно, это так и останется для всех неизвестным, поскольку на взрыв моментально среагировали бы компьютеры, управляющие системой развернутых в космосе вооружений. От них поступила бы только одна команда — задействовать эти вооружения. «Кто вообще может поручиться, что тогда может произойти? — сказал М. С. Горбачев на встрече с представителями международного форума ученых за прекращение ядерных испытаний. — Сейчас пока еще летают десятки спутников и космических кораблей, но то и дело происходят всякого рода чрезвычайные происшествия с ними. А если пойдут эшелоны военных систем? Вычислительная техника ими управляет, выдает информацию, но она не занимается тем, по каким причинам что-то там происходит. В результате „решения”, от которых зависят судьба и жизнь миллионов, будут приниматься не на политическом, а на техническом уровне. Вся цивилизация окажется заложником техники»9.

Программисты никогда не могут быть вполне уверены в результатах проверок. Небольшие ошибки, которые могут привести к хаосу во всей системе, — их вечный бич. Если программа состоит «всего» из миллиона команд, «проверка всех, вариантов заняла бы всю жизнь всех людей, которые до сих пор жили на земле», — отмечает Джоуэл Флайсс, президент южнокалифорнийской фирмы «Пропрайетари сафтуэр системз»10.

В вычислительных центрах всего мира, где работают со сложными моделями, ЭВМ всегда являлась предметом бесконечных шуток и подозрений в связи с нечистой силой. «Когда беседуешь с людьми, составляющими огромные программы, — признается Д. Парнас, — складывается впечатление, что разговариваешь с социологами. Они скажут вам, что, когда они запускают свою программу, она делает странные вещи, которые невозможно предугадать… Задаешь им вопрос, что сделает их программа в такой-то и такой-то ситуации, а они отвечают: „Не знаю, давайте испробуем”»11.

О том, насколько уязвимым будет математическое обеспечение системы СОИ, свидетельствуют следующие примеры:

когда в 1979 году американский космический зонд, запущенный на Венеру, не достиг своей цели, в космосе пропал почти миллиард долларов. Причина: в программе коррекции курса зонда запятая была спутана с двоеточием;

в 1983 году компьютер, принадлежащий местным органам власти, стал причиной наводнения в юго-западной части США. В компьютер были введены неверные данные о погоде, в результате чего он дал ошибочный сигнал шлюзам, перекрывающим реку Колорадо;

один из вариантов навигационной программы для истребителя «F-16» привел бы к тому, что всякий раз, когда самолет перелетает экватор, он будет переворачиваться. Эта слабость была выявлена при компьютерном испытании модели, но многие менее серьезные ошибки остаются невыявленными;

крупнейшая американская телефонная компания «Америкэн телефон энд телеграф» подвергает программное обеспечение своей техники самым сложным испытаниям. Тем не менее ее телефонная сеть частично вышла из строя, когда в этой якобы сверхнадежной схеме вдруг выявилась ошибка. Эта ошибка на протяжении многих лет была «спящей», но при определенном стечении случайностей дала о себе знать12.

Еще одним источником ошибок служат постоянно ожидаемые изменения характеристик собственных систем оружия и оружия противника и приведение программного обеспечения СОИ в соответствие с ними. Программному обеспечению телефонной сети не приходится выдерживать нападений со стороны противника, обладающего новейшей техникой. Помехи неприятны во всех случаях, но в СОИ они могут привести к катастрофе. «Мы не можем позвонить противнику по телефону и попросить его приостановить свой удар, потому что нам нужно найти ошибку в программном обеспечении, — говорит Д. Парнас. — Если другая сторона не будет сотрудничать и не скажет нам, на какие качества обратить внимание, алгоритмы опознавания, включенные в программу, могут оказаться неправильными»13.

СОИ является провоцирующей системой в том смысле, что, когда она будет развернута, СССР вынужден будет ответить системой «анти-СОИ». Она совершенно необязательно будет аналогом американской системы, но здесь вмешивается еще один фактор — фактор взаимодействия. «Вероятность катастрофы повышается еще и потому, что в данном случае надо рассматривать совокупность двух автоматизированных систем, не согласованных между собой, противостоящих друг другу, — говорит известный советский специалист по космической технике академик Б. В. Раушенбах. — По правилам отработки такого рода систем надо провести совместные натурные испытания. В каком-либо мирном международном проекте это было бы логично. Но в данном случае это же невозможно! США не дадут Советскому Союзу свою автоматизированную систему, чтобы он приспосабливал под нее свои ответные меры. И наоборот. Таким образом, будут работать две неотлаженные, несогласованные системы. А в таких системах вероятность отказов еще большая. А это означает не только то, что опасным образом падает надежность обеих технических систем, это означает, что увеличивается вероятность случайного возникновения войны»14.

Проект СОИ считают ошибочным даже те, на чье мнение в первую очередь должны были бы оказывать влияние профессиональные предубеждения. Назовем, например,