Выбрать главу

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

Когда незадолго до полуночи программа появилась на компьютерах военной лаборатории баллистических исследований в Мэриленде, системные администраторы решили, что это вторжение противникаю. И поскольку программа пришла по сети, они испугались, что она может снять секретную информацию по всей сети. Предположив самое худшее, Майк Муус, главный программист лаборатории, сделал то, что уже сделали десятки других администраторов по всей Internet, – отключил свои компьютеры от сети. Лаборатория оставалась отрезанной от сети почти неделю.

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

Пожалуй, единственным местом, где могли попытаться справиться с такой необычной и тревожной ситуацией, был Беркли. В стенах этого университета родилась та самая версия операционной системы UNIX, куда метила бродячая программа, когда вломилась в сеть. За вечер стало ясно, что таинственный чужак нацелен на компьютеры фирм Sun Microsystems и Digital Equipment Corporation, два наиболее распространенных компьютера в Internet.

Через 15 минут после того, как Лэпсли впервые заметил программу, она прорвалась уже как минимум на 30 рабочих станций Беркли. Из ее действий явствовало, что это разборчивая бестия, цель которой – машины, имеющие связь с как можно большим количеством других систем. Она использовала простые, быстрые и сильнодействующие способы взлома. Два из компьютеров Беркли были особенно лакомыми кусочками. Один CSGW, который был шлюзом в локальную сеть университетского городка, – накрылся после появления десятков копий вируса. Второй – UCBVAX, который был главным шлюзом в Internet, сделал то же самое. Похоже, что заражение такого жизненно важного органа имело стратегическую ценность для программы, во много раз увеличивавшей таким образом число компьютеров, которые теперь могла достать просто за одну пересылку. Так что атаки на UCBVAX не прекращались. Все же команда защитников Беркли высказалась против отключения компьютера от сети. Они не хотели признавать поражение. Принять вызов, решили они, значит оставаться подключенными к сети и уничтожить вирус.

Первым делом надо было зафиксировать мгновенное состояние программы во время прогона, то есть поймать ее в стоп-кадр и затем исследовать. Тогда можно было бы изучить ее и попытаться понять, что же эта программа делает. Однако большая часть программы была закодирована, как будто тот, кто ее писал, знал, что такие попытки будут предприняты. Тем не менее схема кодирования, использованная в качестве дымовой завесы, была очень проста и напоминала детскую игру в «тарабарщину». Программисты быстро прочли команды. Кроме того, моментальный снимок показал, что программа пытается взломать пароли, с помощью «атаки со словарем», сравнивая закодированные пароли с содержимым словаря в режиме on-line, и использует расколотые пароли, чтобы войти в систему и оттуда попасть в другие компьютеры. На ее стороне было то преимущество, что пароль, подходящий для одного компьютера, часто дает доступ к другим машинам в сети.

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

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

На первый взгляд казалось, что оккупант не собирается уничтожать информацию. По всей видимости, он исследовал существующие данные в компьютерах только в поисках путей проникновения в другие системы. Но защитники Беркли понимали, что это только поверхностное впечатление и остается возможность «троянского коня». Единственным способом определить, что эта программа действительно делает, было разобрать ее по частям, строку за строкой, – кропотливая работа, на которую могут уйти дни и даже недели. Пока программа не будет тщательно проанализирована, «с микроскопом и пинцетом» (так назывался доклад MIT, посвященный этому вирусу), нельзя узнать, что за опасность в ней таится.

В течение последующих трех часов программисты Кори-Холла и группы исследования компьютерных систем в Эванс-Холле вытряхивали программу из своих систем, одновременно прихода к более ясному пониманию ее действия. Если это просто чья-то дурацкая шутка, рассуждали они, то не содержит ли она набор инструкций, помогающих от нее избавиться? Но таковых не оказалось, и вся потенциально пригодная информация, спрятанная в программе, была закодирована. Программа пыталась скрыться в тени, присваивая себе имена безобидных команд, которые, как совершенно очевидно надеялся ее автор, должны избежать пристального изучения. Явно смысл был в том, что если кто и бросит случайный взгляд на экран компьютера, то ничего необычного не заметит. Чтобы не быть обнаруженной и в дальнейшем, программа вела себя словно хамелеон, постоянно меняя свой идентификатор.