Список публикаций

МЕТОДЫ ОБНАРУЖЕНИЯ СЕТЕВОЙ ВИРУСНОЙ АКТИВНОСТИ

Ю.В. Шевчук, С.В. Бурчу

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

Это "классические" вирусы, сетевые и почтовые черви, "троянские кони", backdoor-программы и др.

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

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

Обычно достаточно найти недавнюю найденную кем-либо уязвимость в популярном программном обеспечении и постараться использовать ее популярность для распространения вируса. Представив себе такое условие, мы определяем   круг некоторых задач, которые необходимо выполнить "вирусу": сканирование либо попытка соединения с каким-либо адресом в сети Интернет на порт популярного программного продукта, в случае успешного соединения происходит попытка использования уязвимости программного продукта для самокопирования и дальнейшего распространения "червя".

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

Существует несколько видов обнаружения подобной активности:

  1. Возросшая сетевая активность.
  2. Жалобы пользователей-жертв.
  3. В случае уже известных вирусов обнаружение возможно благодаря антивирусным фильтрам, как на почтовых(SМТР) серверах, так и установленных пользователем.

Если со вторым случаем сделать что-то довольно трудно, то в первом и третьем случаях администратору сети предоставляется довольно широкий выбор уже существующих методов борьбы с "вирусной эпидемией", начиная от установки антивирусных программ на сервера, и кончая обыкновенной блокировкой трафика при помощи сетевого экрана (firewall). Антивирусы обычно предназначены для какого-либо конкретного сервиса, через который могут распространиться вирусы: почта, скачанные из сети файлы (http, ftp протоколы). Применить антивирус для фильтрации всего трафика достаточно труднореализуемо, ресурсоемко и не гарантирует полной идентификации из-за возможности шифрования трафика. Так же существуют так называемые "системы обнаружения вторжения". Их особенностью является то, что они, используя либо возможности сетевого экрана либо так называемые "ловушки"(honeypot) для обнаружения вторжения (вирус тоже вторжение!). Именно на этих системах мы и остановимся подробнее.

Авторы данной статьи придумали свой метод обнаружения вирусной активности. Основой его является описание работы обычного TCP-соединения.

Обычно установка TCP-соединения происходит в три стадии (3-way handshake): клиент выбирает и передает серверу порядковый номер (sequence number, назовем его C-SYN), в ответ на это сервер высылает клиенту пакет данных, содержащий подтверждение (С-АСК) и собственный порядковый номер сервера (S-SYN). Теперь уже клиент должен выслать подтверждение (S-ACK). После этого соединение считается установленным и начинается обмен данными. При этом каждый пакет имеет в заголовке поле для порядкового номера и подтверждения. Данные числа увеличиваются при обмене данными и позволяют контролировать корректность передачи. В случае вирусов, довольно часто TCP-соединение просто не доходит до обмена данными, ограничиваясь начальным C-SYN и не получая обратного. Таким образом, считая количество SYN пакетов в обе стороны (входящие и исходящие) и имея существенную разницу (3, 5, 10 раз-устанавливается экспериментально) в количестве, мы можем предположить ненормальную сетевую активность и, либо блокировать трафик, либо предпринимать дальнейшие меры обнаружения в целях детальной идентификации причин возникновения подобной активности.

На основе вышеописанного метода авторами предполагается создать систему обнаружения вирусной сетевой активности в целях предотвращения вирусных эпидемий в локальной сети СТ "Ботик", Ярославская область, г. Переславль-Залесский. Первая тестовая версия уже создана и проходит режим тестирования.