И Моисеенков - Суета вокруг Роберта
Как видите, ничего особенного в примененном методе вскрытия паролей нет, как нет и оправдания халатности пользователей, послужившей причиной того, что червю в отдельных системах удавалось вскрыть пароли более половины пользователей. А ведь каждый новый пароль червь использовал для атаки новых жертв!
"Следующая группа команд содержала список общеиспользуемых
в качестве паролей слов, зашифрованных по DES-алгоритму [D4],
которые сравнивались в таком виде с системным файлом паролей
Дэви, также зашифрованным по DES-алгоритму. Каждый
зашифрованный пароль-шаблон сравнивался с паролями всех законных
пользователей Деви, и каждое полное совпадение запоминалось
вирусом. В Деви червь таким образом смог получить около 20 из
300 паролей, причем один из раскрытых паролей обеспечивал
получение привилегий системного пользователя.
Системный пользователь в UNIX имеет возможность работать с
системными файлами и таблицами безопасности, обращаться к другим
системам, а также читать, писать и чистить файлы по всей
системе.
В этот момент червь стал распространять свои копии по
другим системам университета, но не производил серьезных
разрушений файлов или программ, хотя и мог это делать, - червь,
несомненно, не был запрограммирован на разрушение; единственным
ущербом, нанесенным червем Деви, было существенное замедление
работы других программ."
К счастью для американских пользователей, Моррис был в определенном смысле добропорядочным специалистом, не ставившим себе целью напакостить всем окружающим, вследствие чего созданный им вирус не искажал и не уничтожал данных. Именно поэтому вирус Морриса был отнесен специалистами к категории так называемых "мирных" вирусов, не приносящих пользователям непоправимых бед.
стр. 27
Если бы Моррис добавил к своей программе еще несколько строк, то, по мнению специалистов, ущерб был бы непоправимым.
Как показал анализ червя, имевшее в действительности место неуправляемое размножение вируса в планы Морриса не входило. В процессе работы червь пытался связаться с другой копией, работающей в этой же системе, через заведомо определенное гнездо TCP. Если попытка была успешной, т.е. в системе работала еще одна копия червя, атакующий червь устанавливал в 1 переменную pleasequit, что вызывало саморазрушение червя, но после выполнения им этапа вскрытия паролей. Такая задержка саморазрушения привела к тому, что в одной системе могли одновременно работать несколько копий червя. Более того, сочетание условий в теле червя делала возможной ситуацию, когда сильно загруженная система отказывала новой копии червя в установлении связи, что расценивалось червем как отсутствие в системе других копий и, следовательно, приводила к началу работы новой копии.
Моррис опасался, что системные программисты рано или поздно предпримут попытки запустить имитатор червя, отвечавшего бы на попытки установления связи через порт TCP с целью уничтожения истинных копий червя. Чтобы блокировать такие попытки, червь на основе анализа случайно генеруемого числа (примерно в одном случае из семи) устанавливал внутренние флажки таким образом, что оказывался независимым от результатов проверки наличия других копий червя в системе. Эти "бессмертные" копии вносили значительную лепту в перегрузку инфицируемых систем.
Таким образом, недостаточно корректное программирование механизма размножения независимо от ответа машины было ошибкой, приведшей к выходу вируса из-под контроля. С другой стороны, эта ошибка в программе обусловила и раннее обнаружение вируса. [D3]
И это еще не все! Очевидно предполагая, что появление нового вируса не вызовет у большинства пользователей восторга, Моррис предпринял определенные меры с тем, чтобы скрыть истинный источник заражения и это ему удалось намного лучше. По словам Питера Йи специалиста по компьютерной технике из университета в Беркли: "Мы обнаружили, что программа-вирус достаточно сложна и ее автор прекрасно справился с задачей затруднить ее обнаружение."
Во-первых, достаточно сложной была схема запуска вируса: программа-вирус была запущена в компьютере MIT (Новая Англия), в то время как автор, используя возможности теледоступа, работал за компьютером в Корнеллском университете в Ithica (Нью-Йорк).
Во-вторых, как поведал Питер Йи: "Попав в память первого компьютера, программа стерла информацию, касающуюся времени ее ввода, места, откуда она была направлена, а также того, в какие ЭВМ она должна попасть."
В-третьих, на основе анализа случайно генерируемого числа, червь пытался послать сообщение на узел университета в Беркли. Это
______________________________
[D3] Интересно отметить, что автор вируса, известного под названием "Иерусалим" - первого, как принято считать на Западе, вируса, использованного в террористических целях, допустил аналогичную ошибку. Из-за этого вирус, который должен был в мае 1987 года накануне 40-летия образования государства Израиль - вывести из строя его компьютерные сети, был обнаружен в конце 1986 года и ликвидирован.
стр. 28
происходило примерно один раз на 15 попыток инфицирования. Однако этот механизм был запрограммирован недостаточно корректно, вследствие чего никакой реальной пересылки данных не происходило. Было ли это изначально продуманной хитростью или действительно задумывалась пересылка информации - так и осталось неизвестным. Известно только, что пересылаться должен был один байт с неустановленным значением. Это позволяет предположить, что автор задумывал создать программу-монитор, которая получала и обрабатывала бы пересылаемые байты, содержащие идентификацию пораженных червем узлов. Однако каких-либо доказательств наличия такой программы не было обнаружено, и поэтому равновероятной является версия, что при создании этого механизма автор предполагал ложно указать на источник заражения.
В-четвертых, червь периодически "ветвился" (создавал подпроцесс) с помощью команды Fork с последующим уничтожением командой Kill процесса-родителя. Прежде всего это позволяло сменить идентификационный номер процесса с тем, чтобы в файле системной статистики не было подозрительных данных о слишком большом потреблении ресурса процессора каким-либо одним процессом. Далее, слишком долго работающему процессу система начинает уменьшать диспетчерский приоритет, а при "резветвлении" новому процессу присваивался начальный приоритет. Правда и этот механизм работал не всегда четко, поскольку в ряде случаев червь в совокупности потреблял до 600 секунд времени процессора.
И, наконец, на случай, когда червь работал бы в системе в течение 12 часов, был предусмотрен механизм повторного инфицирования сопредельных узлов: червь стирал в своем внутреннем списке узлов пометки о зараженности, либо "иммунности" узлов и таким образом повторял процесс заражения с самого начала.
И по сей день остается невыясненным вопрос об истинных мотивах, которыми руководствовался Моррис, создавая свой вирус?
Сам автор по этому поводу благоразумно хранил молчание, что послужило причиной появления множества самых разнообразных версий. Есть даже романтический вариант этой истории, согласно которому червь был создан и запущен с единственной целью - завоевать сердце некоей Джуди Фостер (Jodie Foster).
Однако наиболее распространено мнение, что Моррис создал свою программу в экспериментальных целях, а к столь серьезным последствиям привел выход вируса из-под контроля в силу небольших программных ошибок. Вероятнее всего смысл эксперимента заключался в скрытном распространении вирусной программы по сети, минуя средства обеспечения безопасности, с последующим преданием этого факта огласке. Что и говорить, шум был бы большой, хотя, возможно, несколько меньший состоявшегося в действительности. С этой точки зрения вирус полностью достиг своей цели - многомиллионная армия пользователей была поставлена перед фактом "удручающего состояния программного обеспечения и системы безопасности в мире UNIX" (Матт Бишоп, университет Дортмуса).
стр. 29
Сам Моррис дал следующую версию происшедшего.
2 ноября, набрав свой код доступа в сеть, он осуществил ввод вируса с компьютера Корнеллского университета. Моррис рассчитывал, что вирус будет пассивным - "спящим" - и приступит к активным действиям только через несколько дней. Однако произошел неприятный для автора сбой, и вирус принялся за дело мгновенно.
Когда Моррис попытался узнать ход атаки, он неожиданно обнаружил, что сеть перегружена настолько, что он сам не в состоянии получить доступ к терминалу. Моррис пытался остановить процесс, но все попытки окончились неудачей. Более того, поскольку каналом распространения вируса была электронная почта Sendmail, то именно она первая и вышла из строя, в результате чего Моррис лишился связи с другими компьютерами. Это, по его словам, "отрезало" его от сети и не позволило известить коллег об угрозе.