Страница:
– Кто-нибудь запускал «демона»? – спросил он у находившихся в «аквариуме» – комнате 199В в отделе экспериментальной вычислительной техники.
Люди отрицательно покачали головами. Затем кто-то показал на экран с программой, контролировавшей состояние факультетских компьютеров. Лэпсли пригляделся и обнаружил, что многие в Беркли пытаются подключиться к компьютерам. Он решил, что это попытка взлома. Минимум раз в год кто-нибудь пытался взломать компьютеры в Кори-Холле. Без этого учебный год считался прожитым зря.
Кем бы ни был взломщик, он явно сосредоточился на своем деле, раз за разом пробуя подключиться к компьютерам Беркли. Лэпсли начал быстро записывать имена машин, с которых шли попытки взлома, но был поражен, увидев, что они мелькают быстрее, чем он успевал их переписать. Собственно, данные появлялись и скатывались с экрана так быстро, что он не успевал их прочесть. Лэпсли понял, что взломщик вовсе не человек. Это была программа. Когда она не работала как демон, она работала под именами других пользователей.
Программа продолжала таранить электронные врата Беркли. Хуже того, когда Лэпсли попробовал справиться с попытками взлома, он обнаружил, что они происходят быстрее, чем он может их блокировать. И к этому моменту непрерывно атакуемые машины Беркли стали замедлять темп работы по мере того, как дьявольский пришелец пожирал все больше и больше времени обработки данных. Машины были перегружены, они зависали или просто останавливались, не реагируя на команды. И хотя рабочие станции были установлены так, что автоматически начинали опять работать после аварийного прерывания, стоило им включиться, как вторжение возобновлялось. Компьютерный вирус атаковал университет.
Лэпсли позвонил программисту Майку Карелсу, который находился в ста ярдах от него в Эванс-Холле, внушительной башне из бетона, где размещался факультет компьютерных наук. Карелс был главным программистом в группе исследования компьютерных систем и больше всех знал о разработанной в Беркли версии операционной системы UNIX, широко распространенной в университетах и научно-исследовательских институтах. Если кто-то и мог дать в такой ситуации хороший совет, так только Карелс. В ответ Лэпсли услышал только короткий, вымученный смешок и «Хм, значит, у вас то же самое?».
Через полчаса напряженных попыток разобраться с таинственным чужаком обнаружилось, что программа вырвалась за пределы Беркли. Питер Йе, работавший с Лэпсли, подключился к компьютеру исследовательского центра NASA в Эймсе, расположенного в 50 милях к югу, и увидел ее там. То же самое было в университетском городке в Сан-Диего. Когда позвонил администратор сети из Национальной лаборатории в Ливерморе, столкнувшийся с программой на своих машинах, уже не оставалось сомнений, что это не только их проблема. Вирус распространился по всей сети Internet.
Люди, которые занимались компьютерными сетями, установленными в университетах и научно-исследовательских центрах, потратили много лет на то, чтобы подготовиться ко всякого рода случайностям. Не один год компьютерщики обсуждали теоретическую возможность создания программы, свободно перемещающейся по сети. Но никто не был готов к массированной атаке 2 ноября 1988 года.
По всей Америке компьютеры один за другим ощутили присутствие программы-шатуна. Около 18:30 администраторы машин Rand Corporation в Санта-Монике, знаменитом мозговом центре, где Дэниэл Элсбсрг когда-то снимал копии с пентагоновских документов, заметили, что их машины необычно медлительны. Оказалось, что в сети идет прогон программы, который пожирает время процессоров и замедляет компьютеры почти до полной остановки. Спустя 45 минут на другом конце страны, в Кэмбридже, Массачусетс, подверглись нападению компьютеры Лаборатории искусственного интеллекта MIT. Почти сразу же после вторжения в MIT вирус поразил Национальную Ливерморскую лабораторию и компьютер Массачусетского университета. Затем он вклинился в Стэнфорд, Принстои и Национальную лабораторию в Лос-Аламосе, Нью-Мексико. Как только программа проникала в компьютер, она тут же распространялась на другие компьютеры, очень напоминая настоящий вирус На некоторых машинах были сотни одновременно работающих копий, замедлявших их вплоть до остановки. И если вирусу не удавалось проникнуть в новый компьютер, он так ломился в электронные двери, что одного этого часто оказывалось достаточно, чтобы парализовать машину. И даже после того, как вирус уничтожали, он почти немедленно возникал вновь. Более того, вирус, стоило ему попасть на рабочую станцию, таинственным образом находил новые компьютеры для атаки. Всю ночь вирус скакал по сети взад-вперед, сея хаос везде, где приземлялся. По всей стране в два, в три, в четыре часа ночи системные администраторы в ответ на отчаянные звонки дежурных операторов мчались в свои офисы, чтобы вернуть контроль над машинами. Другие обнаруживали неладное, пытаясь из дому подключиться к сети. Однако многие не подозревали о вирусе до тех пер, пока, придя в четверг утром на работу, не обнаруживали компьютеры заблокированными. Программисты Иллинойского университета были уверены, что им придется с нуля восстанавливать программное обеспечение для всего университетского комплекса.
Самым скверным было то, что это вполне мог оказаться «троянский конь» – программа внешне невинная, но содержащая код, изменяющий или уничтожающий информацию. Системные администраторы в одной аэрокосмической лаборатории в Сан-Диего были так напуганы такой перспективой, что стерли все данные со своих компьютеров и восстановили систему с последних резервных копий.
Когда незадолго до полуночи программа появилась на компьютерах военной лаборатории баллистических исследований в Мэриленде, системные администраторы решили, что это вторжение противникаю. И поскольку программа пришла по сети, они испугались, что она может снять секретную информацию по всей сети. Предположив самое худшее, Майк Муус, главный программист лаборатории, сделал то, что уже сделали десятки других администраторов по всей Internet, – отключил свои компьютеры от сети. Лаборатория оставалась отрезанной от сети почти неделю.
Такие меры, как отключение от сети, не давали программе ни войти, ни выйти, но, к несчастью, их побочным следствием стало разъединение людей, привыкших пользоваться услугами электронной связи. Мало кому пришло в голову хвататься за телефон, да и те, кто это сделал, были в замешательстве: электронная сеть оказалась единственным средством коммуникации для большинства компьютерных экспертов, которые редко беспокоились о том, чтобы сообщать свои телефоны.
Пожалуй, единственным местом, где могли попытаться справиться с такой необычной и тревожной ситуацией, был Беркли. В стенах этого университета родилась та самая версия операционной системы UNIX, куда метила бродячая программа, когда вломилась в сеть. За вечер стало ясно, что таинственный чужак нацелен на компьютеры фирм Sun Microsystems и Digital Equipment Corporation, два наиболее распространенных компьютера в Internet.
Через 15 минут после того, как Лэпсли впервые заметил программу, она прорвалась уже как минимум на 30 рабочих станций Беркли. Из ее действий явствовало, что это разборчивая бестия, цель которой – машины, имеющие связь с как можно большим количеством других систем. Она использовала простые, быстрые и сильнодействующие способы взлома. Два из компьютеров Беркли были особенно лакомыми кусочками. Один CSGW, который был шлюзом в локальную сеть университетского городка, – накрылся после появления десятков копий вируса. Второй – UCBVAX, который был главным шлюзом в Internet, сделал то же самое. Похоже, что заражение такого жизненно важного органа имело стратегическую ценность для программы, во много раз увеличивавшей таким образом число компьютеров, которые теперь могла достать просто за одну пересылку. Так что атаки на UCBVAX не прекращались. Все же команда защитников Беркли высказалась против отключения компьютера от сети. Они не хотели признавать поражение. Принять вызов, решили они, значит оставаться подключенными к сети и уничтожить вирус.
Первым делом надо было зафиксировать мгновенное состояние программы во время прогона, то есть поймать ее в стоп-кадр и затем исследовать. Тогда можно было бы изучить ее и попытаться понять, что же эта программа делает. Однако большая часть программы была закодирована, как будто тот, кто ее писал, знал, что такие попытки будут предприняты. Тем не менее схема кодирования, использованная в качестве дымовой завесы, была очень проста и напоминала детскую игру в «тарабарщину». Программисты быстро прочли команды. Кроме того, моментальный снимок показал, что программа пытается взломать пароли, с помощью «атаки со словарем», сравнивая закодированные пароли с содержимым словаря в режиме on-line, и использует расколотые пароли, чтобы войти в систему и оттуда попасть в другие компьютеры. На ее стороне было то преимущество, что пароль, подходящий для одного компьютера, часто дает доступ к другим машинам в сети.
Быстро выяснилось, что программа пользовалась крохотным изъяном в программе связи sendmail, использовавшейся для посылки сообщений и обмена данными между компьютерами в сети. Слабое место в sendmail возникло в результате неудачного сочетания двух особенностей программы, подобно тому как бинарный отравляющий газ становится смертоносным, когда соединяются два инертных газа. Первая позволила вставить программу в сообщение, и вместо того, чтобы быть обработанной как электронное письмо, сообщение ошибочно воспринималось компьютером, и тот начинал выполнять программу.
Во– вторых, специфика sendmail позволяла программистам, обслуживающим программу, проверять почтовые соединения в сети. Это обеспечивало удаленный доступ к программе, вложенное в сообщение, и немедленную отправку ее на другой компьютер. Известное узкому кругу лиц, это сочетание оказалось серьезной брешью в почтовой программе. Кем бы ни был автор вируса, он воспользовался этой лазейкой, послав во сети маленькую программу-разведчика, или «червя». В свою очередь, эта программа немедленно передала управление подпрограмме и выпустила тело вируса. Завладевая новым компьютером, этот процесс повторял себя до бесконечности. По крайней мере, это уже не вызывало сомнений.
На первый взгляд казалось, что оккупант не собирается уничтожать информацию. По всей видимости, он исследовал существующие данные в компьютерах только в поисках путей проникновения в другие системы. Но защитники Беркли понимали, что это только поверхностное впечатление и остается возможность «троянского коня». Единственным способом определить, что эта программа действительно делает, было разобрать ее по частям, строку за строкой, – кропотливая работа, на которую могут уйти дни и даже недели. Пока программа не будет тщательно проанализирована, «с микроскопом и пинцетом» (так назывался доклад MIT, посвященный этому вирусу), нельзя узнать, что за опасность в ней таится.
В течение последующих трех часов программисты Кори-Холла и группы исследования компьютерных систем в Эванс-Холле вытряхивали программу из своих систем, одновременно прихода к более ясному пониманию ее действия. Если это просто чья-то дурацкая шутка, рассуждали они, то не содержит ли она набор инструкций, помогающих от нее избавиться? Но таковых не оказалось, и вся потенциально пригодная информация, спрятанная в программе, была закодирована. Программа пыталась скрыться в тени, присваивая себе имена безобидных команд, которые, как совершенно очевидно надеялся ее автор, должны избежать пристального изучения. Явно смысл был в том, что если кто и бросит случайный взгляд на экран компьютера, то ничего необычного не заметит. Чтобы не быть обнаруженной и в дальнейшем, программа вела себя словно хамелеон, постоянно меняя свой идентификатор.
К 11 вечера большинство университетских программистов собрались в одной из двух компьютерных лабораторий. Кейт Бостик, 28-летний программист из группы исследования компьютерных систем, и Майк Карелс работали в Эванс-Холле. Как у двух ведущих разработчиков программного обеспечения для UNIX, у них были веские причины воспринимать случившееся как личное оскорбление. Бостику уже приходилось сталкиваться с тем, что в его машины влезали чужаки, но этот случай был из ряда вон выходящим. Тем временем Лэпсли и остальные собрались в Кори-Холле. В 23.20 Питер Йе разослал сообщение по электронному списку абонентов Internet: «Нас атакует вирус. Он поразил университетские городки в Беркли и Сан-Диего, Ливермор, Стэнфорд и лабораторию NASA в Эймсе».
Накачавшись кофеином, группа защитников Беркли очертя голову бросилась в бой. Конечно, программа-оккупант, которая поставила на колени десятки, может быть, сотни компьютеров, была тем кошмаром, которого боялся любой администратор системы. В то же самое время кто-то словно бросил им вызов, предложив разгадать огромный кроссворд. Что может быть привлекательнее для исследователя? А то, что программа может оказаться «троянским конем» только придавало азарта. Кто-то написал обьявление «Центр по борьбе с эпидемией» и прикрепил его к двери.
После полуночи Лэпсли прошел в машинный зал, где находилось большинство самых мощных компьютеров Беркли, и начал методично, переходя от машины к машине, затыкать лазейки, которыми пользовался вирус, и уничтожать все копии инородной программы. Он восстанавливал конфигурацию каждой системы, делая вставки, блокировавшие брешь в sendmail. В Эванс-Холле были еще десятки машин, но постепенно, один за другим, все компьютеры Беркли были иммунизированы. Беркли пережил чуму.
К трем часам утра в четверг вымотанные программисты знали о программе достаточно для того, чтобы оповестить другие вычислительные центры. Бостик послал сообщения на несколько узловых почтовых станций с рекомендациями как отладить систему, чтобы остановить вирус. Его информацию получили в нескольких участках сети, но, к сожалению, многие центры уже отключились от Internet и пытались в одиночку остановить вирус. На тех же участках, которые оставались подключенными к сети, обнаружили, что сообщения не проходят, ибо вирус засорил несколько узловых почтовых серверов. Иногда сообщения, проходившие обычно за несколько минут, шли часами, а то и сутками.
Выдохшись, Бостик пошел отсыпаться. Лэпсли оставался в «аквариуме» на случай, если попытки взлома повторятся. В 8.30 Лэпсли наконец отправился домой. Кончилась одна из самых ужасных ночей в жизни компьютерного сообщества. Наутро новость разошлась по всей стране. Слухи о ночном вторжении циркулировали не только среди компьютерщиков, но и по всем американским средствам массовой информации. Днем Ливерморская национальная лаборатория, одна из ведущих лабораторий, разрабатывавших новые виды вооружения, организовала пресс-конференцию, на которой журналистов ознакомили с подробностями ночной атаки.
Некто, не пожелавший себя назвать, позвонил в четверг днем в New York Times и дал понять, что не хочет раскрывать, кто написал вирус Internet. Он только хотел, чтобы в Times знали, что этот человек имел самые добрые намерения, но допустил трагическую ошибку в коде. Телефонистка соединила звонившего с редакцией отдела национальных новостей.
– Э-э… я знаю кое-что о вирусе,– сказал неизвестный.
– Каком вирусе? – пришел в замешательство редактор.
– О компьютерном вирусе, который выводит из строя компьютеры по всей стране.
– Оставьте ваш номер телефона, с вами свяжутся, – ответил редактор.
Редактор сообщил о звонке Джону Маркофу, журналисту, специализировавшемуся на компьютерной тематике. Маркоф уже знал о случившемся. В 10 утра ему позвонил Клифф Столл, астроном из Беркли, годом раньше уже помогавший Маркофу раздобыть конфиденциальную информацию по делу западногерманского хакера. Столл, который сейчас работал в Гарвард-Смитсоновском центре астрофизики, рассказал Маркофу, что всю ночь воевал с программой, от которой захлебнулись 50 компьютеров Центра. Поэтому остаток утра репортер провел, обзванивая университеты и исследовательские центры, выясняя, было ли у них что-нибудь подобное. Он позвонил и своему случайному знакомому из Агентства национальной безопасности (АНБ). В прошлом Маркоф уже обращался в АНБ во время работы над статьями, связанными с проблемами компьютерной защиты, и надеялся, что его знакомый сможет что-нибудь рассказать. Однако того не оказалось на работе, и он не перезвонил Маркофу.
Никто из тех, с кем связался Маркоф, не имел ни малейшего понятия о происхождении вируса. Версии были самые разные – от компьютерного хулигана до вражеского агента. Так что анонимный звонок в Times пришелся весьма кстати. Когда Маркоф позвонил (номер оказался бостонским), ему с первых же слов стало ясно, что его собеседник, юноша, назвавшийся Полом, прекрасно знает программу и ее автора. Он взволнованно сообщил, что талантливейший, блестящий автор программы – его друг. Он, говорил Пол, собирался создать безобидный вирус, но допустил маленькую ошибку, которая привела к тому, что программа размножилась в сети.
К пятнице Маркоф и Пол уже несколько раз связывались по телефону. Раз за разом они обсуждали, какого рода неприятности могут ожидать автора программы (Пол называл его «Мистер Икс»). К этому времени программа, которую называли либо «вирусом», либо «червем», стала новостью номер 1. Это была первая массированная атака на компьютеры в истории Америки. Еще тревожнее оказалось то, что заражены были и компьютеры оборонного комплекса. Программу обезвредили, но нанесенный ею ущерб еще не был точно оценен.
И тут Пол допустил ошибку. Во время одного из телефонных разговоров он забылся и вместо того, чтобы сказать «Мистер Икс», назвал своего друга по инициалам – RTM. Маркоф был достаточно близок к компьютерному миру, чтобы понять, что rtm очень напоминает компьютерный пароль. Повесив трубку, он тут же позвонил Клиффорду Столлу, с которым все утро обменивался информацией. Используя свой домашний компьютер и утилиту finger, позволяющую получать ограниченную информацию о других пользователях сети, Столл наткнулся на rtm в Гарвардском университете и отыскал Роберта Таппана Морриса, зарегистрированного как аспиранта Корнеллского университета. Столл позвонил в Times.
Теперь Маркоф знал имя, но все еще не знал истории. Не имея доказательств, он не мог быть уверенным, говорит ли Пол правду и действительно ли RTM, упомянутый Полом, тот самый rtm, которого Столл только что нашел в Internet. Маркоф набрал корнеллский номер. Никто не ответил.
В тот же день наконец позвонили из АНБ. Звонил Боб Моррис, эксперт по компьютерной защите, ведущий специалист Национального центра компьютерной защиты при Агентстве безопасности.
– Кажется, я знаю имя человека, который написал этот вирус, – сказал Маркоф.
– Кто это? – резко спросил Моррис.
Маркоф возмутился:
– Я не собираюсь его раскрывать. Вы же из компьютерной полиции.
Разговор принял натянутый характер, и вскоре выяснилось, что Моррису известно, кто написал программу. Получалось, что человек из Агентства знал о случившемся и о его виновнике больше, чем репортер. Наконец Маркоф сдался.
– Я думаю, что программу написал Роберт Таппан Моррис.
– Верно, – ответил Моррис, после чего сообщил необходимую информацию для газеты.
Они поговорили еще немного. Это был тяжелый день для Маркоффа, сообщения шли потоком, иногда противоречивые, и он еще не знал, что ему делать с этой информацией. Если программу написал корнеллский аспирант, то как об этом уже пронюхали эксперты АНБ? Что, собственно, происходит? И когда Маркоф уже собирался попрощаться, ему пришла в голову неожиданная мысль.
– Ну не забавное ли совпадение, – сказал он Моррису. – Вы же однофамильцы. Моррис не промедлил с ответом:
– Это не совпадение. Он мой сын.
В 1950 году Боб Моррис поступил в Гарвард на факультет химии. Его отец был коммивояжером в фирме, занимавшейся граверными работами, и Боб боялся, что тоже может закончить коммивояжером в каком-нибудь унылом городишке. Он прервал обучение, чтобы отслужить 2 года в армии, а вернувшись в Гарвард, решил, что с дипломом по математике возможности у него будут пошире, и на последнем курсе перевелся на этот факультет, сдав за год все зачеты, так что не потерял ни семестра. В 1958 году он получил степень магистра и поступил в докторантуру, собираясь защищать диссертацию по теории чисел. В 1960 году он получил летнюю работу в фирме Bell Laboratories.
К этому времени в Bell Laboratories докторов наук было не меньше, чем в университетах. С самого своего возникновения в 1925 году эта фирма являлась символом новаторства. Значительные инвестиции компании ATT в теоретические и прикладные исследования приносили щедрые плоды. Ученые Bell Laboratories получили 9 Нобелевских премий. Производственно – иследовательских институтов такого уровня, как Bell Labs, было очень немного.
Коммерческая ценность некоторых исследований была точно неизвестна, но случаи, когда проект замораживали просто потому, что его немедленная практическая отдача для телефонной индустрии проблематична, были редки. Администраторы в высших эшелонах ATT были достаточно умны для того, чтобы понимать – эпохальные открытия рождаются не правилами и планами, а людьми – и соответственным образом строили кадровую политику. Летняя работа Боба растянулась – сначала на два сезона, а в конечном итоге на 26 лет. Он начинал с телефонной связи, работая над передачей данных, но часто захаживал в математическую секцию, где разрабатывали ПО. Моррис познакомился с математиком Дутом Макилроем, который впоследствии стал его шефом и близким другом. Через год освободилась вакансия, и Боб перешел к математикам и так там прижился, что смысла возвращаться к работе над диссертацией уже не было. Вдобавок ему стукнуло 30 – возраст, в котором почти все выдающиеся математики уже создали свои главные труды.
Боб быстро переключился на исследования в области вычислительной техники, которая в 60-е годы буквально фонтанировала открытиями. Компьютеры широко проникли в научное сообщество. Практически любой математик, проходя мимо компьютера, имел шанс создать что-нибудь оригинальное. Все чаще и чаще математические решения подкреплялись расчетами на ЭВМ. Искусство программировать, заставлять машину делать почти все, создавать целые миры просто очаровало Макилроя, Морриса и их коллег. А Моррис, казалось, был одарен сверхъестественным пониманием компьютеров. Когда возникала какая-нибудь запутанная компьютерная проблема, обратить на нее внимание Морриса значило почти наверняка получить продуктивное решение.
Моррис рано зарекомендовал себя талантливым программистом. Впервые это проявилось, когда он заинтересовался простенькой компьютерной игрой под названием Darwin. Darwin придумали в 1962 году Макилрой и его коллега Виктор Выссотский. Выссотский решил, что забавно будет получить компьютерную игру, в которой программа играет не столько с людьми, сколько с другими программами. Надо было написать программу, которая старается уничтожить программы противников. После каждого раунда выигрышный алгоритм становился достоянием группы – концепция, далеко опередившая свое время. Darwin был предшественником программы Core Wars, компьютерной игры, ставшей популярной после пришествия персональных компьютеров. К Core Wars прилагался собственный язык программирования. Игроки писали малюсенькие ''боевые" программки и предоставляли их собственной судьбе на воображаемом игровом поле в компьютерной памяти. Побеждала программа, которая выводила из строя противника и оставалась функционирующей в конце игры.
Неделю трое молодых ученых резвились с Darwin, пока однажды Боб не пришел с абсолютно непобедимой программой. Программа Боба состояла всего из 30 команд, и ее сила заключалась в том, что она была адаптивной она усваивала, как противники защищают себя, и соответственным образом разрабатывала наступление. Это была программа-убийца, и игра кончилась.
Даже в среде, где чудаков хватало, Боба считали оригиналом. Вскоре после прихода в Bell Labs он отпустил бороду, которая оставалась вызывающе нечесаной в течение последующих 30 лет. У Боба, не признававшего никаких авторитетов, была привычка оспаривать любые утверждения, не останавливаясь ни перед чем. Правда, делал он это не агрессивно, а скорее играючи. В ответ на утверждение коллег, что все оборудование в машинном зале огнеупорное, он поднес горящую спичку к кольцу защиты записи на магнитной ленте (приспособление, которое предохраняет компьютерную информацию от стирания) и бросил его в мусорную корзину, чем вызвал срабатывание пожарной тревоги и сущий бедлам во всей лаборатории. Его нюх на слабые места в системе был таким острым, что однажды, когда все сотрудники радостно суетились вокруг новой операционной системы Multics, работа над которой только что торжественно закончилась, Боб вошел в систему и набрал два знака, которые, как он подозревал, разрушат систему. Так оно и вышло. Компьютер завис.
Такими номерами Боб заработал репутацию специалиста, чья главная сила заключается в нестандартном мышлении. Написанная им программа поиска опечаток не знала английского и обходилась без словаря. Принцип ее действия базировался на статистической вероятности, программа просеивала текст в поисках необычных последовательностей знаков и находила неправильно набранные слова.
Люди отрицательно покачали головами. Затем кто-то показал на экран с программой, контролировавшей состояние факультетских компьютеров. Лэпсли пригляделся и обнаружил, что многие в Беркли пытаются подключиться к компьютерам. Он решил, что это попытка взлома. Минимум раз в год кто-нибудь пытался взломать компьютеры в Кори-Холле. Без этого учебный год считался прожитым зря.
Кем бы ни был взломщик, он явно сосредоточился на своем деле, раз за разом пробуя подключиться к компьютерам Беркли. Лэпсли начал быстро записывать имена машин, с которых шли попытки взлома, но был поражен, увидев, что они мелькают быстрее, чем он успевал их переписать. Собственно, данные появлялись и скатывались с экрана так быстро, что он не успевал их прочесть. Лэпсли понял, что взломщик вовсе не человек. Это была программа. Когда она не работала как демон, она работала под именами других пользователей.
Программа продолжала таранить электронные врата Беркли. Хуже того, когда Лэпсли попробовал справиться с попытками взлома, он обнаружил, что они происходят быстрее, чем он может их блокировать. И к этому моменту непрерывно атакуемые машины Беркли стали замедлять темп работы по мере того, как дьявольский пришелец пожирал все больше и больше времени обработки данных. Машины были перегружены, они зависали или просто останавливались, не реагируя на команды. И хотя рабочие станции были установлены так, что автоматически начинали опять работать после аварийного прерывания, стоило им включиться, как вторжение возобновлялось. Компьютерный вирус атаковал университет.
Лэпсли позвонил программисту Майку Карелсу, который находился в ста ярдах от него в Эванс-Холле, внушительной башне из бетона, где размещался факультет компьютерных наук. Карелс был главным программистом в группе исследования компьютерных систем и больше всех знал о разработанной в Беркли версии операционной системы UNIX, широко распространенной в университетах и научно-исследовательских институтах. Если кто-то и мог дать в такой ситуации хороший совет, так только Карелс. В ответ Лэпсли услышал только короткий, вымученный смешок и «Хм, значит, у вас то же самое?».
Через полчаса напряженных попыток разобраться с таинственным чужаком обнаружилось, что программа вырвалась за пределы Беркли. Питер Йе, работавший с Лэпсли, подключился к компьютеру исследовательского центра NASA в Эймсе, расположенного в 50 милях к югу, и увидел ее там. То же самое было в университетском городке в Сан-Диего. Когда позвонил администратор сети из Национальной лаборатории в Ливерморе, столкнувшийся с программой на своих машинах, уже не оставалось сомнений, что это не только их проблема. Вирус распространился по всей сети Internet.
Люди, которые занимались компьютерными сетями, установленными в университетах и научно-исследовательских центрах, потратили много лет на то, чтобы подготовиться ко всякого рода случайностям. Не один год компьютерщики обсуждали теоретическую возможность создания программы, свободно перемещающейся по сети. Но никто не был готов к массированной атаке 2 ноября 1988 года.
По всей Америке компьютеры один за другим ощутили присутствие программы-шатуна. Около 18:30 администраторы машин Rand Corporation в Санта-Монике, знаменитом мозговом центре, где Дэниэл Элсбсрг когда-то снимал копии с пентагоновских документов, заметили, что их машины необычно медлительны. Оказалось, что в сети идет прогон программы, который пожирает время процессоров и замедляет компьютеры почти до полной остановки. Спустя 45 минут на другом конце страны, в Кэмбридже, Массачусетс, подверглись нападению компьютеры Лаборатории искусственного интеллекта MIT. Почти сразу же после вторжения в MIT вирус поразил Национальную Ливерморскую лабораторию и компьютер Массачусетского университета. Затем он вклинился в Стэнфорд, Принстои и Национальную лабораторию в Лос-Аламосе, Нью-Мексико. Как только программа проникала в компьютер, она тут же распространялась на другие компьютеры, очень напоминая настоящий вирус На некоторых машинах были сотни одновременно работающих копий, замедлявших их вплоть до остановки. И если вирусу не удавалось проникнуть в новый компьютер, он так ломился в электронные двери, что одного этого часто оказывалось достаточно, чтобы парализовать машину. И даже после того, как вирус уничтожали, он почти немедленно возникал вновь. Более того, вирус, стоило ему попасть на рабочую станцию, таинственным образом находил новые компьютеры для атаки. Всю ночь вирус скакал по сети взад-вперед, сея хаос везде, где приземлялся. По всей стране в два, в три, в четыре часа ночи системные администраторы в ответ на отчаянные звонки дежурных операторов мчались в свои офисы, чтобы вернуть контроль над машинами. Другие обнаруживали неладное, пытаясь из дому подключиться к сети. Однако многие не подозревали о вирусе до тех пер, пока, придя в четверг утром на работу, не обнаруживали компьютеры заблокированными. Программисты Иллинойского университета были уверены, что им придется с нуля восстанавливать программное обеспечение для всего университетского комплекса.
Самым скверным было то, что это вполне мог оказаться «троянский конь» – программа внешне невинная, но содержащая код, изменяющий или уничтожающий информацию. Системные администраторы в одной аэрокосмической лаборатории в Сан-Диего были так напуганы такой перспективой, что стерли все данные со своих компьютеров и восстановили систему с последних резервных копий.
Когда незадолго до полуночи программа появилась на компьютерах военной лаборатории баллистических исследований в Мэриленде, системные администраторы решили, что это вторжение противникаю. И поскольку программа пришла по сети, они испугались, что она может снять секретную информацию по всей сети. Предположив самое худшее, Майк Муус, главный программист лаборатории, сделал то, что уже сделали десятки других администраторов по всей Internet, – отключил свои компьютеры от сети. Лаборатория оставалась отрезанной от сети почти неделю.
Такие меры, как отключение от сети, не давали программе ни войти, ни выйти, но, к несчастью, их побочным следствием стало разъединение людей, привыкших пользоваться услугами электронной связи. Мало кому пришло в голову хвататься за телефон, да и те, кто это сделал, были в замешательстве: электронная сеть оказалась единственным средством коммуникации для большинства компьютерных экспертов, которые редко беспокоились о том, чтобы сообщать свои телефоны.
Пожалуй, единственным местом, где могли попытаться справиться с такой необычной и тревожной ситуацией, был Беркли. В стенах этого университета родилась та самая версия операционной системы UNIX, куда метила бродячая программа, когда вломилась в сеть. За вечер стало ясно, что таинственный чужак нацелен на компьютеры фирм Sun Microsystems и Digital Equipment Corporation, два наиболее распространенных компьютера в Internet.
Через 15 минут после того, как Лэпсли впервые заметил программу, она прорвалась уже как минимум на 30 рабочих станций Беркли. Из ее действий явствовало, что это разборчивая бестия, цель которой – машины, имеющие связь с как можно большим количеством других систем. Она использовала простые, быстрые и сильнодействующие способы взлома. Два из компьютеров Беркли были особенно лакомыми кусочками. Один CSGW, который был шлюзом в локальную сеть университетского городка, – накрылся после появления десятков копий вируса. Второй – UCBVAX, который был главным шлюзом в Internet, сделал то же самое. Похоже, что заражение такого жизненно важного органа имело стратегическую ценность для программы, во много раз увеличивавшей таким образом число компьютеров, которые теперь могла достать просто за одну пересылку. Так что атаки на UCBVAX не прекращались. Все же команда защитников Беркли высказалась против отключения компьютера от сети. Они не хотели признавать поражение. Принять вызов, решили они, значит оставаться подключенными к сети и уничтожить вирус.
Первым делом надо было зафиксировать мгновенное состояние программы во время прогона, то есть поймать ее в стоп-кадр и затем исследовать. Тогда можно было бы изучить ее и попытаться понять, что же эта программа делает. Однако большая часть программы была закодирована, как будто тот, кто ее писал, знал, что такие попытки будут предприняты. Тем не менее схема кодирования, использованная в качестве дымовой завесы, была очень проста и напоминала детскую игру в «тарабарщину». Программисты быстро прочли команды. Кроме того, моментальный снимок показал, что программа пытается взломать пароли, с помощью «атаки со словарем», сравнивая закодированные пароли с содержимым словаря в режиме on-line, и использует расколотые пароли, чтобы войти в систему и оттуда попасть в другие компьютеры. На ее стороне было то преимущество, что пароль, подходящий для одного компьютера, часто дает доступ к другим машинам в сети.
Быстро выяснилось, что программа пользовалась крохотным изъяном в программе связи sendmail, использовавшейся для посылки сообщений и обмена данными между компьютерами в сети. Слабое место в sendmail возникло в результате неудачного сочетания двух особенностей программы, подобно тому как бинарный отравляющий газ становится смертоносным, когда соединяются два инертных газа. Первая позволила вставить программу в сообщение, и вместо того, чтобы быть обработанной как электронное письмо, сообщение ошибочно воспринималось компьютером, и тот начинал выполнять программу.
Во– вторых, специфика sendmail позволяла программистам, обслуживающим программу, проверять почтовые соединения в сети. Это обеспечивало удаленный доступ к программе, вложенное в сообщение, и немедленную отправку ее на другой компьютер. Известное узкому кругу лиц, это сочетание оказалось серьезной брешью в почтовой программе. Кем бы ни был автор вируса, он воспользовался этой лазейкой, послав во сети маленькую программу-разведчика, или «червя». В свою очередь, эта программа немедленно передала управление подпрограмме и выпустила тело вируса. Завладевая новым компьютером, этот процесс повторял себя до бесконечности. По крайней мере, это уже не вызывало сомнений.
На первый взгляд казалось, что оккупант не собирается уничтожать информацию. По всей видимости, он исследовал существующие данные в компьютерах только в поисках путей проникновения в другие системы. Но защитники Беркли понимали, что это только поверхностное впечатление и остается возможность «троянского коня». Единственным способом определить, что эта программа действительно делает, было разобрать ее по частям, строку за строкой, – кропотливая работа, на которую могут уйти дни и даже недели. Пока программа не будет тщательно проанализирована, «с микроскопом и пинцетом» (так назывался доклад MIT, посвященный этому вирусу), нельзя узнать, что за опасность в ней таится.
В течение последующих трех часов программисты Кори-Холла и группы исследования компьютерных систем в Эванс-Холле вытряхивали программу из своих систем, одновременно прихода к более ясному пониманию ее действия. Если это просто чья-то дурацкая шутка, рассуждали они, то не содержит ли она набор инструкций, помогающих от нее избавиться? Но таковых не оказалось, и вся потенциально пригодная информация, спрятанная в программе, была закодирована. Программа пыталась скрыться в тени, присваивая себе имена безобидных команд, которые, как совершенно очевидно надеялся ее автор, должны избежать пристального изучения. Явно смысл был в том, что если кто и бросит случайный взгляд на экран компьютера, то ничего необычного не заметит. Чтобы не быть обнаруженной и в дальнейшем, программа вела себя словно хамелеон, постоянно меняя свой идентификатор.
К 11 вечера большинство университетских программистов собрались в одной из двух компьютерных лабораторий. Кейт Бостик, 28-летний программист из группы исследования компьютерных систем, и Майк Карелс работали в Эванс-Холле. Как у двух ведущих разработчиков программного обеспечения для UNIX, у них были веские причины воспринимать случившееся как личное оскорбление. Бостику уже приходилось сталкиваться с тем, что в его машины влезали чужаки, но этот случай был из ряда вон выходящим. Тем временем Лэпсли и остальные собрались в Кори-Холле. В 23.20 Питер Йе разослал сообщение по электронному списку абонентов Internet: «Нас атакует вирус. Он поразил университетские городки в Беркли и Сан-Диего, Ливермор, Стэнфорд и лабораторию NASA в Эймсе».
Накачавшись кофеином, группа защитников Беркли очертя голову бросилась в бой. Конечно, программа-оккупант, которая поставила на колени десятки, может быть, сотни компьютеров, была тем кошмаром, которого боялся любой администратор системы. В то же самое время кто-то словно бросил им вызов, предложив разгадать огромный кроссворд. Что может быть привлекательнее для исследователя? А то, что программа может оказаться «троянским конем» только придавало азарта. Кто-то написал обьявление «Центр по борьбе с эпидемией» и прикрепил его к двери.
После полуночи Лэпсли прошел в машинный зал, где находилось большинство самых мощных компьютеров Беркли, и начал методично, переходя от машины к машине, затыкать лазейки, которыми пользовался вирус, и уничтожать все копии инородной программы. Он восстанавливал конфигурацию каждой системы, делая вставки, блокировавшие брешь в sendmail. В Эванс-Холле были еще десятки машин, но постепенно, один за другим, все компьютеры Беркли были иммунизированы. Беркли пережил чуму.
К трем часам утра в четверг вымотанные программисты знали о программе достаточно для того, чтобы оповестить другие вычислительные центры. Бостик послал сообщения на несколько узловых почтовых станций с рекомендациями как отладить систему, чтобы остановить вирус. Его информацию получили в нескольких участках сети, но, к сожалению, многие центры уже отключились от Internet и пытались в одиночку остановить вирус. На тех же участках, которые оставались подключенными к сети, обнаружили, что сообщения не проходят, ибо вирус засорил несколько узловых почтовых серверов. Иногда сообщения, проходившие обычно за несколько минут, шли часами, а то и сутками.
Выдохшись, Бостик пошел отсыпаться. Лэпсли оставался в «аквариуме» на случай, если попытки взлома повторятся. В 8.30 Лэпсли наконец отправился домой. Кончилась одна из самых ужасных ночей в жизни компьютерного сообщества. Наутро новость разошлась по всей стране. Слухи о ночном вторжении циркулировали не только среди компьютерщиков, но и по всем американским средствам массовой информации. Днем Ливерморская национальная лаборатория, одна из ведущих лабораторий, разрабатывавших новые виды вооружения, организовала пресс-конференцию, на которой журналистов ознакомили с подробностями ночной атаки.
Некто, не пожелавший себя назвать, позвонил в четверг днем в New York Times и дал понять, что не хочет раскрывать, кто написал вирус Internet. Он только хотел, чтобы в Times знали, что этот человек имел самые добрые намерения, но допустил трагическую ошибку в коде. Телефонистка соединила звонившего с редакцией отдела национальных новостей.
– Э-э… я знаю кое-что о вирусе,– сказал неизвестный.
– Каком вирусе? – пришел в замешательство редактор.
– О компьютерном вирусе, который выводит из строя компьютеры по всей стране.
– Оставьте ваш номер телефона, с вами свяжутся, – ответил редактор.
Редактор сообщил о звонке Джону Маркофу, журналисту, специализировавшемуся на компьютерной тематике. Маркоф уже знал о случившемся. В 10 утра ему позвонил Клифф Столл, астроном из Беркли, годом раньше уже помогавший Маркофу раздобыть конфиденциальную информацию по делу западногерманского хакера. Столл, который сейчас работал в Гарвард-Смитсоновском центре астрофизики, рассказал Маркофу, что всю ночь воевал с программой, от которой захлебнулись 50 компьютеров Центра. Поэтому остаток утра репортер провел, обзванивая университеты и исследовательские центры, выясняя, было ли у них что-нибудь подобное. Он позвонил и своему случайному знакомому из Агентства национальной безопасности (АНБ). В прошлом Маркоф уже обращался в АНБ во время работы над статьями, связанными с проблемами компьютерной защиты, и надеялся, что его знакомый сможет что-нибудь рассказать. Однако того не оказалось на работе, и он не перезвонил Маркофу.
Никто из тех, с кем связался Маркоф, не имел ни малейшего понятия о происхождении вируса. Версии были самые разные – от компьютерного хулигана до вражеского агента. Так что анонимный звонок в Times пришелся весьма кстати. Когда Маркоф позвонил (номер оказался бостонским), ему с первых же слов стало ясно, что его собеседник, юноша, назвавшийся Полом, прекрасно знает программу и ее автора. Он взволнованно сообщил, что талантливейший, блестящий автор программы – его друг. Он, говорил Пол, собирался создать безобидный вирус, но допустил маленькую ошибку, которая привела к тому, что программа размножилась в сети.
К пятнице Маркоф и Пол уже несколько раз связывались по телефону. Раз за разом они обсуждали, какого рода неприятности могут ожидать автора программы (Пол называл его «Мистер Икс»). К этому времени программа, которую называли либо «вирусом», либо «червем», стала новостью номер 1. Это была первая массированная атака на компьютеры в истории Америки. Еще тревожнее оказалось то, что заражены были и компьютеры оборонного комплекса. Программу обезвредили, но нанесенный ею ущерб еще не был точно оценен.
И тут Пол допустил ошибку. Во время одного из телефонных разговоров он забылся и вместо того, чтобы сказать «Мистер Икс», назвал своего друга по инициалам – RTM. Маркоф был достаточно близок к компьютерному миру, чтобы понять, что rtm очень напоминает компьютерный пароль. Повесив трубку, он тут же позвонил Клиффорду Столлу, с которым все утро обменивался информацией. Используя свой домашний компьютер и утилиту finger, позволяющую получать ограниченную информацию о других пользователях сети, Столл наткнулся на rtm в Гарвардском университете и отыскал Роберта Таппана Морриса, зарегистрированного как аспиранта Корнеллского университета. Столл позвонил в Times.
Теперь Маркоф знал имя, но все еще не знал истории. Не имея доказательств, он не мог быть уверенным, говорит ли Пол правду и действительно ли RTM, упомянутый Полом, тот самый rtm, которого Столл только что нашел в Internet. Маркоф набрал корнеллский номер. Никто не ответил.
В тот же день наконец позвонили из АНБ. Звонил Боб Моррис, эксперт по компьютерной защите, ведущий специалист Национального центра компьютерной защиты при Агентстве безопасности.
– Кажется, я знаю имя человека, который написал этот вирус, – сказал Маркоф.
– Кто это? – резко спросил Моррис.
Маркоф возмутился:
– Я не собираюсь его раскрывать. Вы же из компьютерной полиции.
Разговор принял натянутый характер, и вскоре выяснилось, что Моррису известно, кто написал программу. Получалось, что человек из Агентства знал о случившемся и о его виновнике больше, чем репортер. Наконец Маркоф сдался.
– Я думаю, что программу написал Роберт Таппан Моррис.
– Верно, – ответил Моррис, после чего сообщил необходимую информацию для газеты.
Они поговорили еще немного. Это был тяжелый день для Маркоффа, сообщения шли потоком, иногда противоречивые, и он еще не знал, что ему делать с этой информацией. Если программу написал корнеллский аспирант, то как об этом уже пронюхали эксперты АНБ? Что, собственно, происходит? И когда Маркоф уже собирался попрощаться, ему пришла в голову неожиданная мысль.
– Ну не забавное ли совпадение, – сказал он Моррису. – Вы же однофамильцы. Моррис не промедлил с ответом:
– Это не совпадение. Он мой сын.
В 1950 году Боб Моррис поступил в Гарвард на факультет химии. Его отец был коммивояжером в фирме, занимавшейся граверными работами, и Боб боялся, что тоже может закончить коммивояжером в каком-нибудь унылом городишке. Он прервал обучение, чтобы отслужить 2 года в армии, а вернувшись в Гарвард, решил, что с дипломом по математике возможности у него будут пошире, и на последнем курсе перевелся на этот факультет, сдав за год все зачеты, так что не потерял ни семестра. В 1958 году он получил степень магистра и поступил в докторантуру, собираясь защищать диссертацию по теории чисел. В 1960 году он получил летнюю работу в фирме Bell Laboratories.
К этому времени в Bell Laboratories докторов наук было не меньше, чем в университетах. С самого своего возникновения в 1925 году эта фирма являлась символом новаторства. Значительные инвестиции компании ATT в теоретические и прикладные исследования приносили щедрые плоды. Ученые Bell Laboratories получили 9 Нобелевских премий. Производственно – иследовательских институтов такого уровня, как Bell Labs, было очень немного.
Коммерческая ценность некоторых исследований была точно неизвестна, но случаи, когда проект замораживали просто потому, что его немедленная практическая отдача для телефонной индустрии проблематична, были редки. Администраторы в высших эшелонах ATT были достаточно умны для того, чтобы понимать – эпохальные открытия рождаются не правилами и планами, а людьми – и соответственным образом строили кадровую политику. Летняя работа Боба растянулась – сначала на два сезона, а в конечном итоге на 26 лет. Он начинал с телефонной связи, работая над передачей данных, но часто захаживал в математическую секцию, где разрабатывали ПО. Моррис познакомился с математиком Дутом Макилроем, который впоследствии стал его шефом и близким другом. Через год освободилась вакансия, и Боб перешел к математикам и так там прижился, что смысла возвращаться к работе над диссертацией уже не было. Вдобавок ему стукнуло 30 – возраст, в котором почти все выдающиеся математики уже создали свои главные труды.
Боб быстро переключился на исследования в области вычислительной техники, которая в 60-е годы буквально фонтанировала открытиями. Компьютеры широко проникли в научное сообщество. Практически любой математик, проходя мимо компьютера, имел шанс создать что-нибудь оригинальное. Все чаще и чаще математические решения подкреплялись расчетами на ЭВМ. Искусство программировать, заставлять машину делать почти все, создавать целые миры просто очаровало Макилроя, Морриса и их коллег. А Моррис, казалось, был одарен сверхъестественным пониманием компьютеров. Когда возникала какая-нибудь запутанная компьютерная проблема, обратить на нее внимание Морриса значило почти наверняка получить продуктивное решение.
Моррис рано зарекомендовал себя талантливым программистом. Впервые это проявилось, когда он заинтересовался простенькой компьютерной игрой под названием Darwin. Darwin придумали в 1962 году Макилрой и его коллега Виктор Выссотский. Выссотский решил, что забавно будет получить компьютерную игру, в которой программа играет не столько с людьми, сколько с другими программами. Надо было написать программу, которая старается уничтожить программы противников. После каждого раунда выигрышный алгоритм становился достоянием группы – концепция, далеко опередившая свое время. Darwin был предшественником программы Core Wars, компьютерной игры, ставшей популярной после пришествия персональных компьютеров. К Core Wars прилагался собственный язык программирования. Игроки писали малюсенькие ''боевые" программки и предоставляли их собственной судьбе на воображаемом игровом поле в компьютерной памяти. Побеждала программа, которая выводила из строя противника и оставалась функционирующей в конце игры.
Неделю трое молодых ученых резвились с Darwin, пока однажды Боб не пришел с абсолютно непобедимой программой. Программа Боба состояла всего из 30 команд, и ее сила заключалась в том, что она была адаптивной она усваивала, как противники защищают себя, и соответственным образом разрабатывала наступление. Это была программа-убийца, и игра кончилась.
Даже в среде, где чудаков хватало, Боба считали оригиналом. Вскоре после прихода в Bell Labs он отпустил бороду, которая оставалась вызывающе нечесаной в течение последующих 30 лет. У Боба, не признававшего никаких авторитетов, была привычка оспаривать любые утверждения, не останавливаясь ни перед чем. Правда, делал он это не агрессивно, а скорее играючи. В ответ на утверждение коллег, что все оборудование в машинном зале огнеупорное, он поднес горящую спичку к кольцу защиты записи на магнитной ленте (приспособление, которое предохраняет компьютерную информацию от стирания) и бросил его в мусорную корзину, чем вызвал срабатывание пожарной тревоги и сущий бедлам во всей лаборатории. Его нюх на слабые места в системе был таким острым, что однажды, когда все сотрудники радостно суетились вокруг новой операционной системы Multics, работа над которой только что торжественно закончилась, Боб вошел в систему и набрал два знака, которые, как он подозревал, разрушат систему. Так оно и вышло. Компьютер завис.
Такими номерами Боб заработал репутацию специалиста, чья главная сила заключается в нестандартном мышлении. Написанная им программа поиска опечаток не знала английского и обходилась без словаря. Принцип ее действия базировался на статистической вероятности, программа просеивала текст в поисках необычных последовательностей знаков и находила неправильно набранные слова.