К сожалению, прогресс приносит отнюдь не только блага. Компьютер полушутя называют устройством, которое «…было создано для решения проблем, до его изобретения попросту не существовавших». Компьютеризация и осетенение принесли с собой помимо преимуществ в работе с информацией еще и огромную головную боль — саморазмножающиеся программы, получившие устрашающее название «вирусы». Сегодня из них наиболее активно развивается класс «червей». Вот о нем и поговорим.
Эпидемии сетевых червей со времен творения Морриса (1988) до наших дней вызывают панику среди пользователей и наносят убытки на миллионы долларов. За пятнадцать лет они заметно эволюционировали, став гораздо быстрее и опаснее. С одной стороны, это обусловлено увеличением популярности средств удаленной связи, а с другой — совершенствованием собственно кода червей. Анализ последнего делает очевидными причины успешных сетевых пандемий.
Начнем разбор с первого в истории червя, автором которой является Роберт Таппан Моррис-младший. В свои 23 года он решил проверить на практике гипотезу о возможности существования саморазмножающихся программ. Идея эксперимента заключалась в создании такой программы, которая распространялась бы по IP-сети, отдавая предпочтение серверам электронной почты. Первая копия обнаружилась 2 ноября 1988 года в 18:24 на компьютере компании Rand (тихоокеанское побережье США). Затем червь попадает в Беркли, через полтора часа его находят в штате Мэриленд, еще через час — в Юте… далее — повсеместно. Следующим утром в 05:07 специалисты Беркли пытаются разослать черновые рецепты локализации червя. Однако Интернет уже перегружен трафиком, сгенерированным детищем Морриса, и многие просто не смогли получить сообщения. Официальное заявление о завершении исследования кода червя объединенными усилиями специалистов Беркли и МТИ было сделано 04.11.88 в 12:36. Его подробное описание вы можете найти по адресу world.std. com/~franl/worm.html. А нас будут интересовать следующие моменты:
1 Cамый первый в мире сетевой червь уже имел простейшую модульную структуру. Он состоял из загрузочного модуля (99 строк на языке Си) и объектного файла, объемом примерно 3200 строк на Си (включая комментарии).
2 Перед инфицированием планировалась проверка хоста на предмет уже запущенной на нем копии червя. Однако Роберт по каким-то причинам сделал так, что в одном из семи случаев допускалась одновременная работа нескольких копий.
3 Для проникновения червь использовал метод подбора паролей «атака по словарю» и уязвимости программ sendmail и finger.
4 Чтобы распространиться повсеместно, вирусу понадобилось чуть больше трех часов.
5 Безвредный по своей сути код (не выполняющий деструктивных действий) нанес немалый урон только благодаря самому факту своего существования.
|
Термином «червь» мы обязаны фантасту Джону Браннеру, который еще в 1975 году написал рассказ The Shockwave Rider, в котором борец с тоталитарным режимом будущего запускал в компьютерную сеть программу tapeworm. Однако предшественники червей не обладали деструктивными свойствами. Напротив, они были полезны — например, Creeper Боба Томаса (Bob Thomas) служил для привлечения внимания авиадиспетчеров, когда контроль над самолетом передавался от одного компьютера к другому. Существенное отличие Creeper от нынешних червей в том, что он не мог реплицировать себя. В начале 80-х разработкой червей занимались в исследовательском центре Xerox в Пало-Альто. Именно там подобные программы начали называть червями. Эти черви также выполняли полезные функции, однако уже в то время разработчики начали обсуждать опасность неправильного применения подобного ПО. Первым звоночком стал сбой в работе червя, перераспределяющего вычислительную нагрузку между компьютерами. Тогда же была написана первая «вакцина». В течение полутора десятков лет черви интересовали, в основном, узких специалистов, однако благодаря Роберту Моррису-младшему термин «компьютерный червь» сегодня понятен любому. Сам Роберт утверждал, что вовсе не собирался писать опасную для работоспособности Сети программу и даже заложил в нее ограничения, которые дали бы ему возможность «измерить» Интернет, не причиняя никому неудобств. Причиной того, что червь Морриса вышел из-под контроля, стали ошибки в коде. |
Успех червя Морриса во многом объясняется тем, что он был первым в своем роде. В узких кругах возможность подобной угрозы обсуждалась задолго до инцидента, но всерьез ее никто не принимал. Триумфальному шествию червя способствовало и то, что он забил своими копиями каналы Интернета. Таким образом, специалисты были лишены полноценной связи, а персонал, обслуживающий еще не зараженные машины, — возможности быть своевременно информированным о надвигающейся опасности. Для своего времени скорость распространения у червя была феноменальной. Частично это объясняется использованием сразу двух способов проникновения.
Теперь обратим внимание на «родственников» червя Морриса, живущих в наши дни.
За пятнадцать лет последователи Роберта породили целых шесть классов (выделяемых по способу распространения), которые в порядке уменьшения частоты встречаемости располагаются следующим образом:
Почтовые черви. Изначально для рассылки своих копий они использовали установленный на инфицированном компьютере почтовый клиент по умолчанию и адресную книгу. Для активизации присланной копии требовались действия пользователя: запуск аттачмента на выполнение либо клик на ссылку (ведущую на веб-страницу, HTML-код которой был составлен с использованием ошибок в системе безопасности браузера, позволяющих скрыто передать/запустить червя). Однако в последнее время производители ПО стали активно сопротивляться этому безобразию, интегрируя в почтовые программы антивирусы и вводя ограничения, делающие несанкционированную отправку писем затруднительной. Вирусописатели ответили внедрением в тела червей модулей, выполняющих прямое соединение с SMTP-сервером. Также черви научились использовать уязвимости непосредственно в популярных почтовых клиентах или их общих с браузером компонентах (не будем тыкать пальцем в MS Outlook). Черви такого типа запускаются автоматически, как только пользователь откроет HTML-письмо. Подкласс почтовых червей самый многочисленный. На его долю, по данным «Лаборатории Касперского», приходится более 95%.
LAN-черви. Распространяются через общие ресурсы локальных сетей. Примером может служить Worm.Win32.Datom (по классификации Евгения Касперского). Он является многокомпонентным. Кроме того, он ищет и пытается закрыть запущенные копии брандмауэра ZoneAlarm, что иллюстрирует наличие у некоторых червей функции противодействия защитному ПО.
P2P-черви. Ярким представителем когорты Peer-to-Peer-червей является Worm.P2P.Relmony. Распространяется через общедоступные каталоги пользователей этих сетей, создавая файлы с порнографическими названиями.
IRC-черви пока обладают наименьшей численностью, однако существующие экземпляры лишний раз доказывают возможность подцепить заразу где угодно. Сервис Internet Relay Chat (передача текстовых сообщений в реальном времени по Интернету) был придуман Джарко Ойкариненом (Jarkko Oikarinen) в год буйства червя Морриса (1988) и до сих пор считается наименее подверженной вирусным атакам технологией коммуникации. Но все же система команд IRC-клиентов позволяет на основе их скриптов создавать червей. Представителем для DOS-платформы является семикилобайтный малютка IRC-Worm.Kazimas. Из Windows-ориентированных наибольший интерес представляет IRC-Worm.Adrenaline.
стр. 2>>