Разработка подсистемы сканирования корпоративной сети на наличие запрещенных к использованию программ

Автор работы: Пользователь скрыл имя, 22 Февраля 2013 в 11:47, дипломная работа

Описание

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

Содержание

ВВЕДЕНИЕ 3
1 АНАЛИЗ УГРОЗ ВЫЧИСЛИТЕЛЬНОМУ ПРОЦЕССУ ПРЕДПРИЯТИЯ ОТ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 5
1.1 КЛАССИФИКАЦИЯ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 5
1.2 КАНАЛЫ РАСПРОСТРАНЕНИЯ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 6
1.3 ОПИСАНИЕ ПОПУЛЯРНЫХ ВИДОВ ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 7
1.4 ОБЗОР ВПО НА ПРИМЕРЕ ВИРУСА WIN32.MANIAC.B 9
1.5 ПОСТАНОВКА ЗАДАЧИ НА ДИПЛОМНОЕ ПРОЕКТИРОВАНИЕ 12
2 МЕТОДЫ БОРЬБЫ С ВРЕДОНОСНЫМ ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ 13
2.1 КОНТРОЛЬ ПРИЛОЖЕНИЙ 13
2.2 ОРГАНИЗАЦИЯ КОНТРОЛЯ ПРИЛОЖЕНИЙ В СРЕДЕ WINDOWS 14
2.3 ОРГАНИЗАЦИЯ КОНТРОЛЯ ПРИЛОЖЕНИЙ В СРЕДЕ UNIX 16
2.4 ПРОАКТИВНЫЕ ТЕХНОЛОГИИ 16
2.5 АНТИВИРУСНАЯ ЗАЩИТА 18
2.6 ОРГАНИЗАЦИОННЫЕ МЕРЫ 20
3 РАЗРАБОТКА СИСТЕМЫ ПО ОБНАРУЖЕНИЮ ЗАПРЕЩЕННОГО И ВРЕДОНОСНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 22
3.1 ПРОЦЕСС РАЗРАБОТКИ 22
3.2 ИСПОЛЬЗУЕМЫЕ ТЕХНОЛОГИИ В ХОДЕ РАЗРАБОТКИ 23
3.2.1 ТРАНСПОРТНЫЙ ПРОТОКОЛ UDP 23
3.2.2 СИГНАТУРНОЕ ОБНАРУЖЕНИЕ 24
3.2.3 ПРОЦЕССЫ В СРЕДЕ ОС UNIX 26
3.3 ПОИСК И СОЗДАНИЕ СИГНАТУРЫ 29
3.4 ПРИНЦИП РАБОТЫ РАЗРАБОТАННОЙ СИСТЕМЫ ПО ОБНАРУЖЕНИЮ ВПО LA_SERVER.PL И LA_CONSOLE.PL 30
РИСУНОК 17 – ДЕМОНСТРАЦИЯ РАБОТЫ LA_SERVER.PL И LA_CONSOLE.PL ПО ШИРОКОВЕЩАТЕЛЬНОМУ КАНАЛУ. 32
3.5 РАЗБОР РАБОТЫ СЕРВЕРНОЙ ЧАСТИ LA_SERVER.PL 33
3.5 РАЗБОР РАБОТЫ КЛИЕНТСКОЙ ЧАСТИ LA_CONSOLE.PL 40
ЗАКЛЮЧЕНИЕ 46
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 47
ПРИЛОЖЕНИЯ 48

Работа состоит из  1 файл

мой_диплом_se.doc

— 1.87 Мб (Скачать документ)

 

Принято разделять вирусы:

- по поражаемым объектам (файловые вирусы, загрузочные вирусы, скриптовые вирусы, макровирусы, вирусы, поражающие исходный код, сетевые черви);

- по поражаемым операционным системам и платформам (DOS, Microsoft Windows, Unix, Linux);

- по технологиям, используемым вирусом (полиморфные вирусы, стелс-вирусы, руткиты);

- по языку, на котором написан  вирус (ассемблер, высокоуровневый  язык программирования, скриптовый язык и др.);

- по дополнительной вредоносной  функциональности (бэкдоры, кейлоггеры, шпионы, ботнеты и др.).

1.4 Обзор ВПО на примере  вируса Win32.Maniac.B

Вирус Win32.Maniac.D является резидентным зашифрованным вирусом, использующим для своего распространения  тела Windows-приложений, написан на С++, дееспособен под всеми версиями ОС Windows.

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

Поражает системные файлы с  расширениями "EXE" (программы и  самораспаковывающиеся архивы/инсталляторы) и "SCR" (экранные заставки для Рабочего стола).

Сразу же после инсталляции в  систему вирус расшифровывает (XOR 66h) и запускает процедуру поиска и заражения файлов. Сканируются носители данных последовательно один раздел за другим, выявляя уже зараженные файлы, при этом для каждого из дисков вирус создает в памяти отдельный счетчик, который увеличивает на 1 при обнаружении уже зараженного файла и в дальнейшем при заражении каждого нового файла. При этом он проверяет, чтобы значение счетчика не превышало 15, т.е. на каждом диске вирус заражает не более 15 файлов. Как только счетчик текущего сканируемого диска дошел до значения 15, вирус прекращает на нем (диске) поиск файлов для заражения (равно, как и в том случае, когда счетчик еще не дошел до значения 15, но находящиеся на диске файлы, подходящие для заражения, закончились) и приступает к заражению следующего диска. Счетчики зараженных файлов сохраняются в памяти с момента их создания и до завершения работы вируса (т.е., в принципе, до завершения работы Windows). 
 Вирус заражает не все программные файлы, а только те из них, которые соответствуют следующим требованиям: файл имеет расширение "EXE" или "SCR", файл является Windows PE-файлом (проверяется по формату заголовка файла), файл находится не в каталоге/подкаталоге системной папки Windows, 
размер файла составляет не менее 20480 байт (это соответствует размеру вирусного тела в зараженных файлах).

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

На рисунке 1 изброжен формат файла  до заражения и после.

 

Рисунок 1 - Файл до заражения (слева) и  после (справа).

 

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

Процесс запуска зараженной программы показан на рисунке 2.

 

Рисунок 2 – Процесс запуска  зараженной программы

 

При подключении зараженной машины к сети internet у пользователя может сложиться впечатление, что большинство запущенных программ странно работают. Если на РС установлен firewall, то он будет сообщать, что то одна, то другая программа пытается войти в сеть. При этом индикатор принятых/отосланных байт данных может меняться в большую сторону.

В реальности вирус расшифровывает (XOR 66h) и запускает на выполнение сразу несколько шпионских процедур, которые пытается осуществлять от имени других программ, в чьи процессы ему удалось внедрить свой поток.

Первая вредоносная  процедура заключается в выуживании из системы целого ряда конфиденциальных пользовательских данных (различных паролей и настроек). Для этого вирус сканирует некоторые ветки ключей реестра (например, Software\Microsoft\Windows\CurrentVersion\), определенные системные файлы с кэшированными данными (*.dat и *.ini - например, system.ini), а также пытается просматривать содержимое различных буферов обмена данными. В общей сложности вирус ищет и сохраняет в какие-то временные файлы следующую информацию:

- модель и версию драйвера видеокарты;

- имя пользователя и его пароль для входа в систему;

- какие-то данные об устройствах  компьютера;

- текст, содержащийся на текущий  момент в буфере обмена данными принтера;

- логин, пароль и номер ICQ-клиента;

- логин и пароль для  входа в сеть Интернет;

- внешний (сетевой) IP-адрес и имя компьютера.

Затем файлы с собранной  информацией шифруются, после чего вирус пытается передать их, используя HTTP-протокол, на Web-ресурсы. Для передачи вирус открывает от имени установленного в системе "по умолчанию" вэб-браузера Internet Explorer 1033-й порт протокола TCP/IP и в фоновом режиме пытается транслировать данные на искомые ресурсы. Если по каким-либо причинам 1033-й порт оказывается недоступен, то вирус увеличивает значение порта на 1 (т.е. 1034, 1035 и т.д.) и повторяет попытки соединения с ресурсом. Процедура повторяется до тех пор, пока либо вирус не достигнет желаемого результата (не отошлет данные злоумышленнику), либо машина не будет отключена пользователем от сети internet. При успешном завершении данной процедуры, вирус расшифровывает и загружает в память следующую "метку"-идентификатор (чтобы не запускать данную процедуру повторно до момента своей новой активизации) “KUKU300a”.

Вторая вредоносная  процедура заключается в попытках скачать из сети internet и установить на РС EXE-файл, сперва вирус проверяет наличие в том же каталоге, в котором он расположен сам, наличие файла с названием win%S.exe Если такой файл найден, то вирус запускает его на выполнение. Если же файл не удалось обнаружить, то вирус случайным образом выбирает один из активных процессов, в который встроен его собственный поток (vcmgcd32.dll), после чего пытается от имени этого процесса установить соединение с HTTP-сервером, адрес которого также определяет по непонятному алгоритму.

Для загрузки файла вирус  открывает от имени выбранного им активного процесса 53 TCP порт и, в случае удачного соединения с сервером, пытается скачать с него EXE-файл, после чего произвести его запуск. В том случае, если попытка открыть порт от имени др. процесса была пресечена (например, выход приложения в сеть internet был заблокирован firewall-ом), то вирус пытается повторить попытку, но уже от имени другого из подвластного ему активного процесса. При успешном завершении данной процедуры, вирус также, как и при первой процедуре, расшифровывает и загружает в память «метку»-идентификатор, но уже другую.

1.5 Постановка задачи на дипломное проектирование

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

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

- создание собственных сигнатур и поиск по ним;

- использование в своей работе UDP протокола;

- поиск файлов на основе контрольной суммы MD5;

- самообновление;

- предоставление командной  оболочки по запросу;

- сканирование ФС и мониторинг процессов по запросу и расписанию;

- оповещение при совпадении сигнатур.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Методы борьбы с вредоносным  программным обеспечением

2.1 Контроль приложений

Контроль запуска приложений сводиться к перехвату системных  вызовов ОС, таких как запуск файлов (exec*), открытие/закрытие /удаление/создание/ перемещение/переименование файлов/директорий, обращение к реестру (для Windows).

Для визуального понятия  сути о вызовах в среде Windows, на рисунке 3 представлен снимок работы Process Monitor.

 

 

Рисунок 3 – Работа Process Monitor. Использование Event Tracing for Windows.

 

Полный перечень системных  вызовов ОС Unix находится в файле /usr/include/asm/unistd.h. Например для функции create() существует системный вызов #defane __NR_CREATE 8, где его номер (8) загружается в регистр EAX.

Так же можно проводить мониторинг появление новых процессов.

 

2.2 Организация контроля приложений  в среде Windows

Эффективный контроль приложений в линейки ОС Windows осуществляется сторонним ПО. Для наглядного примера  рассмотрим Kaspersky Internet Security (далее KIS), изображение которого приведено на рисунке 4.

Рисунок 4 - Kaspersky Internet Security

 

Контроль приложений в KIS - это локальная система предотвращения вторжений (Host Intrusion Prevention System, далее HIPS), которая объединяет в себе функционал проактивной защиты и сетевого экрана. HIPS позволяет гибко манипулировать разрешениями на доступ к файлам и реестру, системным правам и сетям различных типов. Это помогает существенно снизить количество обращений к пользователю KIS за счет предоставления полной свободы действий доверенным приложениям и полного ограничения в правах недоверенных приложений.

Основу любой HIPS составляет таблица  правил. HIPS в KIS использует таблицу, большинство правил которой сгруппировано по приложениям.

HIPS контролирует определенные системные  события (например, такие, как  создание или удаление файлов, запуск файлов), и каждый раз,  когда эти события должны произойти, система сверяется со своей таблицей правил, после чего действует в соответствии с заданными в таблице настройками: действие либо разрешается, либо запрещается, либо HIPS задает пользователю вопрос о том, что ей следует предпринять в данном конкретном случае.

Под защитой HIPS будут  находиться только те объекты, которые  обозначены в ее таблице правил.

Важной особенностью HIPS является групповая политика, которая  позволяет применять одни и те же разрешения для всех приложений, внесенных в определенную группу. По умолчанию в KIS подготовлены четыре группы, по которым продукт будет автоматически распределять запускаемые на компьютере приложения. К этим группам относятся: доверенные, слабо ограниченные, сильно ограниченные, недоверенные.

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

Основная таблица Контроля приложений позволяет быстро задавать однотипные разрешения для групп и отдельных приложений.

Правила HIPS обычно содержат три базовых  компонента: субъект (т.е. приложение или  группа, которое вызывает определенное событие), действие (разрешить, запретить  или спрашивать пользователя) и объект (то, к чему приложение или группа пытается получить доступ). HIPS в KIS работает по тому же принципу. В зависимости от типа объекта правила разделяются на три группы: файлы и системный реестр, системные права, сети.

У первой группы объектом являются файлы, ключи реестра. У второй группы объект - это системные права на выполнение тех или иных действий (например, на запуск или остановку процессов). У третьей группы - это сетевые объекты (IP-адреса и их группы, порты и направления).

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

Некоторые правила можно настроить  очень тонко: например, для файлов и реестра можно отдельно определять разрешения на чтение, запись, удаление и перечисление.

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

 

2.3 Организация контроля приложений  в среде Unix

На момент написания  данной дипломной работы, мной не было найдено ПО, которое осуществляет контроль приложений, подобно KIS (и не только) в среде Windows, эта может обуславливаться правовой политикой пользователей.

Распространение ВПО  по всей файловой системе (далее ФС) возможно только с правами суперпользователя root. При правильной политики разграничения доступа и оперативном обновлении ПО, риск угроз от ВПО сводится к минимуму, но все же для галочки можно разработать свои средства. Как вариант, мониторинг появление новых процессов используя procfs в Linux, либо использование ionotify.

ionotify - это подсистема ядра Linux (kqueue аналог для FreeBSD), которая позволяет получать уведомления об изменениях в файловой системе. ionotify позволит отлеживать все события ФС, перехватывая их, можно запрещать или сигнализировать о измени системных файлов в заданной области ФС, например в /usr/bin.

Ниже перечислены некоторые события ionotify:

IN_ACCESS - к файлу было  произведено обращение (чтение);

IN_ATTRIB - были изменены  метаданные (права доступа, временные  метки, расширенные атрибуты и  т.п.);

Информация о работе Разработка подсистемы сканирования корпоративной сети на наличие запрещенных к использованию программ