30.11.2011

«Червь», потрясший мир

Такого ужаса компьютерная Америка еще не испытывала. Тысячи машин по всей стране были практически выведены из строя - их производительность упала почти до нуля. Электронная почта оказалась блокирована, запущенные на счет задачи остановились. «Что происходит?» - недоумевали сотни системных администраторов и программистов. Без электронной почты привыкшие ею пользоваться специалисты оказались практически отрезанными от компьютерного мира. Коммерческие, научные, учебные и военные компьютерные центры охватила паника. Обливаясь холодным потом, системные администраторы ринулись обзванивать коллег, пытаясь выяснить, что происходит.

Тем временем лихорадка в считанные минуты поражала все новые и новые машины. Отыскав телефоны коллег, сотрудники вычислительных центров с ужасом узнавали, что неизвестный вирус поразил практически все компьютеры как в соседних центрах, так и в самых укромных уголках страны, прокатился эхом по всей планете и обнаружил себя даже в далекой Австралии. Так начинался рабочий день 3 ноября 1988 года - «черный четверг» компьютерной Америки.

К счастью, все закончилось довольно быстро. Уже к вечеру страшный «червь» был локализован, на BBS появилась информация о том, как заделать «дыры», через которые проникал вирус, и началась работа по его декомпиляции. В пятницу вечером мир узнал имя «героя»: автором «червя» оказался Роберт Таппан Моррис, сын Боба Морриса, ведущего специалиста Национального центра компьютерной безопасности при Агентстве национальной безопасности США (АНБ). В свое время, в начале 70-х годов, Боб принимал участие в создании ОС Unix. Его сын был, по отзывам очевидцев, скромным, застенчивым молодым человеком, талантливым программистом, отличавшимся недюжинным умом и великолепным знанием вычислительной техники. Он окончил Гарвардский колледж и в 1988 году поступил в аспирантуру Корнеллского университета. В ноябре того злополучного года Моррису-младшему исполнилось 23.

Хроника атаки

02.11.88, 18:24 Заражен компьютер компании Rand на Тихоокеанском побережье США
02.11.88, 19:04 Вирус обнаружен в университете Беркли
02.11.88, 19:54 «Червь» проник в университет штата Мэриленд
02.11.88, около 20:00 Атакован компьютер лаборатории искусственного интеллекта Массачусетсского технологического института
02.11.88, 20:40 В университете Беркли отключены службы telnet и finger
02.11.88, 20:49 Атаке подвергся VAX 8600 в университете штата Юта
02.11.88, 22:06 Число «неопознанных» параллельных процессов на сервере в университете штата Юта достигло ста
02.11.88, 22:49 VAX 8600 в университете штата Юта выключен. К этому моменту там уже заражены компьютеры Sun
02.11.88, 23:28 Системные администраторы исследовательского центра NASA в Эймсе посылают сигнал бедствия и сообщают о том, что атакованы вычислительные центры в университетах Беркли, Сан-Диего, Ливермора и Стэнфорда
03.11.88, 00:34 Предупреждение о вирусе рассылает системный администратор в Гарвардском университете
03.11.88, 02:54 В университете Беркли создана и разослана по всей стране «заплатка» для sendmail. К этому времени вирус в Беркли уже уничтожен
03.11.88, около 04:00 В результате дезассемблирования специалистам Массачусетсского технологического института удалось восстановить структуру «червя»
03.11.88, 05:07 В Беркли подготовлены и разосланы рецепты локализации атак через программу finger. Из-за блокирования Internet до большинства адресатов эти сообщения дошли с многочасовым опозданием
03.11.88, около 06:00 Телефоны в Беркли разрываются от звонков системных администраторов со всей страны
03.11.88, около 18:00 Разработчиков из Беркли осаждают системные администраторы, приехавшие за «противоядием» от вируса
04.11.88, около 06:00 Специалисты Беркли полностью закончили дезассемблирование и в основном - декомпиляцию «червя»
04.11.88, 12:36 Сделано официальное заявление о завершении дезассемблирования кода «червя» специалистами Беркли и MIT
11.11.88, 00:38 Специалисты в Беркли полностью завершили декомпиляцию кода программы

Идея Морриса была проста и относительно безобидна: создать самовоспроизводящуюся программу, которая распространялась бы по IP-сети, выбирая прежде всего серверы электронной почты служб. Проникновение на другие компьютеры осуществлялось двумя путями - методом подбора пароля из небольшого словаря, содержавшего нескольких тысяч наиболее распространенных английских слов, и путем использования ошибки в программах sendmail и finger, входящих в состав версии Unix, разработанной в университете Беркли и функционировавшей на машинах VAX и Sun-3. (Первоначально Моррис хотел использовать и недочеты программы ftp, но один из его приятелей, с которым он поделился своими планами, сообщил в Беркли, и ошибка была вскоре исправлена.) Проникая на компьютеры, «червь» маскировался под вполне безобидные процессы. Распространялся он только по IP-сетям.

Программа «червя» состояла из небольшого загрузочного модуля в 99 строк на языке Си и довольно большого объектного файла, объем декомпилированого кода которого составлял примерно 3200 строк на Си с комментариями (подробные сведения о том, как работал «червь», а также комментарии к декомпилированному коду изложены в документе, хранящемся по адресу: http://world.std. com/~franl/worm.html). По мнению аналитиков, занимавшихся декомпиляцией, часть кода была написана просто блестяще, другая часть - очень небрежно, как будто бы наспех. В частности, по замыслу автора, «червь» должен был оставлять на компьютерах только по одной работающей копии, и лишь на некоторых (в одном из N случаев) - по нескольку копий, однако Моррис выбрал слишком маленькое число N, равное 7, в результате чего «червь» буквально блокировал зараженные компьютеры, «забивая» собой все их ресурсы.

Вердикт суда в отношении Морриса был относительно мягким: трехлетний испытательный срок, 400 часов общественных работ, штраф размером более чем в 10 тыс. долл., и возмещение стоимости расходов по наблюдению за осужденным. Финансовые потери от атаки «червя» на отдельные компьютеры сети оценивались в диапазоне от 200 долл. до 53 тыс. долл. на одну машину.
История с «червем» Морриса преподнесла компьютерному миру целый ряд уроков. Первый и, думается, главный: был разрушен миф о высокой степени безопасности компьютерных систем (в том числе военного назначения) и о высочайшей квалификации тех, что занимался проблемами безопасности. Многое из того, чего не замечали специалисты, профессионально занимавшиеся компьютерной безопасностью, смог разглядеть и применить на практике пытливый молодой человек, с детства увлекавшийся компьютерами. Профессионализм Морриса в области защиты информационных систем действительно оказался очень высок. Достаточно сказать, что весной 1988 года он был приглашен своим отцом прочитать лекции по компьютерной безопасности в отделе АНБ, где работал Моррис-старший, и в научно-исследовательской лаборатории ВМФ США.

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

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

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