Избранное сообщение

Фетісов В. С. Комп’ютерні технології в тестуванні. Навчально-методичний посібник. 2-ге видання, перероблене та доповнене / Мои публикации

В 10-х годах я принимал участие в программе Европейского Союза Tempus "Освітні вимірювання, адаптовані до стандартів ЄС". В рамк...

Благодаря Интернету количество писателей и поэтов увеличивается в геометрической прогрессии. Поголовье читателей начинает заметно отставать.

среда, 1 июля 2015 г.

Компьютерные черви, принцип функционирования и классификация. / Для "чайников"

01.07.15. Компьютерный червь — это разновидность вредительского ПО, которая самостоятельно распространяется по интернет просторам, с компьютера на компьютер. Также распространение идет внутри компьютера, от одной его части, к другой, и это его не особо зависит от действия человека.


Основная цель компьютерного червя и есть подобное дублирование себя на различных ЭВМ. И чем большее количество будет подобных дублей, тем лучше. Кроме прочего, черви запускаются и как вирусы, то есть во время установки какого-либо софта.
Классические сетевые черви способны самостоятельно, без любого вмешательства пользователя, распространяться в компьютерной сети, выполняя по меньшей мере две функции: передавать свой программный код на другой ПК и запуск его на удаленном ПК. Для этого черви используют уязвимости компьютерных систем. В отличие от классических вирусов черви, как правило, не используют в качестве носителя коды других программ, поскольку не савят целью заставить таким способом запустить их. Иногда червями называют еще такие программы, которые неспособны самостоятельно запустить себя на удаленной компьютерной системе.
В 1975р. Дж. Бруннер описал "червей" – программу, которая распространяется  по сети. Не без влияния этой книги в 1982 г. в фирме Xerox создают такую программу. Ее идея заключалось в том, что программа, которая нуждалась в значительных вычислительных мощностях, захватывала все компьютеры, которые были подключении к сети, но это время простаивали, чтобы, например, ночью использовать максимум подключенных вычислительных мощностей, а на утро – освободить их. Авторы разработки говорят о том, что главной проблемой, связанной с «отладкой» червя, оказался его неконтролируемое распространение и зависание части пораженных червем ЭВМ. Поскольку эксперимент проводился в сети Ethernet, и часть комнат с включенными компьютерами на следующее утро оказалась закрытой, то копии червя на них "поразили" другие компьютеры.
Классический сетевой червь использует уязвимости программного обеспечения, которое реализует те или другие сетевые протоколы. Такое программное обеспечение действует автоматически в соответствии с требованиями протокола, а временами, через ошибки разработчиков или благодаря их специфическому взгляду на некоторые требования спецификаций протоколов, – и вопреки требованиям стандартных протоколов. Следует отметить, что в подавляющем большинстве ситуаций такие программы «не полагаются» на пользователя, а часто интерфейс взаимодействия с пользователем локальной системы вообще отсутствует.

Классификация сетевых червей

Основным признаком, по которому червей разделяют на разные типы, является способ их распространения: каким образом червь передает свою копию на удаленные компьютеры. Другими признаками являются способы запуска копии червя на компьютере, методы его внедрения в систему и характеристики, присущие разным видам вредного программного обеспечения (вирусам и "троянским коням"): полиморфизм, скрытность и т.п.
Рассмотрим такие типы червей (на основании обозначений, которые применяет "Лаборатория Касперского") :
1.    почтовые черви (Email-worm);
2.    черви в IRC -каналах (IRC-worm);
3.    черви для файлообменных сетей (P2P-worm);
4.    другие сетевые черви (Net-worm).

Почтовые черви

К этой категории принадлежат черви, которые для своего распространения используют электронную почту. Червь посылает свою копию в виде вложения (вложенного файла) в почтовое сообщение или размещает ссылку (на URL-адрес) на свой файл на сетевом ресурсе (например, на скомпрометированном или хакерскому сайте). Как правило, код червя активизируется после вмешательства пользователя: в первом случае необходимо открыть зараженное вложение, во втором – воспользоваться ссылкой на зараженный файл.
Почтовые черви посылают зараженные сообщения в разные способы:
1.    прямым подключением к SMTP-серверу;
2.    использованием сервисов Microsoft Outlook;
3.    применением функций Windows MAPI.
Для поиска почтовых адресов, на которые будут рассылаться зараженные листы, также используют разные методы:
1.    червь рассылает себя по всем адресам, найденным в адресной книге Microsoft Outlook;
2.    адреса считываются с адресной базы WAB;
3.    червь сканирует "пригодные" файлы в файловой системе и помечает в них строки, которые являются адресами электронной почты;
4.    червь выбирает адреса из сообщений, которые содержатся в почтовом ящике (при этом некоторые черви "отвечают" на найденные в почтовом ящике сообщения).
Некоторые из червей используют комбинации названных методов, встречаются также другие способы поиска адресов.
Для противодействия спаму, в котором как раз и скрываются черви, в почтовых программах существуют анти-спам фильтры. Принципы роботы анти-спам фильтров базируется на применении к входной корреспонденции математической теоремы Байеса. Она позволяет вычислить вероятность успешного осуществления некоторого события на основании статистики осуществления этого события в прошлом. Относительно фильтрации спама этот принцип можно изложить следующим образом: если 9 из 10 входных сообщений, содержат некоторое слово (так называемый токен) и соответственно являются спамом, а только одно из них – "нет", то теорема Байеса позволяет вычислить, с какой вероятностью следующее сообщение, что содержит токен, будет спамом.
Применение метода Байеса на практике нуждается в наличии статистической оценивающей базы, которая состоит из двух наборов сообщений (так называемых "корпусов"), один из которых содержит само спам-сообщение, а второе состоит только из нужных сообщений. При создании такой базы осуществляется подсчет количества вхождений каждого токена в каждом корпусе, и на основании этого для него вычисляется оценка, количественное значение которой варьирует в интервале от "0" до "1". При этом значение "0" означает полное отсутствие спама, а "1" – что это сообщение есть именно спамом. Промежуточные значения в интервале от "0" до "1" дают меру «приближения» сообщения к спаму.

Черви в IRC -каналах

Internet Relay Chat – система диалогового общения через Интернет.
Эти черви, как и почтовые, рассылают URL-сообщения на копию червя или непосредственно зараженный файл, причем рассылка осуществляется IRC-каналами. Во втором варианте пользователь, которого атакуют, должен подтвердить получение файла, сохранить его на диске и открыть.

Черви для файлообменных сетей

Большинство из рассмотренных типов сетевых червей реализуют лишь доставки кода червя на компьютер жертвы. При этом имитируется получение файла из достоверных источников (от известных пользователю контактов), что и провоцирует пользователя на запуск файла.
Файлообменные сети берут на себя львиную долю работы по доставке файла, поэтому червю достаточно скопировать себя в каталог обмена файлами, расположенный на локальной машине. Р2Р-сеть осуществляет информирование отдаленных пользователей об этом файле и предоставляет весь необходимый сервис для загрузки файла из зараженного компьютера. Таким образом, сам червь может быть устроен очень просто.
Но есть и сложные Р2Р-черви, которые самостоятельно имитируют протокол конкретной файлообменной системы и отвечают на поисковые запросы, предлагая свою копию для загрузки.

Другие сетевые черви

Это черви, использующие другие способы заражения отдаленных компьютеров. Среди них такие:
1.    копирование червя на сетевые ресурсы;
2.    проникновение в сетевые ресурсы публичного использования;
3.    проникновение на компьютер через уязвимости в операционных системах и применениях;
4.    паразитирование на других вредных программах.
Первый способ предусматривает использование червем открытых для чтения и записи ресурсов на удаленных компьютерах. Такие ресурсы всегда можно найти внутри корпоративных сетей, но в Интернете их наличие можно считать ошибкой администрирование или ошибкой политики безопасности. Часто уязвимыми становятся домашние компьютеры через недостаточно профессиональное администрирование. Как следствие, у червей появляется возможность скопировать себя в доступные каталоги (правда, после этого необходимо, чтобы пользователь запустил на выполнение соответствующий файл).
Второй способ несколько похож на первый, но в этом случае червь копирует себя не на компьютер пользователя, а на общедоступный веб- или FTP-сервер. После этого можно просто подождать, пока пользователь не загрузит файл с кодом червя. Но чаще применяют более сложную и более эффективную схему: сначала червь попадает на сервер, где модифицирует служебные файлы (например, веб-страницы), а потом ожидает посетителей, которые зппрашивают информацию с зараженного сервера (открывают зараженную веб-страницу), и таким образом попадает на другие компьютеры.
Теперь рассмотрим классические "бескомпромиссные" сетевые черви, способные не только загрузиться на удаленный компьютер, но и запустить себя на выполнение.
Первый из таких способов – использования критических уязвимостей в системном или прикладном программном обеспечении.
Второй способ, который в последнее время получил значительное распространение, – это паразитирование на других червях или "троянских конях", а точнее – на программных закладках-люках, внедренных на скомпрометированном компьютере. Люки дают возможность выполнять на удаленных компьютерах команды, иногда с правами администратора или системы. Некоторые люки имеют встроенную команду для загрузки из сети указанного файла и запуска его на выполнение. Таким способом червь может искать уже скомпрометированные компьютеры и без проблем проникать в них.
Следует отметить, что многие черви используют два и больше методов поиска целей и распространение своих копий в сети.
Более опасными являются те черви, которые способны распространяться и активизироваться без вмешательства пользователя. А поскольку у сети есть огромное количество пользователей, которые бессознательно активно способствуют распространению червей, загружая и открывая разные файлы из Интернета, то самый простой "троянский конь" может повлечь рекордные суммы расходов. Ограничение прав пользователей и повышение их ответственности в корпоративной среде могут существенно улучшить ситуацию. Но когда червь использует новую технологию или неизвестную доныне уязвимость распространенных систем, защититься от этого червя очень сложно.

Червь (вирус) Морриса

Большое внимание в свое время привлек так называемый "вирус Морріса". 2 ноября 1988 г. Роберт Моррис, аспирант факультета информатики Корнельського университета инфицировал с помощью написанного им вируса около 6200 хостов. После выявления червя пришлось остановить, протестовать и перезагрузить еще 42700 хостов. Много усилий были приложено к идентификации червя, его удаления с зараженных машин, осуществление анализа кода, его дизассемблирования и документирования. Прямые расходы от действия червя представляли почти 32 млн. долларов. Правда, к прямым расходам отнесли также расходы на внесение исправлений в атакованные версии системы UNIX, хотя некоторые ошибки были вызваны никоим образом не червем Морриса. Это были уже известные ошибки, которые давно нужно было исправить. Поэтому эти расходы следовало бы отнести на разработчиков систем и небрежных администраторов, которые использовали слишком слабые пароли и позволяли это делать пользователям. Вместе с непрямыми расходами, которые возникли через неиспользование машинного времени и отказа пользователям в доступе к системам, общие расходы представляли свыше 98 млн. долларов. Не принимая во внимание то, что никакая потеря данных не состоялась, пользователи Интернета потеряли тысячи часов рабочего времени. Это  событие вызывало значительную реакцию прессы. Кроме репортажей "с места событий", затрагивались общие проблемы безопасности компьютерных систем, законодательные инициативы, направленные на предотвращение подобных случаев в дальнейшем. Широко обсуждался вопрос, как квалифицировать поступок Морриса: есть ли он героем-хакером, который выявил слабые места в национальной компьютерной сети, или он является преступником, который должен быть сурово наказан.
На конец в 1989 г. в некоторых странах (США, Великобритания, ФРГ) принимаются законы, которые предусматривают для разработчиков и распространителей компьютерных вирусов значительные сроки тюремного заключения (в США, например, до 15 лет).

Поиск целей для атаки

Для осуществления поиска в вирусе Морриса были предвидены ряд процедур:
1.    сканирование таблицы маршрутов и выявление всех адресов доступных шлюзов;
2.    выбор номера подсети среди всех сетевых адресов локальной машины (поскольку атакованы были преимущественно шлюзы, большинство атакованных машин имели несколько сетевых интерфейсов и несколько адресов) с дальнейшим перебором адресов в этих подсетях (ни при одной процедуре не делалось полного перебора; кроме того, после первой успешной атаки процедура завершалась);
3.    выбор адресов из списка из файла /etc/hosts.equiv;
4.    выбор адресов из персональных файлов пользователей .forward; эти адреса были использованы для попыток применить отобранные пароли пользователей.
Проникновение на отдаленные цели
Червь применял несколько стратегий проникновения, использование некоторых из них зависело от того, каким образом был полученный адрес цели. Целью проникновения было выполнение на удаленном компьютере команды от имени легального пользователя, что давало возможность установить соединение с атакующим компьютером и загрузить из него основной программный код червя.
Автор червя предусмотрел целый ряд мероприятий по скрытию его действий. Выполняемые программы вируса передавали аргументы через командную строку, но после обработки аргументов все они удалялись, потому командную строку вызова программы команда ps не показывала. Сразу после запуска удалялись и сами выполняемые файлы. Сообщения об ошибках отключались. Размер аварийного дампа устанавливался ровным нулю, потому в случае аварийного завершения программа не оставляла следов. В процессе загрузки кода удалялись все полученные по сети файлы, если во время их передачи возникали любые ошибки. Червь был скомпилирован под именем sh, потому даже администраторы, которые замечали появление нового процесса в системе, не обращали на него внимания, потому что именно командная оболочка sh (Bourne shell или POSIX shell) чаще всего вызывается в командных файлах.

Современные сетевые черви

После Морриса в течение многих лет никто не смог создать что-то подобное. То, что называли (и называют) червями, фактически наполовину было "троянскими конями", поскольку автоматически реализовывало лишь технологию доставки на компьютер-жертву своего программного кода или ссылки на сетевой ресурс, где этот код содержался. Запуск вредного кода на компьютере-жертве осуществлялся из-за неосторожных действий пользователей. Но впоследствии начали появляться настоящие черви.
В декабре 1997 года появились сообщения о появлении принципиально нового типа сетевых червей, которые используют каналы IRC. Как оказался, самая популярная утилита для работы из IRC: mIRC имела опасный изъян защиты: файл настроек script.ini находился в каталоге, который одновременно применялся для хранения файлов, загруженных через IRC. Таким образом, после того как файл с именем script.ini, который содержал программный код червя, попадал на удаленный компьютер, он автоматически заменял оригинальный файл настроек. Вместе с mIRC запускался и червь, который, в свою очередь, рассылал себя другим пользователям. О социальной инженерии и технологиях "троянских коней" здесь не идет речь – осуществлялся запуск обычной программы.
В последующие годы подавляющее большинство червей использовали разные уязвимости в программных продуктах корпорации Майкрософт, которые давали им возможность распространяться без активного содействия некомпетентных пользователей. Продукты Майкрософт всегда привлекали злоумышленников, во-первых, через свою чрезвычайную распространенность, во-вторых, благодаря наличию подробной документации и оснастки для разработки программ (библиотек, ресурсов, сред разработки, средств  отладки и т.п.), а в-третьих, из-за большого количества критических ошибок. Такие ошибки были выявлены в программе Microsoft Outlook (во время глобальной эпидемии червя Нарру99, также известного как Ska), в почтовом клиенте Outlook Express, в браузере Internet Explorer. Невзирая на то что Майкрософт, как правило, очень быстро выпускает исправления (патчи), в Интернете всегда остается огромное количество хостів, где эти исправления не установлены. Есть много примеров глобальных эпидемий червей, которые использовали уязвимости, исправление для которых уже не один год были доступными на сайте Майкрософт.

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

Смотри также:
Если не включается компьютер, что делать? http://fetisovvs.blogspot.com/2015/04/blog-post_55.html
Лицензионное соглашение для программы: зачем оно? http://fetisovvs.blogspot.com/2015/04/blog-post_11.html
Основные рекомендации по ликвидации неисправностей звука в Windows 7. http://fetisovvs.blogspot.com/2015/04/windows-7.html
Создаем скрытую папку — невидимку. http://fetisovvs.blogspot.com/2015/06/blog-post_13.html
Что такое брандмауэр windows? Что такое фаервол? http://fetisovvs.blogspot.com/2015/04/windows_9.html
Что такое вирус вымогатель и что с ним делать? http://fetisovvs.blogspot.com/2015/04/blog-post_35.html


Комментариев нет:

Отправить комментарий