Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Статьи - Моисеенков И. Весь текст 150.08 Kb

Суета вокруг Роберта или Моррис-сын и все, все, все...

Предыдущая страница Следующая страница
1 2 3 4 5 6  7 8 9 10 11 12 13
   точку входа, в результате чего он начинал работу."

     Теперь вам понятно, почему пользователям показалось, что работают
два  червя?   Все  дело  в  том,  что  вирус  Морриса  использовал для
распространения своих копий два независимых друг от друга пути - через
Sendmail и через Finger.

     Итак, червь благополучно попал в систему и  приступил  к  работе.
Что же он делает?
     Слово - нашему знакомому делавэрцу.

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

     Логично?  Вполне:  заразился сам -  помоги  товарищу.   И  еще  -
вирус  стремился  размножиться  и разослать свои копии по обнаруженным
адресам  сопредельных  узлов  раньше,  чем  его  успеют  обнаружить  и
остановить.   Это  логика доброй половины всех известных вирусов [D2].
Обнаружение адресов доступных  узлов  производилось  вирусом  за  счет
выполнения  программ Ioctl и Netstat с различными аргументами, а также
за  счет  считывания  и   анализа   ряда   специальных   системных   и
пользовательских  файлов,  используемых для обеспечения работы в сети.
Выделяемая таким образом информация заносилась  в  создаваемый  червем
внутренний  список  доступных узлов.  По окончании формирования списка

______________________________
     [D2] Вторая половина придерживается другой тактики  -  затаиться,
выждать  некоторое время, а уже затем начать размножаться и пакостить.
Но для всех вирусов характерна  крайняя  озабоченность  судьбой  своих
копий:   существуют  вирусы,  которые не начинают пакостить всерьез до
тех пор, пока не создадут заранее определенное количество  копий,  что
гарантирует пользователям гораздо более интересную жизнь.
                                                               стр. 25


червь начинал процесс рассылки копий по выявленным адресам.  При  этом
описанные  выше  способы  начинали отрабатываться только в том случае,
когда червь устанавливал достижимость конкретного узла в данный момент
за счет попыток установления связи с данным узлом через порт telnet.

     После рассылки  копий  по  обнаруженным  адресам  червь  считывал
системные  файлы  /etc/hosts.equiv  и /.rhosts с целью обнаружения так
называемых   "эквивалентных"   или   "доверенных"   узлов,   а   также
пользовательские   файлы  .forward,  используемые  для  автоматической
рассылки сообщений "электронной почты".
     Термин  "доверенных"  узлов  связан  с  механизмом   "доверенного
доступа".   Смысл его в том, что для облегчения выполнения операций на
удаленном  узле  пользователь  имеет  возможность   создать   файл   с
определенным  именем,  куда  он может занести пары <имяузла/имявхода>.
При работе с удаленным узлом система проверяет наличие у  пользователя
такого файла и, если работа ведется с узлом, указанным в одной из пар,
с использованием  указанного  в  той  же  паре  имени  входа,  система
автоматически   разрешает   доступ   без  запроса  пароля.   Именно  в
отсутствии запроса пароля и заключается "доверие".
     Считав указанные файлы, червь предпринимал попытку атаки "в лоб",
т.е  пытался,  используя  механизм  доверенного доступа, создать путем
вызова программы Rsh на удаленном узле работающую оболочку, маскируясь
под пользователя.

     Если попытка лобовой атаки не удавалась, червь считывал в  память
системный  учетный  файл  /etc/passwd  и  предпринимал ряд не лишенных
остроумия попыток раскрыть пользовательские пароли.
     Надо сказать, что в системе UNIX пользовательские пароли хранятся
в  шифрованном виде, но в общедоступном для чтения файле, где хранится
и другая  нешифрованная  информация.   Крупным  недостатком  -  помимо
общедоступности  учетного  файла - было также то, что используемый для
шифрования паролей DES-алгоритм [D4] был значительно ослаблен за  счет
использования  при  шифровании  в  качестве  ключа  последовательности
нулевых битов.  Кроме  этого,  Моррис  умело  сыграл  на  человеческой
слабости   многих   пользователей,  которые,  не  придавая  серьезного
значения вопросам безопасности своих данных, использовали  в  качестве
паролей общеупотребляемые смысловые слова, что при серьезном подходе к
делу просто недопустимо.
     Для начала червь пытался опробовать в  качестве  паролей  учетные
имена  пользователей.   Делалось  это  путем  шифрования  учетных имен

______________________________
     [D4] DES - Data Encryption Standart -  стандарт  шифрования  данных,
определяющий алгоритм, который реализуется в виде электронных устройств и
используется для криптографической защиты данных в ЭВМ.
     Описанный в стандарте алгоритм  определяет  операции  преобразования
данных  в  непонятную  непосредственно  форму  - шифрование, и наоборот -
расшифрование.  Обе  операции  опираются  на  некоторое  двоичное  число,
называемое ключом.  Ключ состоит из 64 двоичных цифр, из которых 56 битов
используются  самим  алгоритмом,  а  оставшиеся  8   битов   служат   для
обнаружения ошибок.
     Сам  алгоритм  известен  всем   его   пользователям.    Уникальность
алгоритму  придает  использование  в каждом приложении уникального ключа.
Тот, кто не знает ключа, зная сам алгоритм, не  сможет  получить  скрытые
таким образом данные.
                                                               стр. 26


пользователей, найденных в  учетном  файле,  и  сравнения  полученного
шаблона   с  шифрованным  паролем  данного  пользователя  -  в  случае
совпадения червь производил попытку запуска оболочки на всех удаленных
узлах,  где  данный  пользователь мог работать (что устанавливалось за
счет просмотра внутреннего списка доступных узлов и анализа упомянутых
выше файлов).
     Если пользователь был чуть более искушен, и пароль не совпадал  с
учетным  именем  в чистом виде, то производилась аналогичная попытка с
использованием  учетного  имени,  преобразованного  самым  тривиальным
образом:   например,  опробовалось  учетное имя, написанное в обратном
порядке.
     Если и это не давало результата, в качестве шаблонов опробовались
зашифрованные  432  общеизвестных  слова  (типа  "cretin",  "batman" и
т.д.), составлявшие  внутренний  словарь  червя.   Этот  вариант  дал,
кстати, наибольший процент раскрытия паролей.
     После всех этих шагов в качестве паролей  опробовались  слова  из
имевшегося в системе словаря.

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

        "Следующая группа команд содержала список  общеиспользуемых
   в  качестве  паролей  слов, зашифрованных по DES-алгоритму [D4],
   которые сравнивались в таком виде  с  системным  файлом  паролей
   Дэви,    также    зашифрованным    по   DES-алгоритму.    Каждый
   зашифрованный пароль-шаблон сравнивался с паролями всех законных
   пользователей  Деви,  и  каждое  полное  совпадение запоминалось
   вирусом.  В Деви червь таким образом смог получить около  20  из
   300  паролей,  причем  один  из  раскрытых  паролей  обеспечивал
   получение привилегий системного пользователя.
        Системный пользователь в UNIX имеет возможность работать  с
   системными файлами и таблицами безопасности, обращаться к другим
   системам, а  также  читать,  писать  и  чистить  файлы  по  всей
   системе.
        В этот момент  червь  стал  распространять  свои  копии  по
   другим   системам   университета,  но  не  производил  серьезных
   разрушений файлов или программ, хотя и мог это делать, -  червь,
   несомненно,  не был запрограммирован на разрушение; единственным
   ущербом, нанесенным червем Деви,  было  существенное  замедление
   работы других программ."


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


     Если бы Моррис добавил к своей программе еще несколько строк, то,
по мнению специалистов, ущерб был бы непоправимым.

     Как  показал  анализ  червя,  имевшее  в  действительности  место
неуправляемое  размножение  вируса  в  планы  Морриса  не  входило.  В
процессе работы червь пытался связаться с другой копией, работающей  в
этой же системе, через заведомо определенное гнездо TCP.  Если попытка
была  успешной,  т.е.   в  системе  работала  еще  одна  копия  червя,
атакующий  червь  устанавливал в 1 переменную pleasequit, что вызывало
саморазрушение червя, но после выполнения им этапа  вскрытия  паролей.
Такая  задержка  саморазрушения  привела  к  тому, что в одной системе
могли  одновременно  работать  несколько  копий  червя.   Более  того,
сочетание условий в теле червя делала возможной ситуацию, когда сильно
загруженная система отказывала новой копии червя в установлении связи,
что  расценивалось  червем  как  отсутствие  в системе других копий и,
следовательно, приводила к началу работы новой копии.
     Моррис опасался,  что  системные  программисты  рано  или  поздно
предпримут попытки запустить имитатор червя, отвечавшего бы на попытки
установления связи через порт TCP с целью уничтожения  истинных  копий
червя.   Чтобы  блокировать  такие  попытки,  червь  на основе анализа
случайно  генеруемого  числа  (примерно  в  одном  случае   из   семи)
устанавливал   внутренние   флажки   таким   образом,  что  оказывался
независимым от результатов  проверки  наличия  других  копий  червя  в
системе.    Эти  "бессмертные"  копии  вносили  значительную  лепту  в
перегрузку инфицируемых систем.
     Таким образом, недостаточно корректное программирование механизма
размножения  независимо  от  ответа  машины  было ошибкой, приведшей к
выходу вируса  из-под  контроля.   С  другой  стороны,  эта  ошибка  в
программе обусловила и раннее обнаружение вируса.   [D3]

     И это еще не все!  Очевидно  предполагая,  что  появление  нового
вируса   не  вызовет  у  большинства  пользователей  восторга,  Моррис
предпринял определенные меры с тем,  чтобы  скрыть  истинный  источник
заражения  и  это  ему  удалось  намного лучше.  По словам Питера Йи -
специалиста по компьютерной технике из  университета  в  Беркли:   "Мы
обнаружили, что программа-вирус достаточно сложна и ее автор прекрасно
справился с задачей затруднить ее обнаружение."
     Во-первых,  достаточно  сложной  была   схема   запуска   вируса:
программа-вирус  была  запущена  в компьютере MIT (Новая Англия), в то
время  как  автор,  используя  возможности  теледоступа,  работал   за
компьютером в Корнеллском университете в Ithica (Нью-Йорк).
     Во-вторых,  как  поведал  Питер  Йи:   "Попав  в  память  первого
компьютера,  программа стерла информацию, касающуюся времени ее ввода,
места, откуда она была направлена, а  также  того,  в  какие  ЭВМ  она
Предыдущая страница Следующая страница
1 2 3 4 5 6  7 8 9 10 11 12 13
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама