Член руководства лаборатории Р.Борчерс считает, что проникнуть в компьютерную систему мог только высококвалифицированный специалист, обладающий секретной информацией о деталях программы, о кодах, паролях и слабых местах 'защитного кордона' ЭВМ."
Остается только пособолезновать специалистам лаборатории и позавидовать их квалификации и самоотверженности, проявляемой в борьбе за живучесть своей вычислительной системы.
______________________________
[C5] Эти сведения почерпнуты из статьи Clinton E. White "Viruses and worms: attac on campus", опубликованной в журнале Computer & Security N 8(1989 г.).
стр. 19
советовали остановить работу утилиты Sendmail и/или
отсоединиться от сети. К счастью, администраторы продолжали
контролировать свои системы и не отсоединялись. Через некоторое
время они получили программу блокировки червя, написанную
системным программистом из университета в Пурду (Purdue). Эта
программа инициировала вызов червя и запись всех сегментов в
пустой файл, что позволило обнаружить код червя и прекратить его
распространение по системам.
По счастливому случаю оба червя UNIX были обнаружены, по
всей видимости, спустя всего лишь несколько минут после их
поступления в систему из Arpanet. Благодаря утренним сообщениям
электронной почты администраторы были в курсе событий, в
результате чего черви были зафиксированы до того, как события
приобрели драматический характер. Ущерб состоял в потере
времени системными администраторами на обнаружение червей, их
уничтожение и чистку системы от сопутствующих червям файлов
(около одного дня работы системных администраторов, что
оценивается в сумму свыше 120$)."
Думаю, всем понятно, что под именем червя UNIX здесь упоминается описываемый вирус.
Вопрос вызовет, пожалуй, упоминание о двух червях, ведь мы-то все время говорим об одном. На это есть две причины.
Первая - это то, что на компьютер было совершено два "нападения", не совпадавшие по времени.
Второе - то, что, как впоследствии выяснилось, вирус использовал для распространения два различных механизма, в результате чего казалось, что работают два - правда очень похожих - червя. Но об этом - несколько ниже.
Тем временем ФБР упорно делало свое дело. Ход расследования держался в тайне, однако известно, что уже 4 ноября ФБР обратилось к Корнеллскому университету с просьбой разрешить сотрудникам Бюро тщательно проверить рабочие файлы всех научных работников. Все магнитные носители в университете были арестованы, после чего сотрудниками ФБР были тщательно просмотрены файлы подозреваемых лиц, в результате чего был обнаружен файл, содержавший набор слов, опробованных вирусом в качестве паролей. [C6]
Владельцем этого файла был 23-летний студент выпускного курса Корнеллского университета Роберт Таппан Моррис.
Впрочем, в этот же день "виновник торжества" - исчезнувший ранее из родного университета - сам явился с повинной в штаб-квартиру ФБР в Вашингтоне.
Вот когда в ФБР и Пентагоне вздохнули с облегчением! Еще бы: вирус оказался не творением рук неизвестных злоумышленников или свят-свят! - спецслужб, а всего лишь "невинной проделкой доморощенного гения", как выразился адвокат, благоразумно приглашенный с собой "экспериментатором".
______________________________
[C6] То, что именно эти слова были опробованы вирусом, было установлено в результате дезассемблирования вируса.
стр. 20
Естественно, Морриса тут же привлекли к работам по ликвидации его милой проделки: кто же лучше автора знает, как остановить вирус. Хотя именно к этому моменту в результате дезассемблирования выловленного в сети тела вируса многие специалисты из крупных научных и инженерных центров страны могли рассказать о вирусе очень много, если не все.
Пора и нам познакомиться с этим произведением программистского искусства поближе.
D Что это было.
"Я не имею желания подогревать
распространяющиеся слухи, но этот вирус
отличная штука. Если он не уничтожит нас, он
сделает нас сильнее.
Брайан Булковски, университет Браун.
Наиболее полный и детальный разбор вирусной атаки, включая алгоритм работы червя, был сделан в двух работах: "The Internet Worm Programm: An Analysis" CSD-TR-823 - техническом отчете Юджина Спаффорда (Eugene H.Spafford) - и в "With Microscope and Tweezers: An Analysis of the Internet Virus of November 1988" Марка Эйчина (Mark W.Eichin) и Джона Рохлиса (Jon A.Rochlis). Права на обе эти работы приобрел MIT, так что все желающие - и имеющие возможность! - могут запросить требующуюся информацию у ее нынешнего владельца.
Могу сразу сказать, что сделать это будет не так-то просто, а почему - вы узнаете несколько ниже.
Итак, что же представлял собой вирус Морриса [D1].
Вирус Морриса - высокосложная 60000-байтная программа,
разработанная с расчетом на поражение операционных систем
UNIX Berkeley 4.3 (или 4.3 BSD) и аналогичных ей Sun, работающих
на компьютерах фирм Sun Microsystems Inc. (Sun) и Digital
Equipment Corp. (DEC) [D2].
Вирус изначально разрабатывался как безвредный и имел целью
лишь скрытно проникнуть в вычислительные системы, связанные
сетью Arpanet, и остаться там необнаруженным.
Поскольку вирус распространялся в среде сети с
использованием соответствующих сетевых средств и полностью
обеспечивал свою работу сам, то бесспорным является утверждение,
что вирус Морриса является полноправным представителем крайне
редко встречающегося вирусного семейства сетевых червей.
______________________________
[D1] Мне кажется более правильным называть этот вирус по имени его автора, хотя, как я уже говорил, вирус имеет массу других названий. Однако в нашей стране, имеющей весьма отдаленное представление об Arpanet, Milnet, Internet, Корнеллском университете и т.д. прижилось и получило определенное распространение именно это название - "вирус Морриса". В дальнейшем будем так называть его и мы.
стр. 21
Компьютерные эксперты, дезассемблировавшие вирус, единодушно отметили, что программа была написана с выдающимся мастерством и расчетом на три недостатка в системе безопасности поражаемых операционных систем.
Вирусная программа включала компоненты, позволявшие раскрывать пароли, существующие в инфицируемой системе, что в свою очередь позволяло программе маскироваться под задачу легальных пользователей системы, на самом деле занимаясь размножением и рассылкой собственных копий. Вирус не остался скрытым и полностью безопасным, как задумывал автор, в силу незначительных ошибок, допущенных при разработке, которые привели к стремительному неуправляемому саморазмножению вируса.
Теперь давайте рассмотрим вирус несколько подробнее, насколько, конечно, позволяет имеющаяся у нас информация о нем.
Прежде всего интересен вопрос, каким образом распространялся вирус?
Суббота, 5 ноября 1988 года.
18:31 RISKS Предупреждение против ссылок на "ошибки в операционной
системе UNIX". Указывается, что "вирус не использует каких-либо
ошибок в UNIX", ошибки содержит "программа пересылки Sendmail".
Первой лазейкой была утилита электронной почты Sendmail, входившая в состав инфицируемых систем. Недостаток утилиты Sendmail, позволивший Моррису обходить подсистему безопасности вычислительной системы атакуемого узла сети, имеет, если можно так выразиться, классический характер и относится к такому довольно часто встречающемуся явлению в программировании как "люки".
По большому счету люк - это не описанная в документации на программный продукт возможность работы с этим программным продуктом. Люки чаще всего являются результатом забывчивости разработчиков: в процессе разработки программы разработчики часто создают временные механизмы, облегчающие ведение отладки за счет прямого доступа к отлаживаемым частям продукта. Например, для начала работы с продуктом требуется выполнить некоторую последовательность действий, предусмотренных алгоритмом - ввести пароль, установить значения некоторых переменных и т.п. При нормальной работе продукта эти действия имеют определенный смысл, но во время отладки, когда разработчику необходимо тестировать некоторые внутренние части программы и волей-неволей приходится выполнять ту же операцию входа добрый десяток - а то и более - раз на дню, безобидные в общем-то правила, затрудняющие тем не менее доступ к отлаживаемым частям, начинают не на шутку раздражать. Что делает программист? Правильно: в течение получаса он программирует некоторый дополнительный механизм, не предусмотренный изначальным алгоритмом программы, но позволяющий не выполнять надоевших действий или выполнять их автоматически например, при нажатии определенной клавиши (группы клавиш) или при вводе определенной последовательности символов. Все - люк готов!