Безопасность сетей

  0f1a9e67   

Выявление вредоносных программ


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

  • компьютерные вирусы;
  • программы "троянский конь";
  • черви.

В следующих разделах мы подробно рассмотрим каждый тип.

Вирусы

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

Вирусы начали появляться в то время, когда компьютеры использовали дисковую операционную систему - DOS. (Не путайте с атакой DoS!) Эти вирусы распространялись через файлы, доступные на электронных досках объявлений, или через дискеты. Позднее были созданы вирусы, которые прикреплялись к файлам текстовых редакторов и исполнялись как часть языка макросов в программах обработки текста.

Примерами компьютерных вирусов являются вирус Микеланджело (Michelangelo) (уже устаревший) и макровирус Мелисса (Melissa). Более подробное описание различных вирусов находится на сайтах http://www.symantec.com/ и http://www.mcafee.com/.

Примечание

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

"Троянские кони"

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


Она обычно маскируется под новую программу или электронную почту.

Большинство программ типа "троянский конь" содержат механизмы самораспространения на другие компьютеры-жертвы. Возьмем для примера программу ILOVEYOU. Она попадает на компьютер через сообщение электронной почты с вложением, содержащим программу на Visual Basic. Это вложение выглядит, как обычный текстовый файл. Но если пользователь откроет этот файл, то выполнится код на Visual Basic. Он отправит сам себя по почте всем пользователям, адреса которых найдет в адресной книге жертвы.

Ущерб от "троянских коней" подобен ущербу от компьютерных вирусов. Программа, подобная ILOVEYOU, может вызвать DoS-атаку вследствие истощения ресурсов компьютера. Во многих организациях программа ILOVEYOU полностью остановила работу служб электронной почты.

Черви

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

Первым известным примером является знаменитый интернет-червь, созданный Робертом Моррисом в 1989 г. Червь Морриса был запрограммирован на использование множества уязвимых мест, в том числе слабых паролей. С их помощью он отыскивал в интернете системы, в которые проникал и выполнялся. Попав в систему, червь начинал разыскивать другие жертвы. По прошествии некоторого времени он вывел из строя весь интернет (правда, интернет тогда был значительно меньше, и многие сайты отключились от сети сами, чтобы защититься от червя).

В последнее время широкую известность приобрел червь CodeRed. Он использовал уязвимые места в информационных службах интернета (IIS) от Microsoft для распространения через всемирную сеть. Поскольку он использовал для атаки легальные веб-соединения, защитить от него компьютеры не смогли даже межсетевые экраны. Попав в систему, CodeRed выбирал произвольный адрес для следующей атаки.

Примечание

В первоначальной версии червя CodeRed имелась проблема выбора адреса для следующей атаки.



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

Пример червя Slapper

В сентябре 2002 г. в интернете появился червь Slapper, который продемонстрировал потенциальную опасность червей. Этот червь действовал не сразу, подготавливая "плацдарм" для будущей атаки. Следует отметить, однако, что даже в момент своего наивысшего подъема червь Slapper не затронул такого количества систем, как червь CodeRed.

Червь Slapper использовал уязвимое место в модуле OpenSSL веб-сервера Apache (OpenSSL позволяет работать с протоколом защищенной передачи гипертекстов HTTPS). Попав в систему, червь выбирал IP-адрес для атаки из списка сетей класса А, запрограммированных в коде червя. Затем Slapper исследовал IP-адрес целевой системы и проверял, выполняется ли на ней веб-сервер. В случае положительного ответа он выяснял, не является ли этот веб-сервер сервером Apache, работающим на платформе Intel (поскольку он имеет свои специфические "бреши"). В конце концов червь определял наличие в целевой системе уязвимого места для атаки.

Сама атака выполнялась посредством использования HTTPS и порта 443. Это затрудняло обнаружение нападения, так как трафик шифровался. Единственное, что выдавало деятельность червя: при поиске уязвимого места он использовал стандартный протокол HTTP и порт 80 и легко обнаруживал себя.

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

Самой опасной функцией червя Slapper (и ключевым компонентом будущих червей) была его способность к распространению по сети. Вместо иерархической модели связи (см.



рис. 3.6) он использовал модель равноправных узлов. Каждая взломанная система взаимодействует через UDP с тремя системами: одна система инфицирует ее, а две системы инфицирует она. С помощью этого механизма полученная команда перенаправляется ко всем доступным узлам. Первоначальный червь планировался для координации DoS-атак. Тот, кто намеревался использовать это, должен был тщательно "прятать" эти механизмы подключения и работы в сети.

Гибриды

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

Прекрасным примером является червь Nimda, который использовал уязвимые места веб-сервера для перемещения с одной системы на другую, подобно червю. Однако Nimda распространялся и через вложения электронной почты, сделанные весьма привлекательными для пользователя, чтобы соблазнить его открыть файл. После открытия вложения червь распространялся далее через электронную почту. Он использовал системы жертв для атаки веб-серверов.

Вопросы для самопроверки

  1. Назовите три типа вредоносных программ.
  2. Почему трудно выполнить снифинг в коммутируемых сетях?



Содержание раздела